/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.i -------------------------------------------------------------------------------- This is Ultimate 0.1.25-267fbe0 [2020-07-17 22:29:03,801 INFO L177 SettingsManager]: Resetting all preferences to default values... [2020-07-17 22:29:03,803 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2020-07-17 22:29:03,816 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2020-07-17 22:29:03,816 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2020-07-17 22:29:03,817 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2020-07-17 22:29:03,818 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2020-07-17 22:29:03,820 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2020-07-17 22:29:03,822 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2020-07-17 22:29:03,823 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2020-07-17 22:29:03,824 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2020-07-17 22:29:03,825 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2020-07-17 22:29:03,825 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2020-07-17 22:29:03,826 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2020-07-17 22:29:03,827 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2020-07-17 22:29:03,829 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2020-07-17 22:29:03,829 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2020-07-17 22:29:03,830 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2020-07-17 22:29:03,832 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2020-07-17 22:29:03,834 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2020-07-17 22:29:03,835 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2020-07-17 22:29:03,836 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2020-07-17 22:29:03,837 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2020-07-17 22:29:03,838 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2020-07-17 22:29:03,840 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2020-07-17 22:29:03,840 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2020-07-17 22:29:03,841 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2020-07-17 22:29:03,842 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2020-07-17 22:29:03,842 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2020-07-17 22:29:03,843 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2020-07-17 22:29:03,843 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2020-07-17 22:29:03,844 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2020-07-17 22:29:03,845 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2020-07-17 22:29:03,845 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2020-07-17 22:29:03,846 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2020-07-17 22:29:03,847 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2020-07-17 22:29:03,847 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2020-07-17 22:29:03,847 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2020-07-17 22:29:03,848 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2020-07-17 22:29:03,849 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2020-07-17 22:29:03,849 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2020-07-17 22:29:03,850 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-17 22:29:03,864 INFO L113 SettingsManager]: Loading preferences was successful [2020-07-17 22:29:03,864 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2020-07-17 22:29:03,866 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2020-07-17 22:29:03,866 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2020-07-17 22:29:03,866 INFO L138 SettingsManager]: * Use SBE=true [2020-07-17 22:29:03,866 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2020-07-17 22:29:03,866 INFO L138 SettingsManager]: * sizeof long=4 [2020-07-17 22:29:03,867 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2020-07-17 22:29:03,867 INFO L138 SettingsManager]: * sizeof POINTER=4 [2020-07-17 22:29:03,867 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2020-07-17 22:29:03,867 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2020-07-17 22:29:03,867 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2020-07-17 22:29:03,868 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2020-07-17 22:29:03,868 INFO L138 SettingsManager]: * sizeof long double=12 [2020-07-17 22:29:03,868 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2020-07-17 22:29:03,868 INFO L138 SettingsManager]: * Use constant arrays=true [2020-07-17 22:29:03,868 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2020-07-17 22:29:03,869 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2020-07-17 22:29:03,869 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2020-07-17 22:29:03,869 INFO L138 SettingsManager]: * To the following directory=./dump/ [2020-07-17 22:29:03,869 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2020-07-17 22:29:03,869 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-17 22:29:03,870 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2020-07-17 22:29:03,870 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2020-07-17 22:29:03,870 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2020-07-17 22:29:03,870 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2020-07-17 22:29:03,870 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2020-07-17 22:29:03,871 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2020-07-17 22:29:03,871 INFO L138 SettingsManager]: * Trace refinement exception blacklist=NONE [2020-07-17 22:29:03,871 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2020-07-17 22:29:04,165 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2020-07-17 22:29:04,176 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2020-07-17 22:29:04,179 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2020-07-17 22:29:04,181 INFO L271 PluginConnector]: Initializing CDTParser... [2020-07-17 22:29:04,181 INFO L275 PluginConnector]: CDTParser initialized [2020-07-17 22:29:04,182 INFO L429 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/ldv-regression/rule60_list2.i [2020-07-17 22:29:04,246 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/527322a82/d02c49b11f7a4c329641d9a33b737b57/FLAG1aaec1f5e [2020-07-17 22:29:04,786 INFO L306 CDTParser]: Found 1 translation units. [2020-07-17 22:29:04,787 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/ldv-regression/rule60_list2.i [2020-07-17 22:29:04,800 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/527322a82/d02c49b11f7a4c329641d9a33b737b57/FLAG1aaec1f5e [2020-07-17 22:29:05,085 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/527322a82/d02c49b11f7a4c329641d9a33b737b57 [2020-07-17 22:29:05,094 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2020-07-17 22:29:05,096 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2020-07-17 22:29:05,097 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2020-07-17 22:29:05,098 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2020-07-17 22:29:05,101 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2020-07-17 22:29:05,103 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 17.07 10:29:05" (1/1) ... [2020-07-17 22:29:05,106 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@19514f3b and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.07 10:29:05, skipping insertion in model container [2020-07-17 22:29:05,107 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 17.07 10:29:05" (1/1) ... [2020-07-17 22:29:05,114 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2020-07-17 22:29:05,157 INFO L178 MainTranslator]: Built tables and reachable declarations [2020-07-17 22:29:05,611 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-17 22:29:05,619 INFO L203 MainTranslator]: Completed pre-run [2020-07-17 22:29:05,695 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-17 22:29:05,763 INFO L208 MainTranslator]: Completed translation [2020-07-17 22:29:05,763 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.07 10:29:05 WrapperNode [2020-07-17 22:29:05,763 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2020-07-17 22:29:05,764 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2020-07-17 22:29:05,764 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2020-07-17 22:29:05,764 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2020-07-17 22:29:05,779 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.07 10:29:05" (1/1) ... [2020-07-17 22:29:05,779 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.07 10:29:05" (1/1) ... [2020-07-17 22:29:05,796 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.07 10:29:05" (1/1) ... [2020-07-17 22:29:05,796 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.07 10:29:05" (1/1) ... [2020-07-17 22:29:05,818 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.07 10:29:05" (1/1) ... [2020-07-17 22:29:05,820 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.07 10:29:05" (1/1) ... [2020-07-17 22:29:05,824 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.07 10:29:05" (1/1) ... [2020-07-17 22:29:05,831 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2020-07-17 22:29:05,832 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2020-07-17 22:29:05,832 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2020-07-17 22:29:05,832 INFO L275 PluginConnector]: RCFGBuilder initialized [2020-07-17 22:29:05,833 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.07 10:29:05" (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-17 22:29:05,903 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2020-07-17 22:29:05,904 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2020-07-17 22:29:05,904 INFO L138 BoogieDeclarations]: Found implementation of procedure __blast_assert [2020-07-17 22:29:05,904 INFO L138 BoogieDeclarations]: Found implementation of procedure __getMemory [2020-07-17 22:29:05,905 INFO L138 BoogieDeclarations]: Found implementation of procedure my_malloc [2020-07-17 22:29:05,905 INFO L138 BoogieDeclarations]: Found implementation of procedure list_add [2020-07-17 22:29:05,905 INFO L138 BoogieDeclarations]: Found implementation of procedure list_del [2020-07-17 22:29:05,906 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2020-07-17 22:29:05,906 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_error [2020-07-17 22:29:05,906 INFO L130 BoogieDeclarations]: Found specification of procedure __blast_assert [2020-07-17 22:29:05,906 INFO L130 BoogieDeclarations]: Found specification of procedure __underflow [2020-07-17 22:29:05,907 INFO L130 BoogieDeclarations]: Found specification of procedure __uflow [2020-07-17 22:29:05,907 INFO L130 BoogieDeclarations]: Found specification of procedure __overflow [2020-07-17 22:29:05,908 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_getc [2020-07-17 22:29:05,908 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_putc [2020-07-17 22:29:05,909 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_feof [2020-07-17 22:29:05,909 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_ferror [2020-07-17 22:29:05,909 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_peekc_locked [2020-07-17 22:29:05,909 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_flockfile [2020-07-17 22:29:05,909 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_funlockfile [2020-07-17 22:29:05,910 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_ftrylockfile [2020-07-17 22:29:05,910 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_vfscanf [2020-07-17 22:29:05,910 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_vfprintf [2020-07-17 22:29:05,911 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_padn [2020-07-17 22:29:05,912 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_sgetn [2020-07-17 22:29:05,913 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_seekoff [2020-07-17 22:29:05,913 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_seekpos [2020-07-17 22:29:05,913 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_free_backup_area [2020-07-17 22:29:05,913 INFO L130 BoogieDeclarations]: Found specification of procedure remove [2020-07-17 22:29:05,913 INFO L130 BoogieDeclarations]: Found specification of procedure rename [2020-07-17 22:29:05,914 INFO L130 BoogieDeclarations]: Found specification of procedure renameat [2020-07-17 22:29:05,914 INFO L130 BoogieDeclarations]: Found specification of procedure tmpfile [2020-07-17 22:29:05,914 INFO L130 BoogieDeclarations]: Found specification of procedure tmpnam [2020-07-17 22:29:05,914 INFO L130 BoogieDeclarations]: Found specification of procedure tmpnam_r [2020-07-17 22:29:05,914 INFO L130 BoogieDeclarations]: Found specification of procedure tempnam [2020-07-17 22:29:05,914 INFO L130 BoogieDeclarations]: Found specification of procedure fclose [2020-07-17 22:29:05,915 INFO L130 BoogieDeclarations]: Found specification of procedure fflush [2020-07-17 22:29:05,915 INFO L130 BoogieDeclarations]: Found specification of procedure fflush_unlocked [2020-07-17 22:29:05,915 INFO L130 BoogieDeclarations]: Found specification of procedure fopen [2020-07-17 22:29:05,915 INFO L130 BoogieDeclarations]: Found specification of procedure freopen [2020-07-17 22:29:05,915 INFO L130 BoogieDeclarations]: Found specification of procedure fdopen [2020-07-17 22:29:05,916 INFO L130 BoogieDeclarations]: Found specification of procedure fmemopen [2020-07-17 22:29:05,916 INFO L130 BoogieDeclarations]: Found specification of procedure open_memstream [2020-07-17 22:29:05,916 INFO L130 BoogieDeclarations]: Found specification of procedure setbuf [2020-07-17 22:29:05,916 INFO L130 BoogieDeclarations]: Found specification of procedure setvbuf [2020-07-17 22:29:05,916 INFO L130 BoogieDeclarations]: Found specification of procedure setbuffer [2020-07-17 22:29:05,916 INFO L130 BoogieDeclarations]: Found specification of procedure setlinebuf [2020-07-17 22:29:05,917 INFO L130 BoogieDeclarations]: Found specification of procedure fprintf [2020-07-17 22:29:05,917 INFO L130 BoogieDeclarations]: Found specification of procedure printf [2020-07-17 22:29:05,917 INFO L130 BoogieDeclarations]: Found specification of procedure sprintf [2020-07-17 22:29:05,917 INFO L130 BoogieDeclarations]: Found specification of procedure vfprintf [2020-07-17 22:29:05,917 INFO L130 BoogieDeclarations]: Found specification of procedure vprintf [2020-07-17 22:29:05,918 INFO L130 BoogieDeclarations]: Found specification of procedure vsprintf [2020-07-17 22:29:05,918 INFO L130 BoogieDeclarations]: Found specification of procedure snprintf [2020-07-17 22:29:05,918 INFO L130 BoogieDeclarations]: Found specification of procedure vsnprintf [2020-07-17 22:29:05,918 INFO L130 BoogieDeclarations]: Found specification of procedure vdprintf [2020-07-17 22:29:05,918 INFO L130 BoogieDeclarations]: Found specification of procedure dprintf [2020-07-17 22:29:05,918 INFO L130 BoogieDeclarations]: Found specification of procedure fscanf [2020-07-17 22:29:05,918 INFO L130 BoogieDeclarations]: Found specification of procedure scanf [2020-07-17 22:29:05,919 INFO L130 BoogieDeclarations]: Found specification of procedure sscanf [2020-07-17 22:29:05,919 INFO L130 BoogieDeclarations]: Found specification of procedure vfscanf [2020-07-17 22:29:05,919 INFO L130 BoogieDeclarations]: Found specification of procedure vscanf [2020-07-17 22:29:05,919 INFO L130 BoogieDeclarations]: Found specification of procedure vsscanf [2020-07-17 22:29:05,919 INFO L130 BoogieDeclarations]: Found specification of procedure fgetc [2020-07-17 22:29:05,919 INFO L130 BoogieDeclarations]: Found specification of procedure getc [2020-07-17 22:29:05,919 INFO L130 BoogieDeclarations]: Found specification of procedure getchar [2020-07-17 22:29:05,920 INFO L130 BoogieDeclarations]: Found specification of procedure getc_unlocked [2020-07-17 22:29:05,920 INFO L130 BoogieDeclarations]: Found specification of procedure getchar_unlocked [2020-07-17 22:29:05,920 INFO L130 BoogieDeclarations]: Found specification of procedure fgetc_unlocked [2020-07-17 22:29:05,920 INFO L130 BoogieDeclarations]: Found specification of procedure fputc [2020-07-17 22:29:05,920 INFO L130 BoogieDeclarations]: Found specification of procedure putc [2020-07-17 22:29:05,921 INFO L130 BoogieDeclarations]: Found specification of procedure putchar [2020-07-17 22:29:05,921 INFO L130 BoogieDeclarations]: Found specification of procedure fputc_unlocked [2020-07-17 22:29:05,922 INFO L130 BoogieDeclarations]: Found specification of procedure putc_unlocked [2020-07-17 22:29:05,922 INFO L130 BoogieDeclarations]: Found specification of procedure putchar_unlocked [2020-07-17 22:29:05,922 INFO L130 BoogieDeclarations]: Found specification of procedure getw [2020-07-17 22:29:05,922 INFO L130 BoogieDeclarations]: Found specification of procedure putw [2020-07-17 22:29:05,922 INFO L130 BoogieDeclarations]: Found specification of procedure fgets [2020-07-17 22:29:05,922 INFO L130 BoogieDeclarations]: Found specification of procedure gets [2020-07-17 22:29:05,922 INFO L130 BoogieDeclarations]: Found specification of procedure __getdelim [2020-07-17 22:29:05,923 INFO L130 BoogieDeclarations]: Found specification of procedure getdelim [2020-07-17 22:29:05,923 INFO L130 BoogieDeclarations]: Found specification of procedure getline [2020-07-17 22:29:05,924 INFO L130 BoogieDeclarations]: Found specification of procedure fputs [2020-07-17 22:29:05,924 INFO L130 BoogieDeclarations]: Found specification of procedure puts [2020-07-17 22:29:05,924 INFO L130 BoogieDeclarations]: Found specification of procedure ungetc [2020-07-17 22:29:05,924 INFO L130 BoogieDeclarations]: Found specification of procedure fread [2020-07-17 22:29:05,924 INFO L130 BoogieDeclarations]: Found specification of procedure fwrite [2020-07-17 22:29:05,926 INFO L130 BoogieDeclarations]: Found specification of procedure fread_unlocked [2020-07-17 22:29:05,926 INFO L130 BoogieDeclarations]: Found specification of procedure fwrite_unlocked [2020-07-17 22:29:05,927 INFO L130 BoogieDeclarations]: Found specification of procedure fseek [2020-07-17 22:29:05,927 INFO L130 BoogieDeclarations]: Found specification of procedure ftell [2020-07-17 22:29:05,927 INFO L130 BoogieDeclarations]: Found specification of procedure rewind [2020-07-17 22:29:05,927 INFO L130 BoogieDeclarations]: Found specification of procedure fseeko [2020-07-17 22:29:05,927 INFO L130 BoogieDeclarations]: Found specification of procedure ftello [2020-07-17 22:29:05,927 INFO L130 BoogieDeclarations]: Found specification of procedure fgetpos [2020-07-17 22:29:05,927 INFO L130 BoogieDeclarations]: Found specification of procedure fsetpos [2020-07-17 22:29:05,928 INFO L130 BoogieDeclarations]: Found specification of procedure clearerr [2020-07-17 22:29:05,928 INFO L130 BoogieDeclarations]: Found specification of procedure feof [2020-07-17 22:29:05,928 INFO L130 BoogieDeclarations]: Found specification of procedure ferror [2020-07-17 22:29:05,928 INFO L130 BoogieDeclarations]: Found specification of procedure clearerr_unlocked [2020-07-17 22:29:05,928 INFO L130 BoogieDeclarations]: Found specification of procedure feof_unlocked [2020-07-17 22:29:05,928 INFO L130 BoogieDeclarations]: Found specification of procedure ferror_unlocked [2020-07-17 22:29:05,928 INFO L130 BoogieDeclarations]: Found specification of procedure perror [2020-07-17 22:29:05,928 INFO L130 BoogieDeclarations]: Found specification of procedure fileno [2020-07-17 22:29:05,928 INFO L130 BoogieDeclarations]: Found specification of procedure fileno_unlocked [2020-07-17 22:29:05,928 INFO L130 BoogieDeclarations]: Found specification of procedure popen [2020-07-17 22:29:05,929 INFO L130 BoogieDeclarations]: Found specification of procedure pclose [2020-07-17 22:29:05,929 INFO L130 BoogieDeclarations]: Found specification of procedure ctermid [2020-07-17 22:29:05,929 INFO L130 BoogieDeclarations]: Found specification of procedure flockfile [2020-07-17 22:29:05,929 INFO L130 BoogieDeclarations]: Found specification of procedure ftrylockfile [2020-07-17 22:29:05,929 INFO L130 BoogieDeclarations]: Found specification of procedure funlockfile [2020-07-17 22:29:05,929 INFO L130 BoogieDeclarations]: Found specification of procedure malloc [2020-07-17 22:29:05,929 INFO L130 BoogieDeclarations]: Found specification of procedure calloc [2020-07-17 22:29:05,929 INFO L130 BoogieDeclarations]: Found specification of procedure realloc [2020-07-17 22:29:05,929 INFO L130 BoogieDeclarations]: Found specification of procedure free [2020-07-17 22:29:05,929 INFO L130 BoogieDeclarations]: Found specification of procedure cfree [2020-07-17 22:29:05,930 INFO L130 BoogieDeclarations]: Found specification of procedure memalign [2020-07-17 22:29:05,930 INFO L130 BoogieDeclarations]: Found specification of procedure valloc [2020-07-17 22:29:05,930 INFO L130 BoogieDeclarations]: Found specification of procedure pvalloc [2020-07-17 22:29:05,930 INFO L130 BoogieDeclarations]: Found specification of procedure __default_morecore [2020-07-17 22:29:05,930 INFO L130 BoogieDeclarations]: Found specification of procedure mallinfo [2020-07-17 22:29:05,930 INFO L130 BoogieDeclarations]: Found specification of procedure mallopt [2020-07-17 22:29:05,931 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_trim [2020-07-17 22:29:05,931 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_usable_size [2020-07-17 22:29:05,931 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_stats [2020-07-17 22:29:05,931 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_info [2020-07-17 22:29:05,931 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_get_state [2020-07-17 22:29:05,931 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_set_state [2020-07-17 22:29:05,931 INFO L130 BoogieDeclarations]: Found specification of procedure __malloc_check_init [2020-07-17 22:29:05,932 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2020-07-17 22:29:05,932 INFO L130 BoogieDeclarations]: Found specification of procedure __getMemory [2020-07-17 22:29:05,932 INFO L130 BoogieDeclarations]: Found specification of procedure my_malloc [2020-07-17 22:29:05,933 INFO L130 BoogieDeclarations]: Found specification of procedure list_add [2020-07-17 22:29:05,933 INFO L130 BoogieDeclarations]: Found specification of procedure list_del [2020-07-17 22:29:05,933 INFO L130 BoogieDeclarations]: Found specification of procedure main [2020-07-17 22:29:05,933 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2020-07-17 22:29:05,933 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2020-07-17 22:29:05,933 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2020-07-17 22:29:05,934 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2020-07-17 22:29:05,937 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2020-07-17 22:29:05,938 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2020-07-17 22:29:05,939 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2020-07-17 22:29:06,541 INFO L290 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2020-07-17 22:29:06,541 INFO L295 CfgBuilder]: Removed 0 assume(true) statements. [2020-07-17 22:29:06,548 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 17.07 10:29:06 BoogieIcfgContainer [2020-07-17 22:29:06,548 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2020-07-17 22:29:06,550 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2020-07-17 22:29:06,550 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2020-07-17 22:29:06,554 INFO L275 PluginConnector]: TraceAbstraction initialized [2020-07-17 22:29:06,554 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 17.07 10:29:05" (1/3) ... [2020-07-17 22:29:06,555 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@5850d89 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 17.07 10:29:06, skipping insertion in model container [2020-07-17 22:29:06,555 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.07 10:29:05" (2/3) ... [2020-07-17 22:29:06,556 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@5850d89 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 17.07 10:29:06, skipping insertion in model container [2020-07-17 22:29:06,556 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 17.07 10:29:06" (3/3) ... [2020-07-17 22:29:06,558 INFO L109 eAbstractionObserver]: Analyzing ICFG rule60_list2.i [2020-07-17 22:29:06,569 INFO L157 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2020-07-17 22:29:06,577 INFO L169 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2020-07-17 22:29:06,592 INFO L251 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2020-07-17 22:29:06,614 INFO L375 AbstractCegarLoop]: Interprodecural is true [2020-07-17 22:29:06,614 INFO L376 AbstractCegarLoop]: Hoare is true [2020-07-17 22:29:06,615 INFO L377 AbstractCegarLoop]: Compute interpolants for FPandBP [2020-07-17 22:29:06,615 INFO L378 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2020-07-17 22:29:06,615 INFO L379 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2020-07-17 22:29:06,615 INFO L380 AbstractCegarLoop]: Difference is false [2020-07-17 22:29:06,615 INFO L381 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2020-07-17 22:29:06,616 INFO L385 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2020-07-17 22:29:06,636 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states. [2020-07-17 22:29:06,643 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 14 [2020-07-17 22:29:06,643 INFO L414 BasicCegarLoop]: Found error trace [2020-07-17 22:29:06,644 INFO L422 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-17 22:29:06,645 INFO L427 AbstractCegarLoop]: === Iteration 1 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-17 22:29:06,651 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-17 22:29:06,651 INFO L82 PathProgramCache]: Analyzing trace with hash 1135050545, now seen corresponding path program 1 times [2020-07-17 22:29:06,659 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-17 22:29:06,660 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1327827930] [2020-07-17 22:29:06,660 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-17 22:29:06,784 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:07,035 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:07,089 INFO L280 TraceCheckUtils]: 0: Hoare triple {59#(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); {50#true} is VALID [2020-07-17 22:29:07,091 INFO L280 TraceCheckUtils]: 1: Hoare triple {50#true} assume true; {50#true} is VALID [2020-07-17 22:29:07,092 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {50#true} {50#true} #86#return; {50#true} is VALID [2020-07-17 22:29:07,096 INFO L263 TraceCheckUtils]: 0: Hoare triple {50#true} call ULTIMATE.init(); {59#(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-17 22:29:07,097 INFO L280 TraceCheckUtils]: 1: Hoare triple {59#(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); {50#true} is VALID [2020-07-17 22:29:07,098 INFO L280 TraceCheckUtils]: 2: Hoare triple {50#true} assume true; {50#true} is VALID [2020-07-17 22:29:07,098 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {50#true} {50#true} #86#return; {50#true} is VALID [2020-07-17 22:29:07,099 INFO L263 TraceCheckUtils]: 4: Hoare triple {50#true} call #t~ret34 := main(); {50#true} is VALID [2020-07-17 22:29:07,099 INFO L280 TraceCheckUtils]: 5: Hoare triple {50#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {50#true} is VALID [2020-07-17 22:29:07,100 INFO L263 TraceCheckUtils]: 6: Hoare triple {50#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {55#(= 8 |my_malloc_#in~size|)} is VALID [2020-07-17 22:29:07,102 INFO L280 TraceCheckUtils]: 7: Hoare triple {55#(= 8 |my_malloc_#in~size|)} ~size := #in~size; {56#(= 8 my_malloc_~size)} is VALID [2020-07-17 22:29:07,103 INFO L263 TraceCheckUtils]: 8: Hoare triple {56#(= 8 my_malloc_~size)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {57#(= 8 |__getMemory_#in~size|)} is VALID [2020-07-17 22:29:07,104 INFO L280 TraceCheckUtils]: 9: Hoare triple {57#(= 8 |__getMemory_#in~size|)} ~size := #in~size; {58#(= 8 __getMemory_~size)} is VALID [2020-07-17 22:29:07,105 INFO L280 TraceCheckUtils]: 10: Hoare triple {58#(= 8 __getMemory_~size)} assume !(~size > 0); {51#false} is VALID [2020-07-17 22:29:07,105 INFO L263 TraceCheckUtils]: 11: Hoare triple {51#false} call __blast_assert(); {51#false} is VALID [2020-07-17 22:29:07,106 INFO L280 TraceCheckUtils]: 12: Hoare triple {51#false} assume !false; {51#false} is VALID [2020-07-17 22:29:07,110 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-17 22:29:07,110 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1327827930] [2020-07-17 22:29:07,113 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-17 22:29:07,114 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2020-07-17 22:29:07,115 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1792379887] [2020-07-17 22:29:07,123 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 13 [2020-07-17 22:29:07,128 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-17 22:29:07,133 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2020-07-17 22:29:07,178 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-17 22:29:07,178 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2020-07-17 22:29:07,179 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-17 22:29:07,193 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2020-07-17 22:29:07,198 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2020-07-17 22:29:07,202 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 7 states. [2020-07-17 22:29:08,481 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:08,481 INFO L93 Difference]: Finished difference Result 88 states and 113 transitions. [2020-07-17 22:29:08,481 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-17 22:29:08,482 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 13 [2020-07-17 22:29:08,482 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-17 22:29:08,484 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-17 22:29:08,516 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 113 transitions. [2020-07-17 22:29:08,517 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-17 22:29:08,524 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 113 transitions. [2020-07-17 22:29:08,525 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 113 transitions. [2020-07-17 22:29:08,707 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 113 edges. 113 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-17 22:29:08,726 INFO L225 Difference]: With dead ends: 88 [2020-07-17 22:29:08,726 INFO L226 Difference]: Without dead ends: 43 [2020-07-17 22:29:08,731 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 13 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=41, Invalid=115, Unknown=0, NotChecked=0, Total=156 [2020-07-17 22:29:08,750 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2020-07-17 22:29:08,823 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 39. [2020-07-17 22:29:08,823 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-17 22:29:08,824 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 39 states. [2020-07-17 22:29:08,824 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 39 states. [2020-07-17 22:29:08,825 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 39 states. [2020-07-17 22:29:08,831 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:08,831 INFO L93 Difference]: Finished difference Result 43 states and 49 transitions. [2020-07-17 22:29:08,832 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 49 transitions. [2020-07-17 22:29:08,833 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:08,833 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:08,833 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 43 states. [2020-07-17 22:29:08,833 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 43 states. [2020-07-17 22:29:08,839 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:08,839 INFO L93 Difference]: Finished difference Result 43 states and 49 transitions. [2020-07-17 22:29:08,839 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 49 transitions. [2020-07-17 22:29:08,840 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:08,840 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:08,841 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-17 22:29:08,841 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-17 22:29:08,841 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2020-07-17 22:29:08,844 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 44 transitions. [2020-07-17 22:29:08,846 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 44 transitions. Word has length 13 [2020-07-17 22:29:08,847 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-17 22:29:08,847 INFO L479 AbstractCegarLoop]: Abstraction has 39 states and 44 transitions. [2020-07-17 22:29:08,847 INFO L480 AbstractCegarLoop]: Interpolant automaton has 7 states. [2020-07-17 22:29:08,847 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 44 transitions. [2020-07-17 22:29:08,848 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2020-07-17 22:29:08,849 INFO L414 BasicCegarLoop]: Found error trace [2020-07-17 22:29:08,849 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-17 22:29:08,849 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2020-07-17 22:29:08,850 INFO L427 AbstractCegarLoop]: === Iteration 2 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-17 22:29:08,850 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-17 22:29:08,850 INFO L82 PathProgramCache]: Analyzing trace with hash -925661111, now seen corresponding path program 1 times [2020-07-17 22:29:08,850 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-17 22:29:08,851 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2078485144] [2020-07-17 22:29:08,851 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-17 22:29:08,899 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:09,020 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:09,031 INFO L280 TraceCheckUtils]: 0: Hoare triple {363#(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); {334#true} is VALID [2020-07-17 22:29:09,031 INFO L280 TraceCheckUtils]: 1: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-17 22:29:09,032 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {334#true} {334#true} #86#return; {334#true} is VALID [2020-07-17 22:29:09,057 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:09,129 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:09,192 INFO L280 TraceCheckUtils]: 0: Hoare triple {364#(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; {334#true} is VALID [2020-07-17 22:29:09,193 INFO L280 TraceCheckUtils]: 1: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-17 22:29:09,193 INFO L280 TraceCheckUtils]: 2: Hoare triple {334#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; {334#true} is VALID [2020-07-17 22:29:09,194 INFO L280 TraceCheckUtils]: 3: Hoare triple {334#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:09,195 INFO L280 TraceCheckUtils]: 4: Hoare triple {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:09,198 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {334#true} #68#return; {371#(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-17 22:29:09,199 INFO L280 TraceCheckUtils]: 0: Hoare triple {364#(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; {334#true} is VALID [2020-07-17 22:29:09,200 INFO L263 TraceCheckUtils]: 1: Hoare triple {334#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {364#(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-17 22:29:09,200 INFO L280 TraceCheckUtils]: 2: Hoare triple {364#(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; {334#true} is VALID [2020-07-17 22:29:09,201 INFO L280 TraceCheckUtils]: 3: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-17 22:29:09,201 INFO L280 TraceCheckUtils]: 4: Hoare triple {334#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; {334#true} is VALID [2020-07-17 22:29:09,202 INFO L280 TraceCheckUtils]: 5: Hoare triple {334#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:09,203 INFO L280 TraceCheckUtils]: 6: Hoare triple {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:09,204 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {334#true} #68#return; {371#(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-17 22:29:09,205 INFO L280 TraceCheckUtils]: 8: Hoare triple {371#(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; {372#(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-17 22:29:09,206 INFO L280 TraceCheckUtils]: 9: Hoare triple {372#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} assume true; {372#(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-17 22:29:09,207 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {372#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} {334#true} #70#return; {350#(and (= 0 |main_#t~ret32.base|) (= |main_#t~ret32.offset| 0))} is VALID [2020-07-17 22:29:09,215 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:09,224 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:09,233 INFO L280 TraceCheckUtils]: 0: Hoare triple {364#(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; {334#true} is VALID [2020-07-17 22:29:09,233 INFO L280 TraceCheckUtils]: 1: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-17 22:29:09,234 INFO L280 TraceCheckUtils]: 2: Hoare triple {334#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; {334#true} is VALID [2020-07-17 22:29:09,234 INFO L280 TraceCheckUtils]: 3: Hoare triple {334#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {334#true} is VALID [2020-07-17 22:29:09,234 INFO L280 TraceCheckUtils]: 4: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-17 22:29:09,235 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {334#true} {334#true} #68#return; {334#true} is VALID [2020-07-17 22:29:09,235 INFO L280 TraceCheckUtils]: 0: Hoare triple {364#(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; {334#true} is VALID [2020-07-17 22:29:09,236 INFO L263 TraceCheckUtils]: 1: Hoare triple {334#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {364#(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-17 22:29:09,236 INFO L280 TraceCheckUtils]: 2: Hoare triple {364#(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; {334#true} is VALID [2020-07-17 22:29:09,237 INFO L280 TraceCheckUtils]: 3: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-17 22:29:09,237 INFO L280 TraceCheckUtils]: 4: Hoare triple {334#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; {334#true} is VALID [2020-07-17 22:29:09,237 INFO L280 TraceCheckUtils]: 5: Hoare triple {334#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {334#true} is VALID [2020-07-17 22:29:09,238 INFO L280 TraceCheckUtils]: 6: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-17 22:29:09,238 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {334#true} {334#true} #68#return; {334#true} is VALID [2020-07-17 22:29:09,238 INFO L280 TraceCheckUtils]: 8: Hoare triple {334#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {334#true} is VALID [2020-07-17 22:29:09,239 INFO L280 TraceCheckUtils]: 9: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-17 22:29:09,240 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {334#true} {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} #72#return; {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-17 22:29:09,241 INFO L263 TraceCheckUtils]: 0: Hoare triple {334#true} call ULTIMATE.init(); {363#(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-17 22:29:09,242 INFO L280 TraceCheckUtils]: 1: Hoare triple {363#(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); {334#true} is VALID [2020-07-17 22:29:09,242 INFO L280 TraceCheckUtils]: 2: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-17 22:29:09,242 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {334#true} {334#true} #86#return; {334#true} is VALID [2020-07-17 22:29:09,243 INFO L263 TraceCheckUtils]: 4: Hoare triple {334#true} call #t~ret34 := main(); {334#true} is VALID [2020-07-17 22:29:09,243 INFO L280 TraceCheckUtils]: 5: Hoare triple {334#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {334#true} is VALID [2020-07-17 22:29:09,244 INFO L263 TraceCheckUtils]: 6: Hoare triple {334#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {364#(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-17 22:29:09,244 INFO L280 TraceCheckUtils]: 7: Hoare triple {364#(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; {334#true} is VALID [2020-07-17 22:29:09,245 INFO L263 TraceCheckUtils]: 8: Hoare triple {334#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {364#(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-17 22:29:09,246 INFO L280 TraceCheckUtils]: 9: Hoare triple {364#(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; {334#true} is VALID [2020-07-17 22:29:09,246 INFO L280 TraceCheckUtils]: 10: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-17 22:29:09,246 INFO L280 TraceCheckUtils]: 11: Hoare triple {334#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; {334#true} is VALID [2020-07-17 22:29:09,247 INFO L280 TraceCheckUtils]: 12: Hoare triple {334#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:09,248 INFO L280 TraceCheckUtils]: 13: Hoare triple {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:09,249 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {334#true} #68#return; {371#(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-17 22:29:09,250 INFO L280 TraceCheckUtils]: 15: Hoare triple {371#(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; {372#(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-17 22:29:09,251 INFO L280 TraceCheckUtils]: 16: Hoare triple {372#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} assume true; {372#(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-17 22:29:09,252 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {372#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} {334#true} #70#return; {350#(and (= 0 |main_#t~ret32.base|) (= |main_#t~ret32.offset| 0))} is VALID [2020-07-17 22:29:09,253 INFO L280 TraceCheckUtils]: 18: Hoare triple {350#(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; {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-17 22:29:09,254 INFO L263 TraceCheckUtils]: 19: Hoare triple {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {364#(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-17 22:29:09,255 INFO L280 TraceCheckUtils]: 20: Hoare triple {364#(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; {334#true} is VALID [2020-07-17 22:29:09,255 INFO L263 TraceCheckUtils]: 21: Hoare triple {334#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {364#(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-17 22:29:09,256 INFO L280 TraceCheckUtils]: 22: Hoare triple {364#(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; {334#true} is VALID [2020-07-17 22:29:09,256 INFO L280 TraceCheckUtils]: 23: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-17 22:29:09,256 INFO L280 TraceCheckUtils]: 24: Hoare triple {334#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; {334#true} is VALID [2020-07-17 22:29:09,257 INFO L280 TraceCheckUtils]: 25: Hoare triple {334#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {334#true} is VALID [2020-07-17 22:29:09,257 INFO L280 TraceCheckUtils]: 26: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-17 22:29:09,257 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {334#true} {334#true} #68#return; {334#true} is VALID [2020-07-17 22:29:09,258 INFO L280 TraceCheckUtils]: 28: Hoare triple {334#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {334#true} is VALID [2020-07-17 22:29:09,258 INFO L280 TraceCheckUtils]: 29: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-17 22:29:09,259 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {334#true} {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} #72#return; {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-17 22:29:09,260 INFO L280 TraceCheckUtils]: 31: Hoare triple {351#(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; {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-17 22:29:09,261 INFO L280 TraceCheckUtils]: 32: Hoare triple {351#(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); {335#false} is VALID [2020-07-17 22:29:09,262 INFO L263 TraceCheckUtils]: 33: Hoare triple {335#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {335#false} is VALID [2020-07-17 22:29:09,262 INFO L280 TraceCheckUtils]: 34: Hoare triple {335#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {335#false} is VALID [2020-07-17 22:29:09,262 INFO L280 TraceCheckUtils]: 35: Hoare triple {335#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {335#false} is VALID [2020-07-17 22:29:09,262 INFO L263 TraceCheckUtils]: 36: Hoare triple {335#false} call __blast_assert(); {335#false} is VALID [2020-07-17 22:29:09,263 INFO L280 TraceCheckUtils]: 37: Hoare triple {335#false} assume !false; {335#false} is VALID [2020-07-17 22:29:09,266 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-17 22:29:09,267 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2078485144] [2020-07-17 22:29:09,267 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [467855123] [2020-07-17 22:29:09,268 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-17 22:29:09,396 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:09,400 INFO L264 TraceCheckSpWp]: Trace formula consists of 232 conjuncts, 21 conjunts are in the unsatisfiable core [2020-07-17 22:29:09,417 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:09,424 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-17 22:29:09,538 INFO L263 TraceCheckUtils]: 0: Hoare triple {334#true} call ULTIMATE.init(); {334#true} is VALID [2020-07-17 22:29:09,538 INFO L280 TraceCheckUtils]: 1: Hoare triple {334#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); {334#true} is VALID [2020-07-17 22:29:09,539 INFO L280 TraceCheckUtils]: 2: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-17 22:29:09,539 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {334#true} {334#true} #86#return; {334#true} is VALID [2020-07-17 22:29:09,539 INFO L263 TraceCheckUtils]: 4: Hoare triple {334#true} call #t~ret34 := main(); {334#true} is VALID [2020-07-17 22:29:09,540 INFO L280 TraceCheckUtils]: 5: Hoare triple {334#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {334#true} is VALID [2020-07-17 22:29:09,540 INFO L263 TraceCheckUtils]: 6: Hoare triple {334#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {334#true} is VALID [2020-07-17 22:29:09,540 INFO L280 TraceCheckUtils]: 7: Hoare triple {334#true} ~size := #in~size; {334#true} is VALID [2020-07-17 22:29:09,541 INFO L263 TraceCheckUtils]: 8: Hoare triple {334#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {334#true} is VALID [2020-07-17 22:29:09,541 INFO L280 TraceCheckUtils]: 9: Hoare triple {334#true} ~size := #in~size; {334#true} is VALID [2020-07-17 22:29:09,541 INFO L280 TraceCheckUtils]: 10: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-17 22:29:09,542 INFO L280 TraceCheckUtils]: 11: Hoare triple {334#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; {334#true} is VALID [2020-07-17 22:29:09,543 INFO L280 TraceCheckUtils]: 12: Hoare triple {334#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:09,544 INFO L280 TraceCheckUtils]: 13: Hoare triple {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:09,546 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {373#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {334#true} #68#return; {371#(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-17 22:29:09,547 INFO L280 TraceCheckUtils]: 15: Hoare triple {371#(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; {372#(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-17 22:29:09,548 INFO L280 TraceCheckUtils]: 16: Hoare triple {372#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} assume true; {372#(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-17 22:29:09,550 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {372#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} {334#true} #70#return; {350#(and (= 0 |main_#t~ret32.base|) (= |main_#t~ret32.offset| 0))} is VALID [2020-07-17 22:29:09,551 INFO L280 TraceCheckUtils]: 18: Hoare triple {350#(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; {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-17 22:29:09,551 INFO L263 TraceCheckUtils]: 19: Hoare triple {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {334#true} is VALID [2020-07-17 22:29:09,551 INFO L280 TraceCheckUtils]: 20: Hoare triple {334#true} ~size := #in~size; {334#true} is VALID [2020-07-17 22:29:09,552 INFO L263 TraceCheckUtils]: 21: Hoare triple {334#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {334#true} is VALID [2020-07-17 22:29:09,552 INFO L280 TraceCheckUtils]: 22: Hoare triple {334#true} ~size := #in~size; {334#true} is VALID [2020-07-17 22:29:09,552 INFO L280 TraceCheckUtils]: 23: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-17 22:29:09,553 INFO L280 TraceCheckUtils]: 24: Hoare triple {334#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; {334#true} is VALID [2020-07-17 22:29:09,553 INFO L280 TraceCheckUtils]: 25: Hoare triple {334#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {334#true} is VALID [2020-07-17 22:29:09,553 INFO L280 TraceCheckUtils]: 26: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-17 22:29:09,554 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {334#true} {334#true} #68#return; {334#true} is VALID [2020-07-17 22:29:09,554 INFO L280 TraceCheckUtils]: 28: Hoare triple {334#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {334#true} is VALID [2020-07-17 22:29:09,554 INFO L280 TraceCheckUtils]: 29: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-17 22:29:09,556 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {334#true} {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} #72#return; {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-17 22:29:09,557 INFO L280 TraceCheckUtils]: 31: Hoare triple {351#(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; {351#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-17 22:29:09,558 INFO L280 TraceCheckUtils]: 32: Hoare triple {351#(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); {335#false} is VALID [2020-07-17 22:29:09,558 INFO L263 TraceCheckUtils]: 33: Hoare triple {335#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {335#false} is VALID [2020-07-17 22:29:09,558 INFO L280 TraceCheckUtils]: 34: Hoare triple {335#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {335#false} is VALID [2020-07-17 22:29:09,558 INFO L280 TraceCheckUtils]: 35: Hoare triple {335#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {335#false} is VALID [2020-07-17 22:29:09,559 INFO L263 TraceCheckUtils]: 36: Hoare triple {335#false} call __blast_assert(); {335#false} is VALID [2020-07-17 22:29:09,559 INFO L280 TraceCheckUtils]: 37: Hoare triple {335#false} assume !false; {335#false} is VALID [2020-07-17 22:29:09,562 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-17 22:29:09,562 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-17 22:29:09,562 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 7] total 9 [2020-07-17 22:29:09,564 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1721915625] [2020-07-17 22:29:09,565 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-17 22:29:09,569 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-17 22:29:09,570 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2020-07-17 22:29:09,633 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-17 22:29:09,634 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2020-07-17 22:29:09,634 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-17 22:29:09,634 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2020-07-17 22:29:09,634 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=16, Invalid=56, Unknown=0, NotChecked=0, Total=72 [2020-07-17 22:29:09,635 INFO L87 Difference]: Start difference. First operand 39 states and 44 transitions. Second operand 9 states. [2020-07-17 22:29:10,514 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:10,515 INFO L93 Difference]: Finished difference Result 69 states and 81 transitions. [2020-07-17 22:29:10,515 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-17 22:29:10,515 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-17 22:29:10,516 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-17 22:29:10,516 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-17 22:29:10,520 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 81 transitions. [2020-07-17 22:29:10,520 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-17 22:29:10,524 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 81 transitions. [2020-07-17 22:29:10,524 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 81 transitions. [2020-07-17 22:29:10,648 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-17 22:29:10,652 INFO L225 Difference]: With dead ends: 69 [2020-07-17 22:29:10,652 INFO L226 Difference]: Without dead ends: 48 [2020-07-17 22:29:10,654 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-17 22:29:10,654 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2020-07-17 22:29:10,720 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 44. [2020-07-17 22:29:10,720 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-17 22:29:10,720 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 44 states. [2020-07-17 22:29:10,720 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 44 states. [2020-07-17 22:29:10,720 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 44 states. [2020-07-17 22:29:10,726 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:10,727 INFO L93 Difference]: Finished difference Result 48 states and 54 transitions. [2020-07-17 22:29:10,727 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 54 transitions. [2020-07-17 22:29:10,731 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:10,731 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:10,731 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 48 states. [2020-07-17 22:29:10,731 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 48 states. [2020-07-17 22:29:10,742 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:10,742 INFO L93 Difference]: Finished difference Result 48 states and 54 transitions. [2020-07-17 22:29:10,742 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 54 transitions. [2020-07-17 22:29:10,743 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:10,743 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:10,743 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-17 22:29:10,744 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-17 22:29:10,744 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 44 states. [2020-07-17 22:29:10,749 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 49 transitions. [2020-07-17 22:29:10,749 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 49 transitions. Word has length 38 [2020-07-17 22:29:10,751 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-17 22:29:10,752 INFO L479 AbstractCegarLoop]: Abstraction has 44 states and 49 transitions. [2020-07-17 22:29:10,752 INFO L480 AbstractCegarLoop]: Interpolant automaton has 9 states. [2020-07-17 22:29:10,752 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 49 transitions. [2020-07-17 22:29:10,755 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2020-07-17 22:29:10,755 INFO L414 BasicCegarLoop]: Found error trace [2020-07-17 22:29:10,755 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-17 22:29:10,969 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable1 [2020-07-17 22:29:10,969 INFO L427 AbstractCegarLoop]: === Iteration 3 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-17 22:29:10,970 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-17 22:29:10,970 INFO L82 PathProgramCache]: Analyzing trace with hash -894641304, now seen corresponding path program 1 times [2020-07-17 22:29:10,971 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-17 22:29:10,971 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1811545187] [2020-07-17 22:29:10,972 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-17 22:29:11,011 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:11,124 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:11,135 INFO L280 TraceCheckUtils]: 0: Hoare triple {774#(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); {745#true} is VALID [2020-07-17 22:29:11,135 INFO L280 TraceCheckUtils]: 1: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-17 22:29:11,136 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {745#true} {745#true} #86#return; {745#true} is VALID [2020-07-17 22:29:11,152 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:11,159 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:11,164 INFO L280 TraceCheckUtils]: 0: Hoare triple {775#(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; {745#true} is VALID [2020-07-17 22:29:11,165 INFO L280 TraceCheckUtils]: 1: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-17 22:29:11,165 INFO L280 TraceCheckUtils]: 2: Hoare triple {745#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; {745#true} is VALID [2020-07-17 22:29:11,166 INFO L280 TraceCheckUtils]: 3: Hoare triple {745#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {745#true} is VALID [2020-07-17 22:29:11,166 INFO L280 TraceCheckUtils]: 4: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-17 22:29:11,166 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {745#true} {745#true} #68#return; {745#true} is VALID [2020-07-17 22:29:11,167 INFO L280 TraceCheckUtils]: 0: Hoare triple {775#(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; {745#true} is VALID [2020-07-17 22:29:11,168 INFO L263 TraceCheckUtils]: 1: Hoare triple {745#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {775#(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-17 22:29:11,169 INFO L280 TraceCheckUtils]: 2: Hoare triple {775#(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; {745#true} is VALID [2020-07-17 22:29:11,169 INFO L280 TraceCheckUtils]: 3: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-17 22:29:11,169 INFO L280 TraceCheckUtils]: 4: Hoare triple {745#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; {745#true} is VALID [2020-07-17 22:29:11,169 INFO L280 TraceCheckUtils]: 5: Hoare triple {745#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {745#true} is VALID [2020-07-17 22:29:11,169 INFO L280 TraceCheckUtils]: 6: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-17 22:29:11,170 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {745#true} {745#true} #68#return; {745#true} is VALID [2020-07-17 22:29:11,170 INFO L280 TraceCheckUtils]: 8: Hoare triple {745#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {745#true} is VALID [2020-07-17 22:29:11,170 INFO L280 TraceCheckUtils]: 9: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-17 22:29:11,170 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {745#true} {745#true} #70#return; {745#true} is VALID [2020-07-17 22:29:11,178 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:11,250 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:11,287 INFO L280 TraceCheckUtils]: 0: Hoare triple {775#(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; {745#true} is VALID [2020-07-17 22:29:11,288 INFO L280 TraceCheckUtils]: 1: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-17 22:29:11,288 INFO L280 TraceCheckUtils]: 2: Hoare triple {745#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; {745#true} is VALID [2020-07-17 22:29:11,289 INFO L280 TraceCheckUtils]: 3: Hoare triple {745#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:11,290 INFO L280 TraceCheckUtils]: 4: Hoare triple {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:11,292 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {745#true} #68#return; {788#(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-17 22:29:11,292 INFO L280 TraceCheckUtils]: 0: Hoare triple {775#(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; {745#true} is VALID [2020-07-17 22:29:11,294 INFO L263 TraceCheckUtils]: 1: Hoare triple {745#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {775#(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-17 22:29:11,294 INFO L280 TraceCheckUtils]: 2: Hoare triple {775#(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; {745#true} is VALID [2020-07-17 22:29:11,294 INFO L280 TraceCheckUtils]: 3: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-17 22:29:11,295 INFO L280 TraceCheckUtils]: 4: Hoare triple {745#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; {745#true} is VALID [2020-07-17 22:29:11,296 INFO L280 TraceCheckUtils]: 5: Hoare triple {745#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:11,297 INFO L280 TraceCheckUtils]: 6: Hoare triple {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:11,298 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {745#true} #68#return; {788#(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-17 22:29:11,299 INFO L280 TraceCheckUtils]: 8: Hoare triple {788#(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; {789#(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-17 22:29:11,300 INFO L280 TraceCheckUtils]: 9: Hoare triple {789#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} assume true; {789#(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-17 22:29:11,321 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {789#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} {745#true} #72#return; {772#(and (= 0 |main_#t~ret33.offset|) (= 0 |main_#t~ret33.base|))} is VALID [2020-07-17 22:29:11,323 INFO L263 TraceCheckUtils]: 0: Hoare triple {745#true} call ULTIMATE.init(); {774#(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-17 22:29:11,324 INFO L280 TraceCheckUtils]: 1: Hoare triple {774#(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); {745#true} is VALID [2020-07-17 22:29:11,324 INFO L280 TraceCheckUtils]: 2: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-17 22:29:11,324 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {745#true} {745#true} #86#return; {745#true} is VALID [2020-07-17 22:29:11,324 INFO L263 TraceCheckUtils]: 4: Hoare triple {745#true} call #t~ret34 := main(); {745#true} is VALID [2020-07-17 22:29:11,325 INFO L280 TraceCheckUtils]: 5: Hoare triple {745#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {745#true} is VALID [2020-07-17 22:29:11,325 INFO L263 TraceCheckUtils]: 6: Hoare triple {745#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {775#(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-17 22:29:11,326 INFO L280 TraceCheckUtils]: 7: Hoare triple {775#(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; {745#true} is VALID [2020-07-17 22:29:11,327 INFO L263 TraceCheckUtils]: 8: Hoare triple {745#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {775#(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-17 22:29:11,327 INFO L280 TraceCheckUtils]: 9: Hoare triple {775#(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; {745#true} is VALID [2020-07-17 22:29:11,327 INFO L280 TraceCheckUtils]: 10: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-17 22:29:11,327 INFO L280 TraceCheckUtils]: 11: Hoare triple {745#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; {745#true} is VALID [2020-07-17 22:29:11,328 INFO L280 TraceCheckUtils]: 12: Hoare triple {745#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {745#true} is VALID [2020-07-17 22:29:11,328 INFO L280 TraceCheckUtils]: 13: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-17 22:29:11,328 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {745#true} {745#true} #68#return; {745#true} is VALID [2020-07-17 22:29:11,328 INFO L280 TraceCheckUtils]: 15: Hoare triple {745#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {745#true} is VALID [2020-07-17 22:29:11,329 INFO L280 TraceCheckUtils]: 16: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-17 22:29:11,329 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {745#true} {745#true} #70#return; {745#true} is VALID [2020-07-17 22:29:11,329 INFO L280 TraceCheckUtils]: 18: Hoare triple {745#true} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {745#true} is VALID [2020-07-17 22:29:11,330 INFO L263 TraceCheckUtils]: 19: Hoare triple {745#true} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {775#(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-17 22:29:11,330 INFO L280 TraceCheckUtils]: 20: Hoare triple {775#(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; {745#true} is VALID [2020-07-17 22:29:11,331 INFO L263 TraceCheckUtils]: 21: Hoare triple {745#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {775#(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-17 22:29:11,332 INFO L280 TraceCheckUtils]: 22: Hoare triple {775#(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; {745#true} is VALID [2020-07-17 22:29:11,332 INFO L280 TraceCheckUtils]: 23: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-17 22:29:11,332 INFO L280 TraceCheckUtils]: 24: Hoare triple {745#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; {745#true} is VALID [2020-07-17 22:29:11,333 INFO L280 TraceCheckUtils]: 25: Hoare triple {745#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:11,334 INFO L280 TraceCheckUtils]: 26: Hoare triple {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-17 22:29:11,336 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {790#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {745#true} #68#return; {788#(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-17 22:29:11,337 INFO L280 TraceCheckUtils]: 28: Hoare triple {788#(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; {789#(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-17 22:29:11,337 INFO L280 TraceCheckUtils]: 29: Hoare triple {789#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} assume true; {789#(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-17 22:29:11,339 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {789#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} {745#true} #72#return; {772#(and (= 0 |main_#t~ret33.offset|) (= 0 |main_#t~ret33.base|))} is VALID [2020-07-17 22:29:11,340 INFO L280 TraceCheckUtils]: 31: Hoare triple {772#(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; {773#(and (= 0 main_~dev2~0.offset) (= main_~dev2~0.base 0))} is VALID [2020-07-17 22:29:11,340 INFO L280 TraceCheckUtils]: 32: Hoare triple {773#(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); {746#false} is VALID [2020-07-17 22:29:11,341 INFO L263 TraceCheckUtils]: 33: Hoare triple {746#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {746#false} is VALID [2020-07-17 22:29:11,341 INFO L280 TraceCheckUtils]: 34: Hoare triple {746#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {746#false} is VALID [2020-07-17 22:29:11,341 INFO L280 TraceCheckUtils]: 35: Hoare triple {746#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {746#false} is VALID [2020-07-17 22:29:11,342 INFO L263 TraceCheckUtils]: 36: Hoare triple {746#false} call __blast_assert(); {746#false} is VALID [2020-07-17 22:29:11,342 INFO L280 TraceCheckUtils]: 37: Hoare triple {746#false} assume !false; {746#false} is VALID [2020-07-17 22:29:11,345 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-17 22:29:11,345 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1811545187] [2020-07-17 22:29:11,345 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-17 22:29:11,345 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2020-07-17 22:29:11,346 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1445510575] [2020-07-17 22:29:11,346 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-17 22:29:11,347 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-17 22:29:11,347 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2020-07-17 22:29:11,385 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-17 22:29:11,386 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2020-07-17 22:29:11,386 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-17 22:29:11,386 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2020-07-17 22:29:11,387 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=16, Invalid=56, Unknown=0, NotChecked=0, Total=72 [2020-07-17 22:29:11,387 INFO L87 Difference]: Start difference. First operand 44 states and 49 transitions. Second operand 9 states. [2020-07-17 22:29:12,216 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:12,216 INFO L93 Difference]: Finished difference Result 67 states and 76 transitions. [2020-07-17 22:29:12,216 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-17 22:29:12,217 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-17 22:29:12,217 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-17 22:29:12,218 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-17 22:29:12,223 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 76 transitions. [2020-07-17 22:29:12,224 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-17 22:29:12,229 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 76 transitions. [2020-07-17 22:29:12,230 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 76 transitions. [2020-07-17 22:29:12,365 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-17 22:29:12,368 INFO L225 Difference]: With dead ends: 67 [2020-07-17 22:29:12,368 INFO L226 Difference]: Without dead ends: 43 [2020-07-17 22:29:12,369 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-17 22:29:12,369 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2020-07-17 22:29:12,443 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 39. [2020-07-17 22:29:12,443 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-17 22:29:12,444 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 39 states. [2020-07-17 22:29:12,444 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 39 states. [2020-07-17 22:29:12,444 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 39 states. [2020-07-17 22:29:12,447 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:12,448 INFO L93 Difference]: Finished difference Result 43 states and 48 transitions. [2020-07-17 22:29:12,448 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 48 transitions. [2020-07-17 22:29:12,449 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:12,449 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:12,449 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 43 states. [2020-07-17 22:29:12,451 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 43 states. [2020-07-17 22:29:12,458 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:12,459 INFO L93 Difference]: Finished difference Result 43 states and 48 transitions. [2020-07-17 22:29:12,459 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 48 transitions. [2020-07-17 22:29:12,460 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:12,460 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:12,460 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-17 22:29:12,460 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-17 22:29:12,461 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2020-07-17 22:29:12,463 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 43 transitions. [2020-07-17 22:29:12,463 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 43 transitions. Word has length 38 [2020-07-17 22:29:12,463 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-17 22:29:12,463 INFO L479 AbstractCegarLoop]: Abstraction has 39 states and 43 transitions. [2020-07-17 22:29:12,463 INFO L480 AbstractCegarLoop]: Interpolant automaton has 9 states. [2020-07-17 22:29:12,464 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 43 transitions. [2020-07-17 22:29:12,465 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2020-07-17 22:29:12,465 INFO L414 BasicCegarLoop]: Found error trace [2020-07-17 22:29:12,465 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-17 22:29:12,465 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2020-07-17 22:29:12,465 INFO L427 AbstractCegarLoop]: === Iteration 4 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-17 22:29:12,466 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-17 22:29:12,466 INFO L82 PathProgramCache]: Analyzing trace with hash -1188044311, now seen corresponding path program 1 times [2020-07-17 22:29:12,466 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-17 22:29:12,466 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1974121867] [2020-07-17 22:29:12,466 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-17 22:29:12,485 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:12,655 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:12,665 INFO L280 TraceCheckUtils]: 0: Hoare triple {1060#(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); {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:12,674 INFO L280 TraceCheckUtils]: 1: Hoare triple {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} assume true; {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:12,676 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} {1027#true} #86#return; {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:12,700 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:12,760 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:12,781 INFO L280 TraceCheckUtils]: 0: Hoare triple {1061#(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; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,782 INFO L280 TraceCheckUtils]: 1: Hoare triple {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,783 INFO L280 TraceCheckUtils]: 2: Hoare triple {1062#(= ~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; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,784 INFO L280 TraceCheckUtils]: 3: Hoare triple {1069#(<= (+ |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; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,784 INFO L280 TraceCheckUtils]: 4: Hoare triple {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,785 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,785 INFO L280 TraceCheckUtils]: 0: Hoare triple {1061#(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; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,786 INFO L263 TraceCheckUtils]: 1: Hoare triple {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1061#(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-17 22:29:12,787 INFO L280 TraceCheckUtils]: 2: Hoare triple {1061#(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; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,787 INFO L280 TraceCheckUtils]: 3: Hoare triple {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,788 INFO L280 TraceCheckUtils]: 4: Hoare triple {1062#(= ~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; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,788 INFO L280 TraceCheckUtils]: 5: Hoare triple {1069#(<= (+ |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; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,788 INFO L280 TraceCheckUtils]: 6: Hoare triple {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,789 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,790 INFO L280 TraceCheckUtils]: 8: Hoare triple {1069#(<= (+ |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; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,792 INFO L280 TraceCheckUtils]: 9: Hoare triple {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,794 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} #70#return; {1044#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:12,800 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:12,848 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:12,879 INFO L280 TraceCheckUtils]: 0: Hoare triple {1061#(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; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,879 INFO L280 TraceCheckUtils]: 1: Hoare triple {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,880 INFO L280 TraceCheckUtils]: 2: Hoare triple {1062#(= ~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; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,881 INFO L280 TraceCheckUtils]: 3: Hoare triple {1069#(<= (+ |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; {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:12,882 INFO L280 TraceCheckUtils]: 4: Hoare triple {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:12,884 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {1076#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:12,885 INFO L280 TraceCheckUtils]: 0: Hoare triple {1061#(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; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,886 INFO L263 TraceCheckUtils]: 1: Hoare triple {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1061#(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-17 22:29:12,887 INFO L280 TraceCheckUtils]: 2: Hoare triple {1061#(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; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,887 INFO L280 TraceCheckUtils]: 3: Hoare triple {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,888 INFO L280 TraceCheckUtils]: 4: Hoare triple {1062#(= ~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; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,889 INFO L280 TraceCheckUtils]: 5: Hoare triple {1069#(<= (+ |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; {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:12,890 INFO L280 TraceCheckUtils]: 6: Hoare triple {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:12,891 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {1076#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:12,892 INFO L280 TraceCheckUtils]: 8: Hoare triple {1076#(<= (+ |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; {1077#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:12,893 INFO L280 TraceCheckUtils]: 9: Hoare triple {1077#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {1077#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:12,894 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {1077#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {1044#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} #72#return; {1056#(and (= 0 ~elem~0.offset) (<= 2 |main_#t~ret33.offset|))} is VALID [2020-07-17 22:29:12,896 INFO L263 TraceCheckUtils]: 0: Hoare triple {1027#true} call ULTIMATE.init(); {1060#(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-17 22:29:12,898 INFO L280 TraceCheckUtils]: 1: Hoare triple {1060#(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); {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:12,898 INFO L280 TraceCheckUtils]: 2: Hoare triple {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} assume true; {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:12,899 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} {1027#true} #86#return; {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:12,900 INFO L263 TraceCheckUtils]: 4: Hoare triple {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} call #t~ret34 := main(); {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:12,900 INFO L280 TraceCheckUtils]: 5: Hoare triple {1032#(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; {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:12,901 INFO L263 TraceCheckUtils]: 6: Hoare triple {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {1061#(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-17 22:29:12,902 INFO L280 TraceCheckUtils]: 7: Hoare triple {1061#(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; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,903 INFO L263 TraceCheckUtils]: 8: Hoare triple {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1061#(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-17 22:29:12,904 INFO L280 TraceCheckUtils]: 9: Hoare triple {1061#(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; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,905 INFO L280 TraceCheckUtils]: 10: Hoare triple {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,906 INFO L280 TraceCheckUtils]: 11: Hoare triple {1062#(= ~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; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,907 INFO L280 TraceCheckUtils]: 12: Hoare triple {1069#(<= (+ |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; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,909 INFO L280 TraceCheckUtils]: 13: Hoare triple {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,914 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,915 INFO L280 TraceCheckUtils]: 15: Hoare triple {1069#(<= (+ |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; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,916 INFO L280 TraceCheckUtils]: 16: Hoare triple {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,918 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {1032#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} #70#return; {1044#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:12,918 INFO L280 TraceCheckUtils]: 18: Hoare triple {1044#(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; {1044#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:12,919 INFO L263 TraceCheckUtils]: 19: Hoare triple {1044#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {1061#(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-17 22:29:12,920 INFO L280 TraceCheckUtils]: 20: Hoare triple {1061#(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; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,921 INFO L263 TraceCheckUtils]: 21: Hoare triple {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1061#(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-17 22:29:12,922 INFO L280 TraceCheckUtils]: 22: Hoare triple {1061#(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; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,923 INFO L280 TraceCheckUtils]: 23: Hoare triple {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:12,924 INFO L280 TraceCheckUtils]: 24: Hoare triple {1062#(= ~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; {1069#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:12,925 INFO L280 TraceCheckUtils]: 25: Hoare triple {1069#(<= (+ |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; {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:12,925 INFO L280 TraceCheckUtils]: 26: Hoare triple {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:12,927 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {1078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1062#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {1076#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:12,928 INFO L280 TraceCheckUtils]: 28: Hoare triple {1076#(<= (+ |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; {1077#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:12,928 INFO L280 TraceCheckUtils]: 29: Hoare triple {1077#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {1077#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:12,930 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1077#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {1044#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} #72#return; {1056#(and (= 0 ~elem~0.offset) (<= 2 |main_#t~ret33.offset|))} is VALID [2020-07-17 22:29:12,931 INFO L280 TraceCheckUtils]: 31: Hoare triple {1056#(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; {1057#(and (= 0 ~elem~0.offset) (<= 2 main_~dev2~0.offset))} is VALID [2020-07-17 22:29:12,932 INFO L280 TraceCheckUtils]: 32: Hoare triple {1057#(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); {1057#(and (= 0 ~elem~0.offset) (<= 2 main_~dev2~0.offset))} is VALID [2020-07-17 22:29:12,934 INFO L263 TraceCheckUtils]: 33: Hoare triple {1057#(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); {1058#(and (= 0 ~elem~0.offset) (<= 2 |list_add_#in~new.offset|))} is VALID [2020-07-17 22:29:12,935 INFO L280 TraceCheckUtils]: 34: Hoare triple {1058#(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; {1059#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} is VALID [2020-07-17 22:29:12,936 INFO L280 TraceCheckUtils]: 35: Hoare triple {1059#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1028#false} is VALID [2020-07-17 22:29:12,936 INFO L263 TraceCheckUtils]: 36: Hoare triple {1028#false} call __blast_assert(); {1028#false} is VALID [2020-07-17 22:29:12,936 INFO L280 TraceCheckUtils]: 37: Hoare triple {1028#false} assume !false; {1028#false} is VALID [2020-07-17 22:29:12,940 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-17 22:29:12,940 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1974121867] [2020-07-17 22:29:12,940 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [401693237] [2020-07-17 22:29:12,940 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-17 22:29:13,063 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:13,065 INFO L264 TraceCheckSpWp]: Trace formula consists of 230 conjuncts, 26 conjunts are in the unsatisfiable core [2020-07-17 22:29:13,084 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:13,087 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-17 22:29:13,697 INFO L263 TraceCheckUtils]: 0: Hoare triple {1027#true} call ULTIMATE.init(); {1027#true} is VALID [2020-07-17 22:29:13,699 INFO L280 TraceCheckUtils]: 1: Hoare triple {1027#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); {1085#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,700 INFO L280 TraceCheckUtils]: 2: Hoare triple {1085#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {1085#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,700 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1085#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {1027#true} #86#return; {1085#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,701 INFO L263 TraceCheckUtils]: 4: Hoare triple {1085#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call #t~ret34 := main(); {1085#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,702 INFO L280 TraceCheckUtils]: 5: Hoare triple {1085#(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; {1085#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,703 INFO L263 TraceCheckUtils]: 6: Hoare triple {1085#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,704 INFO L280 TraceCheckUtils]: 7: Hoare triple {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,705 INFO L263 TraceCheckUtils]: 8: Hoare triple {1101#(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); {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,706 INFO L280 TraceCheckUtils]: 9: Hoare triple {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,707 INFO L280 TraceCheckUtils]: 10: Hoare triple {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume ~size > 0; {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,709 INFO L280 TraceCheckUtils]: 11: Hoare triple {1101#(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; {1117#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,710 INFO L280 TraceCheckUtils]: 12: Hoare triple {1117#(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; {1117#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,711 INFO L280 TraceCheckUtils]: 13: Hoare triple {1117#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {1117#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,712 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {1117#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #68#return; {1117#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,713 INFO L280 TraceCheckUtils]: 15: Hoare triple {1117#(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; {1117#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,714 INFO L280 TraceCheckUtils]: 16: Hoare triple {1117#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {1117#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,716 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {1117#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {1085#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #70#return; {1136#(and (<= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:13,717 INFO L280 TraceCheckUtils]: 18: Hoare triple {1136#(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; {1136#(and (<= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:13,718 INFO L263 TraceCheckUtils]: 19: Hoare triple {1136#(and (<= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,719 INFO L280 TraceCheckUtils]: 20: Hoare triple {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,720 INFO L263 TraceCheckUtils]: 21: Hoare triple {1101#(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); {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,721 INFO L280 TraceCheckUtils]: 22: Hoare triple {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,722 INFO L280 TraceCheckUtils]: 23: Hoare triple {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume ~size > 0; {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,723 INFO L280 TraceCheckUtils]: 24: Hoare triple {1101#(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; {1117#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,724 INFO L280 TraceCheckUtils]: 25: Hoare triple {1117#(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; {1161#(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-17 22:29:13,725 INFO L280 TraceCheckUtils]: 26: Hoare triple {1161#(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; {1161#(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-17 22:29:13,727 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {1161#(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))} {1101#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #68#return; {1168#(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-17 22:29:13,729 INFO L280 TraceCheckUtils]: 28: Hoare triple {1168#(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; {1172#(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-17 22:29:13,729 INFO L280 TraceCheckUtils]: 29: Hoare triple {1172#(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; {1172#(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-17 22:29:13,731 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1172#(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))} {1136#(and (<= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} #72#return; {1179#(and (<= 2 |main_#t~ret33.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,732 INFO L280 TraceCheckUtils]: 31: Hoare triple {1179#(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; {1183#(and (<= 2 main_~dev2~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,733 INFO L280 TraceCheckUtils]: 32: Hoare triple {1183#(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); {1183#(and (<= 2 main_~dev2~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,734 INFO L263 TraceCheckUtils]: 33: Hoare triple {1183#(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); {1190#(and (<= 2 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,735 INFO L280 TraceCheckUtils]: 34: Hoare triple {1190#(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; {1194#(and (<= 2 list_add_~new.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:13,736 INFO L280 TraceCheckUtils]: 35: Hoare triple {1194#(and (<= 2 list_add_~new.offset) (<= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1028#false} is VALID [2020-07-17 22:29:13,736 INFO L263 TraceCheckUtils]: 36: Hoare triple {1028#false} call __blast_assert(); {1028#false} is VALID [2020-07-17 22:29:13,736 INFO L280 TraceCheckUtils]: 37: Hoare triple {1028#false} assume !false; {1028#false} is VALID [2020-07-17 22:29:13,743 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-17 22:29:13,743 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2020-07-17 22:29:13,744 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [14] total 26 [2020-07-17 22:29:13,744 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [973862349] [2020-07-17 22:29:13,745 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 38 [2020-07-17 22:29:13,745 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-17 22:29:13,746 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2020-07-17 22:29:13,790 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-17 22:29:13,791 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2020-07-17 22:29:13,791 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-17 22:29:13,791 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2020-07-17 22:29:13,792 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=74, Invalid=576, Unknown=0, NotChecked=0, Total=650 [2020-07-17 22:29:13,792 INFO L87 Difference]: Start difference. First operand 39 states and 43 transitions. Second operand 13 states. [2020-07-17 22:29:15,518 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:15,518 INFO L93 Difference]: Finished difference Result 71 states and 80 transitions. [2020-07-17 22:29:15,518 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2020-07-17 22:29:15,519 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 38 [2020-07-17 22:29:15,519 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-17 22:29:15,519 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2020-07-17 22:29:15,522 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 80 transitions. [2020-07-17 22:29:15,525 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2020-07-17 22:29:15,529 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 80 transitions. [2020-07-17 22:29:15,530 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states and 80 transitions. [2020-07-17 22:29:15,629 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 80 edges. 80 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-17 22:29:15,634 INFO L225 Difference]: With dead ends: 71 [2020-07-17 22:29:15,634 INFO L226 Difference]: Without dead ends: 60 [2020-07-17 22:29:15,635 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-17 22:29:15,635 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2020-07-17 22:29:15,716 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 50. [2020-07-17 22:29:15,717 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-17 22:29:15,717 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand 50 states. [2020-07-17 22:29:15,717 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 50 states. [2020-07-17 22:29:15,717 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 50 states. [2020-07-17 22:29:15,721 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:15,721 INFO L93 Difference]: Finished difference Result 60 states and 67 transitions. [2020-07-17 22:29:15,721 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 67 transitions. [2020-07-17 22:29:15,722 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:15,722 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:15,722 INFO L74 IsIncluded]: Start isIncluded. First operand 50 states. Second operand 60 states. [2020-07-17 22:29:15,722 INFO L87 Difference]: Start difference. First operand 50 states. Second operand 60 states. [2020-07-17 22:29:15,726 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:15,726 INFO L93 Difference]: Finished difference Result 60 states and 67 transitions. [2020-07-17 22:29:15,726 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 67 transitions. [2020-07-17 22:29:15,727 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:15,727 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:15,727 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-17 22:29:15,727 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-17 22:29:15,727 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 50 states. [2020-07-17 22:29:15,729 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 50 states to 50 states and 57 transitions. [2020-07-17 22:29:15,730 INFO L78 Accepts]: Start accepts. Automaton has 50 states and 57 transitions. Word has length 38 [2020-07-17 22:29:15,730 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-17 22:29:15,730 INFO L479 AbstractCegarLoop]: Abstraction has 50 states and 57 transitions. [2020-07-17 22:29:15,730 INFO L480 AbstractCegarLoop]: Interpolant automaton has 13 states. [2020-07-17 22:29:15,730 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 57 transitions. [2020-07-17 22:29:15,731 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 46 [2020-07-17 22:29:15,731 INFO L414 BasicCegarLoop]: Found error trace [2020-07-17 22:29:15,732 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-17 22:29:15,943 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,3 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-17 22:29:15,944 INFO L427 AbstractCegarLoop]: === Iteration 5 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-17 22:29:15,945 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-17 22:29:15,945 INFO L82 PathProgramCache]: Analyzing trace with hash 1335597358, now seen corresponding path program 1 times [2020-07-17 22:29:15,945 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-17 22:29:15,946 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1701723949] [2020-07-17 22:29:15,946 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-17 22:29:15,991 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:16,173 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:16,182 INFO L280 TraceCheckUtils]: 0: Hoare triple {1554#(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); {1514#true} is VALID [2020-07-17 22:29:16,182 INFO L280 TraceCheckUtils]: 1: Hoare triple {1514#true} assume true; {1514#true} is VALID [2020-07-17 22:29:16,183 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1514#true} {1514#true} #86#return; {1514#true} is VALID [2020-07-17 22:29:16,219 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:16,269 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:16,301 INFO L280 TraceCheckUtils]: 0: Hoare triple {1555#(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; {1514#true} is VALID [2020-07-17 22:29:16,302 INFO L280 TraceCheckUtils]: 1: Hoare triple {1514#true} assume ~size > 0; {1514#true} is VALID [2020-07-17 22:29:16,302 INFO L280 TraceCheckUtils]: 2: Hoare triple {1514#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; {1514#true} is VALID [2020-07-17 22:29:16,303 INFO L280 TraceCheckUtils]: 3: Hoare triple {1514#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,303 INFO L280 TraceCheckUtils]: 4: Hoare triple {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,305 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {1514#true} #68#return; {1562#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,305 INFO L280 TraceCheckUtils]: 0: Hoare triple {1555#(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; {1514#true} is VALID [2020-07-17 22:29:16,306 INFO L263 TraceCheckUtils]: 1: Hoare triple {1514#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1555#(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-17 22:29:16,306 INFO L280 TraceCheckUtils]: 2: Hoare triple {1555#(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; {1514#true} is VALID [2020-07-17 22:29:16,307 INFO L280 TraceCheckUtils]: 3: Hoare triple {1514#true} assume ~size > 0; {1514#true} is VALID [2020-07-17 22:29:16,307 INFO L280 TraceCheckUtils]: 4: Hoare triple {1514#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; {1514#true} is VALID [2020-07-17 22:29:16,314 INFO L280 TraceCheckUtils]: 5: Hoare triple {1514#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,315 INFO L280 TraceCheckUtils]: 6: Hoare triple {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,319 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {1514#true} #68#return; {1562#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,320 INFO L280 TraceCheckUtils]: 8: Hoare triple {1562#(<= |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; {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,321 INFO L280 TraceCheckUtils]: 9: Hoare triple {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,322 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {1514#true} #70#return; {1530#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,327 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:16,416 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:16,504 INFO L280 TraceCheckUtils]: 0: Hoare triple {1555#(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; {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:16,505 INFO L280 TraceCheckUtils]: 1: Hoare triple {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:16,506 INFO L280 TraceCheckUtils]: 2: Hoare triple {1565#(= ~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; {1574#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,507 INFO L280 TraceCheckUtils]: 3: Hoare triple {1574#(<= (+ |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; {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:16,508 INFO L280 TraceCheckUtils]: 4: Hoare triple {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:16,509 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {1572#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:16,510 INFO L280 TraceCheckUtils]: 0: Hoare triple {1555#(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; {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:16,512 INFO L263 TraceCheckUtils]: 1: Hoare triple {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1555#(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-17 22:29:16,512 INFO L280 TraceCheckUtils]: 2: Hoare triple {1555#(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; {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:16,513 INFO L280 TraceCheckUtils]: 3: Hoare triple {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:16,514 INFO L280 TraceCheckUtils]: 4: Hoare triple {1565#(= ~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; {1574#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,515 INFO L280 TraceCheckUtils]: 5: Hoare triple {1574#(<= (+ |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; {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:16,516 INFO L280 TraceCheckUtils]: 6: Hoare triple {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:16,517 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {1572#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:16,518 INFO L280 TraceCheckUtils]: 8: Hoare triple {1572#(<= (+ |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; {1573#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:16,519 INFO L280 TraceCheckUtils]: 9: Hoare triple {1573#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {1573#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:16,520 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {1573#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {1531#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #72#return; {1543#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:16,552 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:16,611 INFO L280 TraceCheckUtils]: 0: Hoare triple {1576#(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; {1577#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:16,612 INFO L280 TraceCheckUtils]: 1: Hoare triple {1577#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1577#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:16,613 INFO L280 TraceCheckUtils]: 2: Hoare triple {1577#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {1577#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:16,614 INFO L280 TraceCheckUtils]: 3: Hoare triple {1577#(= |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; {1578#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:16,615 INFO L280 TraceCheckUtils]: 4: Hoare triple {1578#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {1578#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:16,616 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1578#(= ~elem~0.offset |list_add_#in~new.offset|)} {1544#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #74#return; {1551#(<= (+ main_~dev1~0.offset 1) ~elem~0.offset)} is VALID [2020-07-17 22:29:16,618 INFO L263 TraceCheckUtils]: 0: Hoare triple {1514#true} call ULTIMATE.init(); {1554#(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-17 22:29:16,618 INFO L280 TraceCheckUtils]: 1: Hoare triple {1554#(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); {1514#true} is VALID [2020-07-17 22:29:16,619 INFO L280 TraceCheckUtils]: 2: Hoare triple {1514#true} assume true; {1514#true} is VALID [2020-07-17 22:29:16,619 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1514#true} {1514#true} #86#return; {1514#true} is VALID [2020-07-17 22:29:16,619 INFO L263 TraceCheckUtils]: 4: Hoare triple {1514#true} call #t~ret34 := main(); {1514#true} is VALID [2020-07-17 22:29:16,620 INFO L280 TraceCheckUtils]: 5: Hoare triple {1514#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {1514#true} is VALID [2020-07-17 22:29:16,621 INFO L263 TraceCheckUtils]: 6: Hoare triple {1514#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {1555#(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-17 22:29:16,621 INFO L280 TraceCheckUtils]: 7: Hoare triple {1555#(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; {1514#true} is VALID [2020-07-17 22:29:16,622 INFO L263 TraceCheckUtils]: 8: Hoare triple {1514#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1555#(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-17 22:29:16,622 INFO L280 TraceCheckUtils]: 9: Hoare triple {1555#(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; {1514#true} is VALID [2020-07-17 22:29:16,622 INFO L280 TraceCheckUtils]: 10: Hoare triple {1514#true} assume ~size > 0; {1514#true} is VALID [2020-07-17 22:29:16,622 INFO L280 TraceCheckUtils]: 11: Hoare triple {1514#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; {1514#true} is VALID [2020-07-17 22:29:16,624 INFO L280 TraceCheckUtils]: 12: Hoare triple {1514#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,624 INFO L280 TraceCheckUtils]: 13: Hoare triple {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,625 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {1514#true} #68#return; {1562#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,626 INFO L280 TraceCheckUtils]: 15: Hoare triple {1562#(<= |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; {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,627 INFO L280 TraceCheckUtils]: 16: Hoare triple {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,627 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {1514#true} #70#return; {1530#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,629 INFO L280 TraceCheckUtils]: 18: Hoare triple {1530#(<= |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; {1531#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,629 INFO L263 TraceCheckUtils]: 19: Hoare triple {1531#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {1555#(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-17 22:29:16,630 INFO L280 TraceCheckUtils]: 20: Hoare triple {1555#(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; {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:16,631 INFO L263 TraceCheckUtils]: 21: Hoare triple {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1555#(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-17 22:29:16,631 INFO L280 TraceCheckUtils]: 22: Hoare triple {1555#(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; {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:16,634 INFO L280 TraceCheckUtils]: 23: Hoare triple {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:16,638 INFO L280 TraceCheckUtils]: 24: Hoare triple {1565#(= ~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; {1574#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:16,639 INFO L280 TraceCheckUtils]: 25: Hoare triple {1574#(<= (+ |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; {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:16,639 INFO L280 TraceCheckUtils]: 26: Hoare triple {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:16,640 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {1575#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1565#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {1572#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:16,641 INFO L280 TraceCheckUtils]: 28: Hoare triple {1572#(<= (+ |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; {1573#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:16,642 INFO L280 TraceCheckUtils]: 29: Hoare triple {1573#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {1573#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:16,644 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1573#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {1531#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #72#return; {1543#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:16,646 INFO L280 TraceCheckUtils]: 31: Hoare triple {1543#(<= (+ 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; {1544#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:16,647 INFO L280 TraceCheckUtils]: 32: Hoare triple {1544#(<= (+ 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); {1544#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:16,649 INFO L263 TraceCheckUtils]: 33: Hoare triple {1544#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {1576#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:16,650 INFO L280 TraceCheckUtils]: 34: Hoare triple {1576#(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; {1577#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:16,650 INFO L280 TraceCheckUtils]: 35: Hoare triple {1577#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1577#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:16,669 INFO L280 TraceCheckUtils]: 36: Hoare triple {1577#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {1577#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:16,669 INFO L280 TraceCheckUtils]: 37: Hoare triple {1577#(= |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; {1578#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:16,670 INFO L280 TraceCheckUtils]: 38: Hoare triple {1578#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {1578#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:16,671 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1578#(= ~elem~0.offset |list_add_#in~new.offset|)} {1544#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #74#return; {1551#(<= (+ main_~dev1~0.offset 1) ~elem~0.offset)} is VALID [2020-07-17 22:29:16,672 INFO L263 TraceCheckUtils]: 40: Hoare triple {1551#(<= (+ main_~dev1~0.offset 1) ~elem~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {1552#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} is VALID [2020-07-17 22:29:16,672 INFO L280 TraceCheckUtils]: 41: Hoare triple {1552#(<= (+ |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; {1553#(not (= ~elem~0.offset list_add_~new.offset))} is VALID [2020-07-17 22:29:16,673 INFO L280 TraceCheckUtils]: 42: Hoare triple {1553#(not (= ~elem~0.offset list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1515#false} is VALID [2020-07-17 22:29:16,673 INFO L263 TraceCheckUtils]: 43: Hoare triple {1515#false} call __blast_assert(); {1515#false} is VALID [2020-07-17 22:29:16,673 INFO L280 TraceCheckUtils]: 44: Hoare triple {1515#false} assume !false; {1515#false} is VALID [2020-07-17 22:29:16,677 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-17 22:29:16,678 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1701723949] [2020-07-17 22:29:16,678 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [498536228] [2020-07-17 22:29:16,678 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-17 22:29:16,796 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:16,798 INFO L264 TraceCheckSpWp]: Trace formula consists of 264 conjuncts, 23 conjunts are in the unsatisfiable core [2020-07-17 22:29:16,816 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:16,819 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-17 22:29:17,244 INFO L263 TraceCheckUtils]: 0: Hoare triple {1514#true} call ULTIMATE.init(); {1514#true} is VALID [2020-07-17 22:29:17,244 INFO L280 TraceCheckUtils]: 1: Hoare triple {1514#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); {1514#true} is VALID [2020-07-17 22:29:17,245 INFO L280 TraceCheckUtils]: 2: Hoare triple {1514#true} assume true; {1514#true} is VALID [2020-07-17 22:29:17,245 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1514#true} {1514#true} #86#return; {1514#true} is VALID [2020-07-17 22:29:17,245 INFO L263 TraceCheckUtils]: 4: Hoare triple {1514#true} call #t~ret34 := main(); {1514#true} is VALID [2020-07-17 22:29:17,245 INFO L280 TraceCheckUtils]: 5: Hoare triple {1514#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {1514#true} is VALID [2020-07-17 22:29:17,246 INFO L263 TraceCheckUtils]: 6: Hoare triple {1514#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {1514#true} is VALID [2020-07-17 22:29:17,246 INFO L280 TraceCheckUtils]: 7: Hoare triple {1514#true} ~size := #in~size; {1514#true} is VALID [2020-07-17 22:29:17,246 INFO L263 TraceCheckUtils]: 8: Hoare triple {1514#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1514#true} is VALID [2020-07-17 22:29:17,247 INFO L280 TraceCheckUtils]: 9: Hoare triple {1514#true} ~size := #in~size; {1514#true} is VALID [2020-07-17 22:29:17,247 INFO L280 TraceCheckUtils]: 10: Hoare triple {1514#true} assume ~size > 0; {1514#true} is VALID [2020-07-17 22:29:17,247 INFO L280 TraceCheckUtils]: 11: Hoare triple {1514#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; {1514#true} is VALID [2020-07-17 22:29:17,253 INFO L280 TraceCheckUtils]: 12: Hoare triple {1514#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,254 INFO L280 TraceCheckUtils]: 13: Hoare triple {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,254 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {1564#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {1514#true} #68#return; {1562#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,255 INFO L280 TraceCheckUtils]: 15: Hoare triple {1562#(<= |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; {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,255 INFO L280 TraceCheckUtils]: 16: Hoare triple {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,256 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {1563#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {1514#true} #70#return; {1530#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,256 INFO L280 TraceCheckUtils]: 18: Hoare triple {1530#(<= |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; {1531#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,257 INFO L263 TraceCheckUtils]: 19: Hoare triple {1531#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {1639#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,257 INFO L280 TraceCheckUtils]: 20: Hoare triple {1639#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {1639#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,258 INFO L263 TraceCheckUtils]: 21: Hoare triple {1639#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1639#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,259 INFO L280 TraceCheckUtils]: 22: Hoare triple {1639#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {1639#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,260 INFO L280 TraceCheckUtils]: 23: Hoare triple {1639#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume ~size > 0; {1639#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,261 INFO L280 TraceCheckUtils]: 24: Hoare triple {1639#(<= |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; {1574#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:17,262 INFO L280 TraceCheckUtils]: 25: Hoare triple {1574#(<= (+ |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; {1658#(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-17 22:29:17,263 INFO L280 TraceCheckUtils]: 26: Hoare triple {1658#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} assume true; {1658#(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-17 22:29:17,264 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {1658#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} {1639#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #68#return; {1665#(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-17 22:29:17,264 INFO L280 TraceCheckUtils]: 28: Hoare triple {1665#(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; {1669#(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-17 22:29:17,265 INFO L280 TraceCheckUtils]: 29: Hoare triple {1669#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} assume true; {1669#(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-17 22:29:17,266 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1669#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} {1531#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #72#return; {1543#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:17,266 INFO L280 TraceCheckUtils]: 31: Hoare triple {1543#(<= (+ 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; {1544#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:17,267 INFO L280 TraceCheckUtils]: 32: Hoare triple {1544#(<= (+ 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); {1544#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:17,267 INFO L263 TraceCheckUtils]: 33: Hoare triple {1544#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {1514#true} is VALID [2020-07-17 22:29:17,267 INFO L280 TraceCheckUtils]: 34: Hoare triple {1514#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1688#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:17,268 INFO L280 TraceCheckUtils]: 35: Hoare triple {1688#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1688#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:17,268 INFO L280 TraceCheckUtils]: 36: Hoare triple {1688#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {1688#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:17,268 INFO L280 TraceCheckUtils]: 37: Hoare triple {1688#(<= |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; {1698#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2020-07-17 22:29:17,269 INFO L280 TraceCheckUtils]: 38: Hoare triple {1698#(<= |list_add_#in~new.offset| ~elem~0.offset)} assume true; {1698#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2020-07-17 22:29:17,270 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1698#(<= |list_add_#in~new.offset| ~elem~0.offset)} {1544#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #74#return; {1551#(<= (+ main_~dev1~0.offset 1) ~elem~0.offset)} is VALID [2020-07-17 22:29:17,271 INFO L263 TraceCheckUtils]: 40: Hoare triple {1551#(<= (+ main_~dev1~0.offset 1) ~elem~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {1552#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} is VALID [2020-07-17 22:29:17,271 INFO L280 TraceCheckUtils]: 41: Hoare triple {1552#(<= (+ |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; {1711#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} is VALID [2020-07-17 22:29:17,272 INFO L280 TraceCheckUtils]: 42: Hoare triple {1711#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1515#false} is VALID [2020-07-17 22:29:17,272 INFO L263 TraceCheckUtils]: 43: Hoare triple {1515#false} call __blast_assert(); {1515#false} is VALID [2020-07-17 22:29:17,272 INFO L280 TraceCheckUtils]: 44: Hoare triple {1515#false} assume !false; {1515#false} is VALID [2020-07-17 22:29:17,274 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-17 22:29:17,275 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-17 22:29:17,275 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 19] total 29 [2020-07-17 22:29:17,275 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [228494064] [2020-07-17 22:29:17,275 INFO L78 Accepts]: Start accepts. Automaton has 29 states. Word has length 45 [2020-07-17 22:29:17,278 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-17 22:29:17,278 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 29 states. [2020-07-17 22:29:17,370 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-17 22:29:17,370 INFO L459 AbstractCegarLoop]: Interpolant automaton has 29 states [2020-07-17 22:29:17,370 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-17 22:29:17,371 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 29 interpolants. [2020-07-17 22:29:17,371 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=76, Invalid=736, Unknown=0, NotChecked=0, Total=812 [2020-07-17 22:29:17,371 INFO L87 Difference]: Start difference. First operand 50 states and 57 transitions. Second operand 29 states. [2020-07-17 22:29:22,033 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:22,033 INFO L93 Difference]: Finished difference Result 65 states and 74 transitions. [2020-07-17 22:29:22,033 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2020-07-17 22:29:22,034 INFO L78 Accepts]: Start accepts. Automaton has 29 states. Word has length 45 [2020-07-17 22:29:22,034 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-17 22:29:22,034 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2020-07-17 22:29:22,037 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 63 transitions. [2020-07-17 22:29:22,037 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2020-07-17 22:29:22,040 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 63 transitions. [2020-07-17 22:29:22,040 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states and 63 transitions. [2020-07-17 22:29:22,168 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-17 22:29:22,171 INFO L225 Difference]: With dead ends: 65 [2020-07-17 22:29:22,171 INFO L226 Difference]: Without dead ends: 58 [2020-07-17 22:29:22,172 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-17 22:29:22,173 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2020-07-17 22:29:22,285 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 54. [2020-07-17 22:29:22,285 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-17 22:29:22,286 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand 54 states. [2020-07-17 22:29:22,286 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 54 states. [2020-07-17 22:29:22,286 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 54 states. [2020-07-17 22:29:22,290 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:22,290 INFO L93 Difference]: Finished difference Result 58 states and 66 transitions. [2020-07-17 22:29:22,290 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 66 transitions. [2020-07-17 22:29:22,291 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:22,291 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:22,291 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 58 states. [2020-07-17 22:29:22,291 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 58 states. [2020-07-17 22:29:22,294 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:22,295 INFO L93 Difference]: Finished difference Result 58 states and 66 transitions. [2020-07-17 22:29:22,295 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 66 transitions. [2020-07-17 22:29:22,295 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:22,295 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:22,295 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-17 22:29:22,296 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-17 22:29:22,296 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 54 states. [2020-07-17 22:29:22,298 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 60 transitions. [2020-07-17 22:29:22,298 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 60 transitions. Word has length 45 [2020-07-17 22:29:22,299 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-17 22:29:22,299 INFO L479 AbstractCegarLoop]: Abstraction has 54 states and 60 transitions. [2020-07-17 22:29:22,299 INFO L480 AbstractCegarLoop]: Interpolant automaton has 29 states. [2020-07-17 22:29:22,299 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 60 transitions. [2020-07-17 22:29:22,300 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 46 [2020-07-17 22:29:22,300 INFO L414 BasicCegarLoop]: Found error trace [2020-07-17 22:29:22,300 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-17 22:29:22,515 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,4 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-17 22:29:22,516 INFO L427 AbstractCegarLoop]: === Iteration 6 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-17 22:29:22,516 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-17 22:29:22,516 INFO L82 PathProgramCache]: Analyzing trace with hash 526250732, now seen corresponding path program 1 times [2020-07-17 22:29:22,516 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-17 22:29:22,517 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1102244542] [2020-07-17 22:29:22,517 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-17 22:29:22,552 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:22,723 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:22,737 INFO L280 TraceCheckUtils]: 0: Hoare triple {2069#(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); {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:22,738 INFO L280 TraceCheckUtils]: 1: Hoare triple {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} assume true; {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:22,739 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} {2031#true} #86#return; {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:22,759 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:22,828 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:22,874 INFO L280 TraceCheckUtils]: 0: Hoare triple {2070#(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; {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:22,875 INFO L280 TraceCheckUtils]: 1: Hoare triple {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:22,876 INFO L280 TraceCheckUtils]: 2: Hoare triple {2071#(= ~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; {2080#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:22,877 INFO L280 TraceCheckUtils]: 3: Hoare triple {2080#(<= (+ |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; {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:22,877 INFO L280 TraceCheckUtils]: 4: Hoare triple {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:22,879 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {2078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:22,880 INFO L280 TraceCheckUtils]: 0: Hoare triple {2070#(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; {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:22,881 INFO L263 TraceCheckUtils]: 1: Hoare triple {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2070#(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-17 22:29:22,881 INFO L280 TraceCheckUtils]: 2: Hoare triple {2070#(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; {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:22,882 INFO L280 TraceCheckUtils]: 3: Hoare triple {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:22,883 INFO L280 TraceCheckUtils]: 4: Hoare triple {2071#(= ~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; {2080#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:22,884 INFO L280 TraceCheckUtils]: 5: Hoare triple {2080#(<= (+ |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; {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:22,884 INFO L280 TraceCheckUtils]: 6: Hoare triple {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:22,886 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {2078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:22,886 INFO L280 TraceCheckUtils]: 8: Hoare triple {2078#(<= (+ |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; {2079#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:22,887 INFO L280 TraceCheckUtils]: 9: Hoare triple {2079#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {2079#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:22,888 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {2079#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} #70#return; {2048#(and (= 0 ~elem~0.offset) (<= 1 |main_#t~ret32.offset|))} is VALID [2020-07-17 22:29:22,891 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:22,903 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:22,907 INFO L280 TraceCheckUtils]: 0: Hoare triple {2070#(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; {2031#true} is VALID [2020-07-17 22:29:22,907 INFO L280 TraceCheckUtils]: 1: Hoare triple {2031#true} assume ~size > 0; {2031#true} is VALID [2020-07-17 22:29:22,908 INFO L280 TraceCheckUtils]: 2: Hoare triple {2031#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; {2031#true} is VALID [2020-07-17 22:29:22,908 INFO L280 TraceCheckUtils]: 3: Hoare triple {2031#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2031#true} is VALID [2020-07-17 22:29:22,908 INFO L280 TraceCheckUtils]: 4: Hoare triple {2031#true} assume true; {2031#true} is VALID [2020-07-17 22:29:22,908 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2031#true} {2031#true} #68#return; {2031#true} is VALID [2020-07-17 22:29:22,909 INFO L280 TraceCheckUtils]: 0: Hoare triple {2070#(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; {2031#true} is VALID [2020-07-17 22:29:22,910 INFO L263 TraceCheckUtils]: 1: Hoare triple {2031#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2070#(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-17 22:29:22,910 INFO L280 TraceCheckUtils]: 2: Hoare triple {2070#(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; {2031#true} is VALID [2020-07-17 22:29:22,910 INFO L280 TraceCheckUtils]: 3: Hoare triple {2031#true} assume ~size > 0; {2031#true} is VALID [2020-07-17 22:29:22,911 INFO L280 TraceCheckUtils]: 4: Hoare triple {2031#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; {2031#true} is VALID [2020-07-17 22:29:22,911 INFO L280 TraceCheckUtils]: 5: Hoare triple {2031#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2031#true} is VALID [2020-07-17 22:29:22,911 INFO L280 TraceCheckUtils]: 6: Hoare triple {2031#true} assume true; {2031#true} is VALID [2020-07-17 22:29:22,911 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2031#true} {2031#true} #68#return; {2031#true} is VALID [2020-07-17 22:29:22,911 INFO L280 TraceCheckUtils]: 8: Hoare triple {2031#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2031#true} is VALID [2020-07-17 22:29:22,912 INFO L280 TraceCheckUtils]: 9: Hoare triple {2031#true} assume true; {2031#true} is VALID [2020-07-17 22:29:22,913 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {2031#true} {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} #72#return; {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-17 22:29:22,935 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:22,960 INFO L280 TraceCheckUtils]: 0: Hoare triple {2088#(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; {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:22,961 INFO L280 TraceCheckUtils]: 1: Hoare triple {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:22,961 INFO L280 TraceCheckUtils]: 2: Hoare triple {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:22,962 INFO L280 TraceCheckUtils]: 3: Hoare triple {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(0 != #t~nondet31);havoc #t~nondet31; {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:22,962 INFO L280 TraceCheckUtils]: 4: Hoare triple {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:22,964 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} #74#return; {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-17 22:29:22,965 INFO L263 TraceCheckUtils]: 0: Hoare triple {2031#true} call ULTIMATE.init(); {2069#(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-17 22:29:22,967 INFO L280 TraceCheckUtils]: 1: Hoare triple {2069#(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); {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:22,967 INFO L280 TraceCheckUtils]: 2: Hoare triple {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} assume true; {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:22,968 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} {2031#true} #86#return; {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:22,970 INFO L263 TraceCheckUtils]: 4: Hoare triple {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} call #t~ret34 := main(); {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:22,970 INFO L280 TraceCheckUtils]: 5: Hoare triple {2036#(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; {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-17 22:29:22,971 INFO L263 TraceCheckUtils]: 6: Hoare triple {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {2070#(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-17 22:29:22,972 INFO L280 TraceCheckUtils]: 7: Hoare triple {2070#(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; {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:22,973 INFO L263 TraceCheckUtils]: 8: Hoare triple {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2070#(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-17 22:29:22,973 INFO L280 TraceCheckUtils]: 9: Hoare triple {2070#(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; {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:22,974 INFO L280 TraceCheckUtils]: 10: Hoare triple {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:22,975 INFO L280 TraceCheckUtils]: 11: Hoare triple {2071#(= ~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; {2080#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:22,975 INFO L280 TraceCheckUtils]: 12: Hoare triple {2080#(<= (+ |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; {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:22,976 INFO L280 TraceCheckUtils]: 13: Hoare triple {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:22,977 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {2081#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2071#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {2078#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:22,978 INFO L280 TraceCheckUtils]: 15: Hoare triple {2078#(<= (+ |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; {2079#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:22,978 INFO L280 TraceCheckUtils]: 16: Hoare triple {2079#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {2079#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:22,980 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {2079#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {2036#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} #70#return; {2048#(and (= 0 ~elem~0.offset) (<= 1 |main_#t~ret32.offset|))} is VALID [2020-07-17 22:29:22,981 INFO L280 TraceCheckUtils]: 18: Hoare triple {2048#(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; {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-17 22:29:22,999 INFO L263 TraceCheckUtils]: 19: Hoare triple {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {2070#(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-17 22:29:22,999 INFO L280 TraceCheckUtils]: 20: Hoare triple {2070#(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; {2031#true} is VALID [2020-07-17 22:29:23,000 INFO L263 TraceCheckUtils]: 21: Hoare triple {2031#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2070#(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-17 22:29:23,001 INFO L280 TraceCheckUtils]: 22: Hoare triple {2070#(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; {2031#true} is VALID [2020-07-17 22:29:23,001 INFO L280 TraceCheckUtils]: 23: Hoare triple {2031#true} assume ~size > 0; {2031#true} is VALID [2020-07-17 22:29:23,001 INFO L280 TraceCheckUtils]: 24: Hoare triple {2031#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; {2031#true} is VALID [2020-07-17 22:29:23,001 INFO L280 TraceCheckUtils]: 25: Hoare triple {2031#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2031#true} is VALID [2020-07-17 22:29:23,001 INFO L280 TraceCheckUtils]: 26: Hoare triple {2031#true} assume true; {2031#true} is VALID [2020-07-17 22:29:23,002 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {2031#true} {2031#true} #68#return; {2031#true} is VALID [2020-07-17 22:29:23,002 INFO L280 TraceCheckUtils]: 28: Hoare triple {2031#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2031#true} is VALID [2020-07-17 22:29:23,002 INFO L280 TraceCheckUtils]: 29: Hoare triple {2031#true} assume true; {2031#true} is VALID [2020-07-17 22:29:23,004 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2031#true} {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} #72#return; {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-17 22:29:23,005 INFO L280 TraceCheckUtils]: 31: Hoare triple {2049#(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; {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-17 22:29:23,006 INFO L280 TraceCheckUtils]: 32: Hoare triple {2049#(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); {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-17 22:29:23,007 INFO L263 TraceCheckUtils]: 33: Hoare triple {2049#(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); {2088#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:23,008 INFO L280 TraceCheckUtils]: 34: Hoare triple {2088#(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; {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:23,008 INFO L280 TraceCheckUtils]: 35: Hoare triple {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:23,009 INFO L280 TraceCheckUtils]: 36: Hoare triple {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:23,009 INFO L280 TraceCheckUtils]: 37: Hoare triple {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(0 != #t~nondet31);havoc #t~nondet31; {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:23,010 INFO L280 TraceCheckUtils]: 38: Hoare triple {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:23,011 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {2089#(= |old(~elem~0.offset)| ~elem~0.offset)} {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} #74#return; {2049#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-17 22:29:23,013 INFO L263 TraceCheckUtils]: 40: Hoare triple {2049#(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); {2067#(and (= 0 ~elem~0.offset) (<= 1 |list_add_#in~new.offset|))} is VALID [2020-07-17 22:29:23,014 INFO L280 TraceCheckUtils]: 41: Hoare triple {2067#(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; {2068#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} is VALID [2020-07-17 22:29:23,015 INFO L280 TraceCheckUtils]: 42: Hoare triple {2068#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2032#false} is VALID [2020-07-17 22:29:23,015 INFO L263 TraceCheckUtils]: 43: Hoare triple {2032#false} call __blast_assert(); {2032#false} is VALID [2020-07-17 22:29:23,015 INFO L280 TraceCheckUtils]: 44: Hoare triple {2032#false} assume !false; {2032#false} is VALID [2020-07-17 22:29:23,019 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-17 22:29:23,019 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1102244542] [2020-07-17 22:29:23,019 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1174860108] [2020-07-17 22:29:23,020 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-17 22:29:23,137 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:23,138 INFO L264 TraceCheckSpWp]: Trace formula consists of 261 conjuncts, 23 conjunts are in the unsatisfiable core [2020-07-17 22:29:23,157 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:23,160 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-17 22:29:23,750 INFO L263 TraceCheckUtils]: 0: Hoare triple {2031#true} call ULTIMATE.init(); {2031#true} is VALID [2020-07-17 22:29:23,752 INFO L280 TraceCheckUtils]: 1: Hoare triple {2031#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); {2096#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,753 INFO L280 TraceCheckUtils]: 2: Hoare triple {2096#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {2096#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,753 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2096#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {2031#true} #86#return; {2096#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,754 INFO L263 TraceCheckUtils]: 4: Hoare triple {2096#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call #t~ret34 := main(); {2096#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,755 INFO L280 TraceCheckUtils]: 5: Hoare triple {2096#(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; {2096#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,755 INFO L263 TraceCheckUtils]: 6: Hoare triple {2096#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {2112#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,756 INFO L280 TraceCheckUtils]: 7: Hoare triple {2112#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {2112#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,756 INFO L263 TraceCheckUtils]: 8: Hoare triple {2112#(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); {2112#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,757 INFO L280 TraceCheckUtils]: 9: Hoare triple {2112#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {2112#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,758 INFO L280 TraceCheckUtils]: 10: Hoare triple {2112#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume ~size > 0; {2112#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,759 INFO L280 TraceCheckUtils]: 11: Hoare triple {2112#(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; {2128#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,760 INFO L280 TraceCheckUtils]: 12: Hoare triple {2128#(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; {2132#(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-17 22:29:23,761 INFO L280 TraceCheckUtils]: 13: Hoare triple {2132#(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; {2132#(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-17 22:29:23,762 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {2132#(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))} {2112#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #68#return; {2139#(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-17 22:29:23,763 INFO L280 TraceCheckUtils]: 15: Hoare triple {2139#(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; {2143#(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-17 22:29:23,764 INFO L280 TraceCheckUtils]: 16: Hoare triple {2143#(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; {2143#(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-17 22:29:23,765 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {2143#(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))} {2096#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #70#return; {2150#(and (<= 1 |main_#t~ret32.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,766 INFO L280 TraceCheckUtils]: 18: Hoare triple {2150#(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; {2154#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,766 INFO L263 TraceCheckUtils]: 19: Hoare triple {2154#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:23,767 INFO L280 TraceCheckUtils]: 20: Hoare triple {2158#(<= ~elem~0.offset 0)} ~size := #in~size; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:23,768 INFO L263 TraceCheckUtils]: 21: Hoare triple {2158#(<= ~elem~0.offset 0)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:23,768 INFO L280 TraceCheckUtils]: 22: Hoare triple {2158#(<= ~elem~0.offset 0)} ~size := #in~size; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:23,769 INFO L280 TraceCheckUtils]: 23: Hoare triple {2158#(<= ~elem~0.offset 0)} assume ~size > 0; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:23,769 INFO L280 TraceCheckUtils]: 24: Hoare triple {2158#(<= ~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; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:23,769 INFO L280 TraceCheckUtils]: 25: Hoare triple {2158#(<= ~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; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:23,770 INFO L280 TraceCheckUtils]: 26: Hoare triple {2158#(<= ~elem~0.offset 0)} assume true; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:23,771 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {2158#(<= ~elem~0.offset 0)} {2158#(<= ~elem~0.offset 0)} #68#return; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:23,771 INFO L280 TraceCheckUtils]: 28: Hoare triple {2158#(<= ~elem~0.offset 0)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:23,771 INFO L280 TraceCheckUtils]: 29: Hoare triple {2158#(<= ~elem~0.offset 0)} assume true; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:23,772 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2158#(<= ~elem~0.offset 0)} {2154#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} #72#return; {2154#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,772 INFO L280 TraceCheckUtils]: 31: Hoare triple {2154#(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; {2154#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,773 INFO L280 TraceCheckUtils]: 32: Hoare triple {2154#(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); {2154#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,774 INFO L263 TraceCheckUtils]: 33: Hoare triple {2154#(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); {2201#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:23,774 INFO L280 TraceCheckUtils]: 34: Hoare triple {2201#(<= ~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; {2201#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:23,775 INFO L280 TraceCheckUtils]: 35: Hoare triple {2201#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2201#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:23,776 INFO L280 TraceCheckUtils]: 36: Hoare triple {2201#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2201#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:23,776 INFO L280 TraceCheckUtils]: 37: Hoare triple {2201#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume !(0 != #t~nondet31);havoc #t~nondet31; {2201#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:23,776 INFO L280 TraceCheckUtils]: 38: Hoare triple {2201#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume true; {2201#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:23,778 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {2201#(<= ~elem~0.offset |old(~elem~0.offset)|)} {2154#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} #74#return; {2154#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,779 INFO L263 TraceCheckUtils]: 40: Hoare triple {2154#(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); {2223#(and (<= 1 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,780 INFO L280 TraceCheckUtils]: 41: Hoare triple {2223#(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; {2227#(and (<= 1 list_add_~new.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:23,781 INFO L280 TraceCheckUtils]: 42: Hoare triple {2227#(and (<= 1 list_add_~new.offset) (<= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2032#false} is VALID [2020-07-17 22:29:23,781 INFO L263 TraceCheckUtils]: 43: Hoare triple {2032#false} call __blast_assert(); {2032#false} is VALID [2020-07-17 22:29:23,781 INFO L280 TraceCheckUtils]: 44: Hoare triple {2032#false} assume !false; {2032#false} is VALID [2020-07-17 22:29:23,784 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-17 22:29:23,784 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-17 22:29:23,785 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 14] total 28 [2020-07-17 22:29:23,785 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1709793383] [2020-07-17 22:29:23,786 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 45 [2020-07-17 22:29:23,786 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-17 22:29:23,786 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 28 states. [2020-07-17 22:29:23,905 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-17 22:29:23,905 INFO L459 AbstractCegarLoop]: Interpolant automaton has 28 states [2020-07-17 22:29:23,905 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-17 22:29:23,906 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2020-07-17 22:29:23,906 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=661, Unknown=0, NotChecked=0, Total=756 [2020-07-17 22:29:23,907 INFO L87 Difference]: Start difference. First operand 54 states and 60 transitions. Second operand 28 states. [2020-07-17 22:29:27,602 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:27,603 INFO L93 Difference]: Finished difference Result 65 states and 69 transitions. [2020-07-17 22:29:27,603 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 18 states. [2020-07-17 22:29:27,603 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 45 [2020-07-17 22:29:27,603 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-17 22:29:27,604 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2020-07-17 22:29:27,606 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 68 transitions. [2020-07-17 22:29:27,606 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2020-07-17 22:29:27,608 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 68 transitions. [2020-07-17 22:29:27,609 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 18 states and 68 transitions. [2020-07-17 22:29:27,774 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-17 22:29:27,777 INFO L225 Difference]: With dead ends: 65 [2020-07-17 22:29:27,778 INFO L226 Difference]: Without dead ends: 62 [2020-07-17 22:29:27,779 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 80 GetRequests, 43 SyntacticMatches, 0 SemanticMatches, 37 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 194 ImplicationChecksByTransitivity, 1.2s TimeCoverageRelationStatistics Valid=244, Invalid=1238, Unknown=0, NotChecked=0, Total=1482 [2020-07-17 22:29:27,779 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 62 states. [2020-07-17 22:29:27,903 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 62 to 54. [2020-07-17 22:29:27,903 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-17 22:29:27,903 INFO L82 GeneralOperation]: Start isEquivalent. First operand 62 states. Second operand 54 states. [2020-07-17 22:29:27,903 INFO L74 IsIncluded]: Start isIncluded. First operand 62 states. Second operand 54 states. [2020-07-17 22:29:27,903 INFO L87 Difference]: Start difference. First operand 62 states. Second operand 54 states. [2020-07-17 22:29:27,906 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:27,907 INFO L93 Difference]: Finished difference Result 62 states and 66 transitions. [2020-07-17 22:29:27,907 INFO L276 IsEmpty]: Start isEmpty. Operand 62 states and 66 transitions. [2020-07-17 22:29:27,907 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:27,908 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:27,908 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 62 states. [2020-07-17 22:29:27,908 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 62 states. [2020-07-17 22:29:27,911 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:27,911 INFO L93 Difference]: Finished difference Result 62 states and 66 transitions. [2020-07-17 22:29:27,911 INFO L276 IsEmpty]: Start isEmpty. Operand 62 states and 66 transitions. [2020-07-17 22:29:27,912 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:27,912 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:27,912 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-17 22:29:27,912 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-17 22:29:27,912 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 54 states. [2020-07-17 22:29:27,915 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 59 transitions. [2020-07-17 22:29:27,916 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 59 transitions. Word has length 45 [2020-07-17 22:29:27,916 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-17 22:29:27,916 INFO L479 AbstractCegarLoop]: Abstraction has 54 states and 59 transitions. [2020-07-17 22:29:27,916 INFO L480 AbstractCegarLoop]: Interpolant automaton has 28 states. [2020-07-17 22:29:27,916 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 59 transitions. [2020-07-17 22:29:27,919 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-17 22:29:27,919 INFO L414 BasicCegarLoop]: Found error trace [2020-07-17 22:29:27,919 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-17 22:29:28,131 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,5 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-17 22:29:28,132 INFO L427 AbstractCegarLoop]: === Iteration 7 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-17 22:29:28,133 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-17 22:29:28,133 INFO L82 PathProgramCache]: Analyzing trace with hash -2119488644, now seen corresponding path program 1 times [2020-07-17 22:29:28,133 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-17 22:29:28,133 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [202180356] [2020-07-17 22:29:28,134 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-17 22:29:28,153 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:28,275 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:28,286 INFO L280 TraceCheckUtils]: 0: Hoare triple {2598#(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); {2550#true} is VALID [2020-07-17 22:29:28,287 INFO L280 TraceCheckUtils]: 1: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-17 22:29:28,287 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {2550#true} {2550#true} #86#return; {2550#true} is VALID [2020-07-17 22:29:28,304 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:28,349 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:28,372 INFO L280 TraceCheckUtils]: 0: Hoare triple {2599#(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; {2550#true} is VALID [2020-07-17 22:29:28,372 INFO L280 TraceCheckUtils]: 1: Hoare triple {2550#true} assume ~size > 0; {2550#true} is VALID [2020-07-17 22:29:28,372 INFO L280 TraceCheckUtils]: 2: Hoare triple {2550#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; {2550#true} is VALID [2020-07-17 22:29:28,373 INFO L280 TraceCheckUtils]: 3: Hoare triple {2550#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,374 INFO L280 TraceCheckUtils]: 4: Hoare triple {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,375 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {2550#true} #68#return; {2606#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,375 INFO L280 TraceCheckUtils]: 0: Hoare triple {2599#(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; {2550#true} is VALID [2020-07-17 22:29:28,376 INFO L263 TraceCheckUtils]: 1: Hoare triple {2550#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2599#(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-17 22:29:28,376 INFO L280 TraceCheckUtils]: 2: Hoare triple {2599#(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; {2550#true} is VALID [2020-07-17 22:29:28,377 INFO L280 TraceCheckUtils]: 3: Hoare triple {2550#true} assume ~size > 0; {2550#true} is VALID [2020-07-17 22:29:28,377 INFO L280 TraceCheckUtils]: 4: Hoare triple {2550#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; {2550#true} is VALID [2020-07-17 22:29:28,378 INFO L280 TraceCheckUtils]: 5: Hoare triple {2550#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,378 INFO L280 TraceCheckUtils]: 6: Hoare triple {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,379 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {2550#true} #68#return; {2606#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,380 INFO L280 TraceCheckUtils]: 8: Hoare triple {2606#(<= |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; {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,380 INFO L280 TraceCheckUtils]: 9: Hoare triple {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,381 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {2550#true} #70#return; {2566#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,384 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:28,454 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:28,513 INFO L280 TraceCheckUtils]: 0: Hoare triple {2599#(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; {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:28,513 INFO L280 TraceCheckUtils]: 1: Hoare triple {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:28,514 INFO L280 TraceCheckUtils]: 2: Hoare triple {2609#(= ~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; {2618#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,515 INFO L280 TraceCheckUtils]: 3: Hoare triple {2618#(<= (+ |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; {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:28,516 INFO L280 TraceCheckUtils]: 4: Hoare triple {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:28,517 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {2616#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:28,518 INFO L280 TraceCheckUtils]: 0: Hoare triple {2599#(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; {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:28,518 INFO L263 TraceCheckUtils]: 1: Hoare triple {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2599#(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-17 22:29:28,519 INFO L280 TraceCheckUtils]: 2: Hoare triple {2599#(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; {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:28,519 INFO L280 TraceCheckUtils]: 3: Hoare triple {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:28,520 INFO L280 TraceCheckUtils]: 4: Hoare triple {2609#(= ~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; {2618#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,520 INFO L280 TraceCheckUtils]: 5: Hoare triple {2618#(<= (+ |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; {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:28,521 INFO L280 TraceCheckUtils]: 6: Hoare triple {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:28,527 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {2616#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:28,528 INFO L280 TraceCheckUtils]: 8: Hoare triple {2616#(<= (+ |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; {2617#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:28,529 INFO L280 TraceCheckUtils]: 9: Hoare triple {2617#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {2617#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:28,530 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {2617#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {2567#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #72#return; {2579#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:28,557 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:28,569 INFO L280 TraceCheckUtils]: 0: Hoare triple {2620#(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; {2550#true} is VALID [2020-07-17 22:29:28,569 INFO L280 TraceCheckUtils]: 1: Hoare triple {2550#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2550#true} is VALID [2020-07-17 22:29:28,570 INFO L280 TraceCheckUtils]: 2: Hoare triple {2550#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2550#true} is VALID [2020-07-17 22:29:28,570 INFO L280 TraceCheckUtils]: 3: Hoare triple {2550#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2550#true} is VALID [2020-07-17 22:29:28,570 INFO L280 TraceCheckUtils]: 4: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-17 22:29:28,571 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2550#true} {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #74#return; {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:28,573 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:28,620 INFO L280 TraceCheckUtils]: 0: Hoare triple {2620#(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; {2621#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:28,621 INFO L280 TraceCheckUtils]: 1: Hoare triple {2621#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2621#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:28,621 INFO L280 TraceCheckUtils]: 2: Hoare triple {2621#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2621#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:28,623 INFO L280 TraceCheckUtils]: 3: Hoare triple {2621#(= |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; {2622#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:28,624 INFO L280 TraceCheckUtils]: 4: Hoare triple {2622#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {2622#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:28,625 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2622#(= ~elem~0.offset |list_add_#in~new.offset|)} {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #76#return; {2593#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:28,627 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:28,691 INFO L280 TraceCheckUtils]: 0: Hoare triple {2620#(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; {2623#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset))} is VALID [2020-07-17 22:29:28,692 INFO L280 TraceCheckUtils]: 1: Hoare triple {2623#(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; {2624#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} is VALID [2020-07-17 22:29:28,693 INFO L280 TraceCheckUtils]: 2: Hoare triple {2624#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} assume true; {2624#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} is VALID [2020-07-17 22:29:28,694 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2624#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} {2593#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #78#return; {2551#false} is VALID [2020-07-17 22:29:28,694 INFO L263 TraceCheckUtils]: 0: Hoare triple {2550#true} call ULTIMATE.init(); {2598#(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-17 22:29:28,695 INFO L280 TraceCheckUtils]: 1: Hoare triple {2598#(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); {2550#true} is VALID [2020-07-17 22:29:28,695 INFO L280 TraceCheckUtils]: 2: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-17 22:29:28,695 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2550#true} {2550#true} #86#return; {2550#true} is VALID [2020-07-17 22:29:28,695 INFO L263 TraceCheckUtils]: 4: Hoare triple {2550#true} call #t~ret34 := main(); {2550#true} is VALID [2020-07-17 22:29:28,695 INFO L280 TraceCheckUtils]: 5: Hoare triple {2550#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {2550#true} is VALID [2020-07-17 22:29:28,696 INFO L263 TraceCheckUtils]: 6: Hoare triple {2550#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {2599#(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-17 22:29:28,697 INFO L280 TraceCheckUtils]: 7: Hoare triple {2599#(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; {2550#true} is VALID [2020-07-17 22:29:28,697 INFO L263 TraceCheckUtils]: 8: Hoare triple {2550#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2599#(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-17 22:29:28,697 INFO L280 TraceCheckUtils]: 9: Hoare triple {2599#(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; {2550#true} is VALID [2020-07-17 22:29:28,697 INFO L280 TraceCheckUtils]: 10: Hoare triple {2550#true} assume ~size > 0; {2550#true} is VALID [2020-07-17 22:29:28,698 INFO L280 TraceCheckUtils]: 11: Hoare triple {2550#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; {2550#true} is VALID [2020-07-17 22:29:28,698 INFO L280 TraceCheckUtils]: 12: Hoare triple {2550#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,698 INFO L280 TraceCheckUtils]: 13: Hoare triple {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,699 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {2550#true} #68#return; {2606#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,700 INFO L280 TraceCheckUtils]: 15: Hoare triple {2606#(<= |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; {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,700 INFO L280 TraceCheckUtils]: 16: Hoare triple {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,701 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {2550#true} #70#return; {2566#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,702 INFO L280 TraceCheckUtils]: 18: Hoare triple {2566#(<= |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; {2567#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,703 INFO L263 TraceCheckUtils]: 19: Hoare triple {2567#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {2599#(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-17 22:29:28,709 INFO L280 TraceCheckUtils]: 20: Hoare triple {2599#(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; {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:28,711 INFO L263 TraceCheckUtils]: 21: Hoare triple {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2599#(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-17 22:29:28,711 INFO L280 TraceCheckUtils]: 22: Hoare triple {2599#(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; {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:28,712 INFO L280 TraceCheckUtils]: 23: Hoare triple {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:28,713 INFO L280 TraceCheckUtils]: 24: Hoare triple {2609#(= ~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; {2618#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:28,713 INFO L280 TraceCheckUtils]: 25: Hoare triple {2618#(<= (+ |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; {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:28,714 INFO L280 TraceCheckUtils]: 26: Hoare triple {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:28,718 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {2619#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2609#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {2616#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:28,724 INFO L280 TraceCheckUtils]: 28: Hoare triple {2616#(<= (+ |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; {2617#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:28,725 INFO L280 TraceCheckUtils]: 29: Hoare triple {2617#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {2617#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:28,727 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2617#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {2567#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #72#return; {2579#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:28,728 INFO L280 TraceCheckUtils]: 31: Hoare triple {2579#(<= (+ 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; {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:28,729 INFO L280 TraceCheckUtils]: 32: Hoare triple {2580#(<= (+ 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); {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:28,730 INFO L263 TraceCheckUtils]: 33: Hoare triple {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {2620#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:28,730 INFO L280 TraceCheckUtils]: 34: Hoare triple {2620#(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; {2550#true} is VALID [2020-07-17 22:29:28,730 INFO L280 TraceCheckUtils]: 35: Hoare triple {2550#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2550#true} is VALID [2020-07-17 22:29:28,731 INFO L280 TraceCheckUtils]: 36: Hoare triple {2550#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2550#true} is VALID [2020-07-17 22:29:28,731 INFO L280 TraceCheckUtils]: 37: Hoare triple {2550#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2550#true} is VALID [2020-07-17 22:29:28,731 INFO L280 TraceCheckUtils]: 38: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-17 22:29:28,740 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {2550#true} {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #74#return; {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:28,746 INFO L263 TraceCheckUtils]: 40: Hoare triple {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {2620#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:28,747 INFO L280 TraceCheckUtils]: 41: Hoare triple {2620#(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; {2621#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:28,748 INFO L280 TraceCheckUtils]: 42: Hoare triple {2621#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2621#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:28,748 INFO L280 TraceCheckUtils]: 43: Hoare triple {2621#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2621#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:28,749 INFO L280 TraceCheckUtils]: 44: Hoare triple {2621#(= |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; {2622#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:28,749 INFO L280 TraceCheckUtils]: 45: Hoare triple {2622#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {2622#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:28,751 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {2622#(= ~elem~0.offset |list_add_#in~new.offset|)} {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #76#return; {2593#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:28,751 INFO L263 TraceCheckUtils]: 47: Hoare triple {2593#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {2620#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:28,752 INFO L280 TraceCheckUtils]: 48: Hoare triple {2620#(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; {2623#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset))} is VALID [2020-07-17 22:29:28,752 INFO L280 TraceCheckUtils]: 49: Hoare triple {2623#(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; {2624#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} is VALID [2020-07-17 22:29:28,753 INFO L280 TraceCheckUtils]: 50: Hoare triple {2624#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} assume true; {2624#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} is VALID [2020-07-17 22:29:28,753 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {2624#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} {2593#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #78#return; {2551#false} is VALID [2020-07-17 22:29:28,754 INFO L263 TraceCheckUtils]: 52: Hoare triple {2551#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {2551#false} is VALID [2020-07-17 22:29:28,754 INFO L280 TraceCheckUtils]: 53: Hoare triple {2551#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2551#false} is VALID [2020-07-17 22:29:28,754 INFO L280 TraceCheckUtils]: 54: Hoare triple {2551#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2551#false} is VALID [2020-07-17 22:29:28,754 INFO L263 TraceCheckUtils]: 55: Hoare triple {2551#false} call __blast_assert(); {2551#false} is VALID [2020-07-17 22:29:28,754 INFO L280 TraceCheckUtils]: 56: Hoare triple {2551#false} assume !false; {2551#false} is VALID [2020-07-17 22:29:28,758 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-17 22:29:28,759 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [202180356] [2020-07-17 22:29:28,759 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1710386544] [2020-07-17 22:29:28,759 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-17 22:29:28,878 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:28,879 INFO L264 TraceCheckSpWp]: Trace formula consists of 324 conjuncts, 23 conjunts are in the unsatisfiable core [2020-07-17 22:29:28,903 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:28,907 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-17 22:29:29,418 INFO L263 TraceCheckUtils]: 0: Hoare triple {2550#true} call ULTIMATE.init(); {2550#true} is VALID [2020-07-17 22:29:29,418 INFO L280 TraceCheckUtils]: 1: Hoare triple {2550#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); {2550#true} is VALID [2020-07-17 22:29:29,418 INFO L280 TraceCheckUtils]: 2: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-17 22:29:29,419 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2550#true} {2550#true} #86#return; {2550#true} is VALID [2020-07-17 22:29:29,419 INFO L263 TraceCheckUtils]: 4: Hoare triple {2550#true} call #t~ret34 := main(); {2550#true} is VALID [2020-07-17 22:29:29,419 INFO L280 TraceCheckUtils]: 5: Hoare triple {2550#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {2550#true} is VALID [2020-07-17 22:29:29,419 INFO L263 TraceCheckUtils]: 6: Hoare triple {2550#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {2550#true} is VALID [2020-07-17 22:29:29,420 INFO L280 TraceCheckUtils]: 7: Hoare triple {2550#true} ~size := #in~size; {2550#true} is VALID [2020-07-17 22:29:29,420 INFO L263 TraceCheckUtils]: 8: Hoare triple {2550#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2550#true} is VALID [2020-07-17 22:29:29,420 INFO L280 TraceCheckUtils]: 9: Hoare triple {2550#true} ~size := #in~size; {2550#true} is VALID [2020-07-17 22:29:29,420 INFO L280 TraceCheckUtils]: 10: Hoare triple {2550#true} assume ~size > 0; {2550#true} is VALID [2020-07-17 22:29:29,421 INFO L280 TraceCheckUtils]: 11: Hoare triple {2550#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; {2550#true} is VALID [2020-07-17 22:29:29,421 INFO L280 TraceCheckUtils]: 12: Hoare triple {2550#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,422 INFO L280 TraceCheckUtils]: 13: Hoare triple {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,423 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {2608#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {2550#true} #68#return; {2606#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,423 INFO L280 TraceCheckUtils]: 15: Hoare triple {2606#(<= |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; {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,423 INFO L280 TraceCheckUtils]: 16: Hoare triple {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,424 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {2607#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {2550#true} #70#return; {2566#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,425 INFO L280 TraceCheckUtils]: 18: Hoare triple {2566#(<= |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; {2567#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,425 INFO L263 TraceCheckUtils]: 19: Hoare triple {2567#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {2685#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,427 INFO L280 TraceCheckUtils]: 20: Hoare triple {2685#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {2685#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,432 INFO L263 TraceCheckUtils]: 21: Hoare triple {2685#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2685#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,433 INFO L280 TraceCheckUtils]: 22: Hoare triple {2685#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {2685#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,434 INFO L280 TraceCheckUtils]: 23: Hoare triple {2685#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume ~size > 0; {2685#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,435 INFO L280 TraceCheckUtils]: 24: Hoare triple {2685#(<= |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; {2618#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:29,435 INFO L280 TraceCheckUtils]: 25: Hoare triple {2618#(<= (+ |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; {2704#(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-17 22:29:29,436 INFO L280 TraceCheckUtils]: 26: Hoare triple {2704#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} assume true; {2704#(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-17 22:29:29,437 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {2704#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} {2685#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #68#return; {2711#(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-17 22:29:29,437 INFO L280 TraceCheckUtils]: 28: Hoare triple {2711#(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; {2715#(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-17 22:29:29,438 INFO L280 TraceCheckUtils]: 29: Hoare triple {2715#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} assume true; {2715#(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-17 22:29:29,440 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2715#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} {2567#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #72#return; {2579#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:29,440 INFO L280 TraceCheckUtils]: 31: Hoare triple {2579#(<= (+ 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; {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:29,441 INFO L280 TraceCheckUtils]: 32: Hoare triple {2580#(<= (+ 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); {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:29,441 INFO L263 TraceCheckUtils]: 33: Hoare triple {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {2550#true} is VALID [2020-07-17 22:29:29,441 INFO L280 TraceCheckUtils]: 34: Hoare triple {2550#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2550#true} is VALID [2020-07-17 22:29:29,441 INFO L280 TraceCheckUtils]: 35: Hoare triple {2550#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2550#true} is VALID [2020-07-17 22:29:29,441 INFO L280 TraceCheckUtils]: 36: Hoare triple {2550#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2550#true} is VALID [2020-07-17 22:29:29,442 INFO L280 TraceCheckUtils]: 37: Hoare triple {2550#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2550#true} is VALID [2020-07-17 22:29:29,442 INFO L280 TraceCheckUtils]: 38: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-17 22:29:29,443 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {2550#true} {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #74#return; {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:29,443 INFO L263 TraceCheckUtils]: 40: Hoare triple {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {2550#true} is VALID [2020-07-17 22:29:29,444 INFO L280 TraceCheckUtils]: 41: Hoare triple {2550#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2755#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:29,444 INFO L280 TraceCheckUtils]: 42: Hoare triple {2755#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2755#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:29,445 INFO L280 TraceCheckUtils]: 43: Hoare triple {2755#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2755#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:29,445 INFO L280 TraceCheckUtils]: 44: Hoare triple {2755#(<= 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; {2765#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:29,445 INFO L280 TraceCheckUtils]: 45: Hoare triple {2765#(<= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {2765#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:29,447 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {2765#(<= ~elem~0.offset |list_add_#in~new.offset|)} {2580#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #76#return; {2593#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:29,451 INFO L263 TraceCheckUtils]: 47: Hoare triple {2593#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {2775#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:29,454 INFO L280 TraceCheckUtils]: 48: Hoare triple {2775#(<= ~elem~0.offset |old(~elem~0.offset)|)} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {2779#(and (<= ~elem~0.offset |old(~elem~0.offset)|) (<= |list_del_#in~entry.offset| list_del_~entry.offset))} is VALID [2020-07-17 22:29:29,456 INFO L280 TraceCheckUtils]: 49: Hoare triple {2779#(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; {2783#(<= |list_del_#in~entry.offset| |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:29,456 INFO L280 TraceCheckUtils]: 50: Hoare triple {2783#(<= |list_del_#in~entry.offset| |old(~elem~0.offset)|)} assume true; {2783#(<= |list_del_#in~entry.offset| |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:29,457 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {2783#(<= |list_del_#in~entry.offset| |old(~elem~0.offset)|)} {2593#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #78#return; {2551#false} is VALID [2020-07-17 22:29:29,458 INFO L263 TraceCheckUtils]: 52: Hoare triple {2551#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {2551#false} is VALID [2020-07-17 22:29:29,458 INFO L280 TraceCheckUtils]: 53: Hoare triple {2551#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2551#false} is VALID [2020-07-17 22:29:29,458 INFO L280 TraceCheckUtils]: 54: Hoare triple {2551#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2551#false} is VALID [2020-07-17 22:29:29,458 INFO L263 TraceCheckUtils]: 55: Hoare triple {2551#false} call __blast_assert(); {2551#false} is VALID [2020-07-17 22:29:29,458 INFO L280 TraceCheckUtils]: 56: Hoare triple {2551#false} assume !false; {2551#false} is VALID [2020-07-17 22:29:29,461 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-17 22:29:29,462 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-17 22:29:29,462 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 20] total 31 [2020-07-17 22:29:29,462 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1489298499] [2020-07-17 22:29:29,463 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-17 22:29:29,467 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-17 22:29:29,468 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 31 states. [2020-07-17 22:29:29,573 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-17 22:29:29,574 INFO L459 AbstractCegarLoop]: Interpolant automaton has 31 states [2020-07-17 22:29:29,574 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-17 22:29:29,574 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2020-07-17 22:29:29,575 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=84, Invalid=846, Unknown=0, NotChecked=0, Total=930 [2020-07-17 22:29:29,575 INFO L87 Difference]: Start difference. First operand 54 states and 59 transitions. Second operand 31 states. [2020-07-17 22:29:34,457 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:34,458 INFO L93 Difference]: Finished difference Result 66 states and 72 transitions. [2020-07-17 22:29:34,458 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2020-07-17 22:29:34,458 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-17 22:29:34,459 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-17 22:29:34,459 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-17 22:29:34,461 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 61 transitions. [2020-07-17 22:29:34,461 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-17 22:29:34,464 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 61 transitions. [2020-07-17 22:29:34,464 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 20 states and 61 transitions. [2020-07-17 22:29:34,587 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 61 edges. 61 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-17 22:29:34,589 INFO L225 Difference]: With dead ends: 66 [2020-07-17 22:29:34,590 INFO L226 Difference]: Without dead ends: 60 [2020-07-17 22:29:34,591 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 106 GetRequests, 60 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-17 22:29:34,592 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2020-07-17 22:29:34,731 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 57. [2020-07-17 22:29:34,731 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-17 22:29:34,731 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand 57 states. [2020-07-17 22:29:34,731 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 57 states. [2020-07-17 22:29:34,731 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 57 states. [2020-07-17 22:29:34,734 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:34,734 INFO L93 Difference]: Finished difference Result 60 states and 66 transitions. [2020-07-17 22:29:34,735 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 66 transitions. [2020-07-17 22:29:34,735 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:34,735 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:34,735 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 60 states. [2020-07-17 22:29:34,735 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 60 states. [2020-07-17 22:29:34,738 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:34,738 INFO L93 Difference]: Finished difference Result 60 states and 66 transitions. [2020-07-17 22:29:34,739 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 66 transitions. [2020-07-17 22:29:34,739 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:34,739 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:34,740 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-17 22:29:34,740 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-17 22:29:34,740 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 57 states. [2020-07-17 22:29:34,743 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 57 states to 57 states and 63 transitions. [2020-07-17 22:29:34,743 INFO L78 Accepts]: Start accepts. Automaton has 57 states and 63 transitions. Word has length 57 [2020-07-17 22:29:34,744 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-17 22:29:34,744 INFO L479 AbstractCegarLoop]: Abstraction has 57 states and 63 transitions. [2020-07-17 22:29:34,744 INFO L480 AbstractCegarLoop]: Interpolant automaton has 31 states. [2020-07-17 22:29:34,744 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 63 transitions. [2020-07-17 22:29:34,745 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-17 22:29:34,745 INFO L414 BasicCegarLoop]: Found error trace [2020-07-17 22:29:34,745 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-17 22:29:34,959 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 6 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable6 [2020-07-17 22:29:34,960 INFO L427 AbstractCegarLoop]: === Iteration 8 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-17 22:29:34,960 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-17 22:29:34,961 INFO L82 PathProgramCache]: Analyzing trace with hash 1366132026, now seen corresponding path program 1 times [2020-07-17 22:29:34,961 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-17 22:29:34,961 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [987667726] [2020-07-17 22:29:34,961 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-17 22:29:34,976 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:35,111 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:35,124 INFO L280 TraceCheckUtils]: 0: Hoare triple {3182#(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); {3132#true} is VALID [2020-07-17 22:29:35,124 INFO L280 TraceCheckUtils]: 1: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-17 22:29:35,124 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {3132#true} {3132#true} #86#return; {3132#true} is VALID [2020-07-17 22:29:35,144 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:35,185 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:35,209 INFO L280 TraceCheckUtils]: 0: Hoare triple {3183#(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; {3132#true} is VALID [2020-07-17 22:29:35,210 INFO L280 TraceCheckUtils]: 1: Hoare triple {3132#true} assume ~size > 0; {3132#true} is VALID [2020-07-17 22:29:35,210 INFO L280 TraceCheckUtils]: 2: Hoare triple {3132#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; {3132#true} is VALID [2020-07-17 22:29:35,211 INFO L280 TraceCheckUtils]: 3: Hoare triple {3132#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,211 INFO L280 TraceCheckUtils]: 4: Hoare triple {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,213 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {3132#true} #68#return; {3190#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,213 INFO L280 TraceCheckUtils]: 0: Hoare triple {3183#(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; {3132#true} is VALID [2020-07-17 22:29:35,214 INFO L263 TraceCheckUtils]: 1: Hoare triple {3132#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3183#(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-17 22:29:35,214 INFO L280 TraceCheckUtils]: 2: Hoare triple {3183#(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; {3132#true} is VALID [2020-07-17 22:29:35,214 INFO L280 TraceCheckUtils]: 3: Hoare triple {3132#true} assume ~size > 0; {3132#true} is VALID [2020-07-17 22:29:35,214 INFO L280 TraceCheckUtils]: 4: Hoare triple {3132#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; {3132#true} is VALID [2020-07-17 22:29:35,215 INFO L280 TraceCheckUtils]: 5: Hoare triple {3132#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,216 INFO L280 TraceCheckUtils]: 6: Hoare triple {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,217 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {3132#true} #68#return; {3190#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,218 INFO L280 TraceCheckUtils]: 8: Hoare triple {3190#(<= |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; {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,218 INFO L280 TraceCheckUtils]: 9: Hoare triple {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,220 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {3132#true} #70#return; {3148#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,222 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:35,293 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:35,349 INFO L280 TraceCheckUtils]: 0: Hoare triple {3183#(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; {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:35,350 INFO L280 TraceCheckUtils]: 1: Hoare triple {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:35,351 INFO L280 TraceCheckUtils]: 2: Hoare triple {3193#(= ~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; {3202#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,352 INFO L280 TraceCheckUtils]: 3: Hoare triple {3202#(<= (+ |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; {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:35,352 INFO L280 TraceCheckUtils]: 4: Hoare triple {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:35,353 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {3200#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:35,354 INFO L280 TraceCheckUtils]: 0: Hoare triple {3183#(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; {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:35,354 INFO L263 TraceCheckUtils]: 1: Hoare triple {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3183#(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-17 22:29:35,355 INFO L280 TraceCheckUtils]: 2: Hoare triple {3183#(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; {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:35,355 INFO L280 TraceCheckUtils]: 3: Hoare triple {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:35,356 INFO L280 TraceCheckUtils]: 4: Hoare triple {3193#(= ~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; {3202#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,357 INFO L280 TraceCheckUtils]: 5: Hoare triple {3202#(<= (+ |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; {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:35,358 INFO L280 TraceCheckUtils]: 6: Hoare triple {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:35,359 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {3200#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:35,360 INFO L280 TraceCheckUtils]: 8: Hoare triple {3200#(<= (+ |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; {3201#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:35,361 INFO L280 TraceCheckUtils]: 9: Hoare triple {3201#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {3201#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:35,362 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {3201#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {3149#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #72#return; {3161#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:35,395 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:35,407 INFO L280 TraceCheckUtils]: 0: Hoare triple {3204#(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; {3132#true} is VALID [2020-07-17 22:29:35,408 INFO L280 TraceCheckUtils]: 1: Hoare triple {3132#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3132#true} is VALID [2020-07-17 22:29:35,408 INFO L280 TraceCheckUtils]: 2: Hoare triple {3132#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3132#true} is VALID [2020-07-17 22:29:35,408 INFO L280 TraceCheckUtils]: 3: Hoare triple {3132#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3132#true} is VALID [2020-07-17 22:29:35,408 INFO L280 TraceCheckUtils]: 4: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-17 22:29:35,410 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3132#true} {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #74#return; {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:35,412 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:35,464 INFO L280 TraceCheckUtils]: 0: Hoare triple {3204#(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; {3205#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:35,465 INFO L280 TraceCheckUtils]: 1: Hoare triple {3205#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3205#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:35,466 INFO L280 TraceCheckUtils]: 2: Hoare triple {3205#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3205#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:35,466 INFO L280 TraceCheckUtils]: 3: Hoare triple {3205#(= |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; {3206#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:35,467 INFO L280 TraceCheckUtils]: 4: Hoare triple {3206#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {3206#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:35,468 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3206#(= ~elem~0.offset |list_add_#in~new.offset|)} {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #76#return; {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:35,470 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:35,506 INFO L280 TraceCheckUtils]: 0: Hoare triple {3204#(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; {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:35,507 INFO L280 TraceCheckUtils]: 1: Hoare triple {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset); {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:35,508 INFO L280 TraceCheckUtils]: 2: Hoare triple {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:35,509 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #78#return; {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:35,510 INFO L263 TraceCheckUtils]: 0: Hoare triple {3132#true} call ULTIMATE.init(); {3182#(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-17 22:29:35,510 INFO L280 TraceCheckUtils]: 1: Hoare triple {3182#(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); {3132#true} is VALID [2020-07-17 22:29:35,510 INFO L280 TraceCheckUtils]: 2: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-17 22:29:35,510 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3132#true} {3132#true} #86#return; {3132#true} is VALID [2020-07-17 22:29:35,510 INFO L263 TraceCheckUtils]: 4: Hoare triple {3132#true} call #t~ret34 := main(); {3132#true} is VALID [2020-07-17 22:29:35,511 INFO L280 TraceCheckUtils]: 5: Hoare triple {3132#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {3132#true} is VALID [2020-07-17 22:29:35,511 INFO L263 TraceCheckUtils]: 6: Hoare triple {3132#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {3183#(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-17 22:29:35,511 INFO L280 TraceCheckUtils]: 7: Hoare triple {3183#(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; {3132#true} is VALID [2020-07-17 22:29:35,512 INFO L263 TraceCheckUtils]: 8: Hoare triple {3132#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3183#(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-17 22:29:35,512 INFO L280 TraceCheckUtils]: 9: Hoare triple {3183#(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; {3132#true} is VALID [2020-07-17 22:29:35,512 INFO L280 TraceCheckUtils]: 10: Hoare triple {3132#true} assume ~size > 0; {3132#true} is VALID [2020-07-17 22:29:35,512 INFO L280 TraceCheckUtils]: 11: Hoare triple {3132#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; {3132#true} is VALID [2020-07-17 22:29:35,513 INFO L280 TraceCheckUtils]: 12: Hoare triple {3132#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,513 INFO L280 TraceCheckUtils]: 13: Hoare triple {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,515 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {3132#true} #68#return; {3190#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,515 INFO L280 TraceCheckUtils]: 15: Hoare triple {3190#(<= |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; {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,516 INFO L280 TraceCheckUtils]: 16: Hoare triple {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,516 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {3132#true} #70#return; {3148#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,517 INFO L280 TraceCheckUtils]: 18: Hoare triple {3148#(<= |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; {3149#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,517 INFO L263 TraceCheckUtils]: 19: Hoare triple {3149#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {3183#(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-17 22:29:35,518 INFO L280 TraceCheckUtils]: 20: Hoare triple {3183#(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; {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:35,518 INFO L263 TraceCheckUtils]: 21: Hoare triple {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3183#(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-17 22:29:35,519 INFO L280 TraceCheckUtils]: 22: Hoare triple {3183#(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; {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:35,519 INFO L280 TraceCheckUtils]: 23: Hoare triple {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:35,520 INFO L280 TraceCheckUtils]: 24: Hoare triple {3193#(= ~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; {3202#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:35,520 INFO L280 TraceCheckUtils]: 25: Hoare triple {3202#(<= (+ |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; {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:35,521 INFO L280 TraceCheckUtils]: 26: Hoare triple {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:35,521 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {3203#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {3193#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {3200#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:35,522 INFO L280 TraceCheckUtils]: 28: Hoare triple {3200#(<= (+ |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; {3201#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:35,522 INFO L280 TraceCheckUtils]: 29: Hoare triple {3201#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {3201#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:35,523 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {3201#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {3149#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #72#return; {3161#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:35,524 INFO L280 TraceCheckUtils]: 31: Hoare triple {3161#(<= (+ 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; {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:35,525 INFO L280 TraceCheckUtils]: 32: Hoare triple {3162#(<= (+ 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); {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:35,526 INFO L263 TraceCheckUtils]: 33: Hoare triple {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {3204#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:35,527 INFO L280 TraceCheckUtils]: 34: Hoare triple {3204#(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; {3132#true} is VALID [2020-07-17 22:29:35,527 INFO L280 TraceCheckUtils]: 35: Hoare triple {3132#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3132#true} is VALID [2020-07-17 22:29:35,527 INFO L280 TraceCheckUtils]: 36: Hoare triple {3132#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3132#true} is VALID [2020-07-17 22:29:35,527 INFO L280 TraceCheckUtils]: 37: Hoare triple {3132#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3132#true} is VALID [2020-07-17 22:29:35,527 INFO L280 TraceCheckUtils]: 38: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-17 22:29:35,535 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {3132#true} {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #74#return; {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:35,536 INFO L263 TraceCheckUtils]: 40: Hoare triple {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {3204#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:35,537 INFO L280 TraceCheckUtils]: 41: Hoare triple {3204#(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; {3205#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:35,538 INFO L280 TraceCheckUtils]: 42: Hoare triple {3205#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3205#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:35,538 INFO L280 TraceCheckUtils]: 43: Hoare triple {3205#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3205#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-17 22:29:35,539 INFO L280 TraceCheckUtils]: 44: Hoare triple {3205#(= |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; {3206#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:35,539 INFO L280 TraceCheckUtils]: 45: Hoare triple {3206#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {3206#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:35,540 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {3206#(= ~elem~0.offset |list_add_#in~new.offset|)} {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #76#return; {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:35,541 INFO L263 TraceCheckUtils]: 47: Hoare triple {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {3204#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:35,541 INFO L280 TraceCheckUtils]: 48: Hoare triple {3204#(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; {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:35,542 INFO L280 TraceCheckUtils]: 49: Hoare triple {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset); {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:35,542 INFO L280 TraceCheckUtils]: 50: Hoare triple {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-17 22:29:35,543 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {3207#(= |old(~elem~0.offset)| ~elem~0.offset)} {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #78#return; {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:35,543 INFO L263 TraceCheckUtils]: 52: Hoare triple {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {3180#(<= (+ ~elem~0.offset 1) |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:35,544 INFO L280 TraceCheckUtils]: 53: Hoare triple {3180#(<= (+ ~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; {3181#(not (= ~elem~0.offset list_add_~new.offset))} is VALID [2020-07-17 22:29:35,544 INFO L280 TraceCheckUtils]: 54: Hoare triple {3181#(not (= ~elem~0.offset list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {3133#false} is VALID [2020-07-17 22:29:35,545 INFO L263 TraceCheckUtils]: 55: Hoare triple {3133#false} call __blast_assert(); {3133#false} is VALID [2020-07-17 22:29:35,545 INFO L280 TraceCheckUtils]: 56: Hoare triple {3133#false} assume !false; {3133#false} is VALID [2020-07-17 22:29:35,548 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-17 22:29:35,548 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [987667726] [2020-07-17 22:29:35,548 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1024652039] [2020-07-17 22:29:35,548 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-17 22:29:35,667 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:35,668 INFO L264 TraceCheckSpWp]: Trace formula consists of 317 conjuncts, 25 conjunts are in the unsatisfiable core [2020-07-17 22:29:35,688 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:35,690 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-17 22:29:36,188 INFO L263 TraceCheckUtils]: 0: Hoare triple {3132#true} call ULTIMATE.init(); {3132#true} is VALID [2020-07-17 22:29:36,189 INFO L280 TraceCheckUtils]: 1: Hoare triple {3132#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); {3132#true} is VALID [2020-07-17 22:29:36,189 INFO L280 TraceCheckUtils]: 2: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-17 22:29:36,189 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3132#true} {3132#true} #86#return; {3132#true} is VALID [2020-07-17 22:29:36,189 INFO L263 TraceCheckUtils]: 4: Hoare triple {3132#true} call #t~ret34 := main(); {3132#true} is VALID [2020-07-17 22:29:36,190 INFO L280 TraceCheckUtils]: 5: Hoare triple {3132#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {3132#true} is VALID [2020-07-17 22:29:36,190 INFO L263 TraceCheckUtils]: 6: Hoare triple {3132#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {3132#true} is VALID [2020-07-17 22:29:36,190 INFO L280 TraceCheckUtils]: 7: Hoare triple {3132#true} ~size := #in~size; {3132#true} is VALID [2020-07-17 22:29:36,190 INFO L263 TraceCheckUtils]: 8: Hoare triple {3132#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3132#true} is VALID [2020-07-17 22:29:36,190 INFO L280 TraceCheckUtils]: 9: Hoare triple {3132#true} ~size := #in~size; {3132#true} is VALID [2020-07-17 22:29:36,191 INFO L280 TraceCheckUtils]: 10: Hoare triple {3132#true} assume ~size > 0; {3132#true} is VALID [2020-07-17 22:29:36,191 INFO L280 TraceCheckUtils]: 11: Hoare triple {3132#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; {3132#true} is VALID [2020-07-17 22:29:36,192 INFO L280 TraceCheckUtils]: 12: Hoare triple {3132#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,192 INFO L280 TraceCheckUtils]: 13: Hoare triple {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,194 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {3192#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {3132#true} #68#return; {3190#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,194 INFO L280 TraceCheckUtils]: 15: Hoare triple {3190#(<= |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; {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,195 INFO L280 TraceCheckUtils]: 16: Hoare triple {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,196 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {3191#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {3132#true} #70#return; {3148#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,197 INFO L280 TraceCheckUtils]: 18: Hoare triple {3148#(<= |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; {3149#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,198 INFO L263 TraceCheckUtils]: 19: Hoare triple {3149#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {3268#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,199 INFO L280 TraceCheckUtils]: 20: Hoare triple {3268#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {3268#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,200 INFO L263 TraceCheckUtils]: 21: Hoare triple {3268#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3268#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,200 INFO L280 TraceCheckUtils]: 22: Hoare triple {3268#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {3268#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,201 INFO L280 TraceCheckUtils]: 23: Hoare triple {3268#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume ~size > 0; {3268#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,202 INFO L280 TraceCheckUtils]: 24: Hoare triple {3268#(<= |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; {3202#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:36,203 INFO L280 TraceCheckUtils]: 25: Hoare triple {3202#(<= (+ |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; {3287#(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-17 22:29:36,204 INFO L280 TraceCheckUtils]: 26: Hoare triple {3287#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} assume true; {3287#(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-17 22:29:36,205 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {3287#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} {3268#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #68#return; {3294#(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-17 22:29:36,206 INFO L280 TraceCheckUtils]: 28: Hoare triple {3294#(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; {3298#(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-17 22:29:36,207 INFO L280 TraceCheckUtils]: 29: Hoare triple {3298#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} assume true; {3298#(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-17 22:29:36,209 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {3298#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} {3149#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #72#return; {3161#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:36,209 INFO L280 TraceCheckUtils]: 31: Hoare triple {3161#(<= (+ 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; {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:36,210 INFO L280 TraceCheckUtils]: 32: Hoare triple {3162#(<= (+ 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); {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:36,210 INFO L263 TraceCheckUtils]: 33: Hoare triple {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {3132#true} is VALID [2020-07-17 22:29:36,210 INFO L280 TraceCheckUtils]: 34: Hoare triple {3132#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3132#true} is VALID [2020-07-17 22:29:36,211 INFO L280 TraceCheckUtils]: 35: Hoare triple {3132#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3132#true} is VALID [2020-07-17 22:29:36,211 INFO L280 TraceCheckUtils]: 36: Hoare triple {3132#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3132#true} is VALID [2020-07-17 22:29:36,211 INFO L280 TraceCheckUtils]: 37: Hoare triple {3132#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3132#true} is VALID [2020-07-17 22:29:36,211 INFO L280 TraceCheckUtils]: 38: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-17 22:29:36,212 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {3132#true} {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #74#return; {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:36,212 INFO L263 TraceCheckUtils]: 40: Hoare triple {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {3132#true} is VALID [2020-07-17 22:29:36,213 INFO L280 TraceCheckUtils]: 41: Hoare triple {3132#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3338#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:36,214 INFO L280 TraceCheckUtils]: 42: Hoare triple {3338#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3338#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:36,215 INFO L280 TraceCheckUtils]: 43: Hoare triple {3338#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3338#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:36,215 INFO L280 TraceCheckUtils]: 44: Hoare triple {3338#(<= 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; {3348#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:36,216 INFO L280 TraceCheckUtils]: 45: Hoare triple {3348#(<= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {3348#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:36,218 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {3348#(<= ~elem~0.offset |list_add_#in~new.offset|)} {3162#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #76#return; {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:36,219 INFO L263 TraceCheckUtils]: 47: Hoare triple {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {3358#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:36,219 INFO L280 TraceCheckUtils]: 48: Hoare triple {3358#(<= ~elem~0.offset |old(~elem~0.offset)|)} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {3358#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:36,220 INFO L280 TraceCheckUtils]: 49: Hoare triple {3358#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume !(~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset); {3358#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:36,220 INFO L280 TraceCheckUtils]: 50: Hoare triple {3358#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume true; {3358#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-17 22:29:36,222 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {3358#(<= ~elem~0.offset |old(~elem~0.offset)|)} {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #78#return; {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-17 22:29:36,223 INFO L263 TraceCheckUtils]: 52: Hoare triple {3175#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {3180#(<= (+ ~elem~0.offset 1) |list_add_#in~new.offset|)} is VALID [2020-07-17 22:29:36,224 INFO L280 TraceCheckUtils]: 53: Hoare triple {3180#(<= (+ ~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; {3377#(<= (+ ~elem~0.offset 1) list_add_~new.offset)} is VALID [2020-07-17 22:29:36,225 INFO L280 TraceCheckUtils]: 54: Hoare triple {3377#(<= (+ ~elem~0.offset 1) list_add_~new.offset)} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {3133#false} is VALID [2020-07-17 22:29:36,225 INFO L263 TraceCheckUtils]: 55: Hoare triple {3133#false} call __blast_assert(); {3133#false} is VALID [2020-07-17 22:29:36,225 INFO L280 TraceCheckUtils]: 56: Hoare triple {3133#false} assume !false; {3133#false} is VALID [2020-07-17 22:29:36,229 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-17 22:29:36,229 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-17 22:29:36,230 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 20] total 31 [2020-07-17 22:29:36,230 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [740789799] [2020-07-17 22:29:36,234 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-17 22:29:36,239 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-17 22:29:36,240 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 31 states. [2020-07-17 22:29:36,354 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-17 22:29:36,354 INFO L459 AbstractCegarLoop]: Interpolant automaton has 31 states [2020-07-17 22:29:36,354 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-17 22:29:36,355 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2020-07-17 22:29:36,357 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=85, Invalid=845, Unknown=0, NotChecked=0, Total=930 [2020-07-17 22:29:36,357 INFO L87 Difference]: Start difference. First operand 57 states and 63 transitions. Second operand 31 states. [2020-07-17 22:29:40,981 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:40,982 INFO L93 Difference]: Finished difference Result 63 states and 68 transitions. [2020-07-17 22:29:40,982 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2020-07-17 22:29:40,982 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-17 22:29:40,983 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-17 22:29:40,983 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-17 22:29:40,987 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 57 transitions. [2020-07-17 22:29:40,988 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-17 22:29:40,991 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 57 transitions. [2020-07-17 22:29:40,991 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states and 57 transitions. [2020-07-17 22:29:41,137 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-17 22:29:41,142 INFO L225 Difference]: With dead ends: 63 [2020-07-17 22:29:41,143 INFO L226 Difference]: Without dead ends: 49 [2020-07-17 22:29:41,145 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 106 GetRequests, 62 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-17 22:29:41,148 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 49 states. [2020-07-17 22:29:41,322 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 49 to 47. [2020-07-17 22:29:41,322 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-17 22:29:41,322 INFO L82 GeneralOperation]: Start isEquivalent. First operand 49 states. Second operand 47 states. [2020-07-17 22:29:41,323 INFO L74 IsIncluded]: Start isIncluded. First operand 49 states. Second operand 47 states. [2020-07-17 22:29:41,323 INFO L87 Difference]: Start difference. First operand 49 states. Second operand 47 states. [2020-07-17 22:29:41,331 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:41,331 INFO L93 Difference]: Finished difference Result 49 states and 51 transitions. [2020-07-17 22:29:41,331 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 51 transitions. [2020-07-17 22:29:41,332 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:41,334 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:41,335 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 49 states. [2020-07-17 22:29:41,335 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 49 states. [2020-07-17 22:29:41,339 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:41,339 INFO L93 Difference]: Finished difference Result 49 states and 51 transitions. [2020-07-17 22:29:41,340 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 51 transitions. [2020-07-17 22:29:41,340 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:41,340 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:41,341 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-17 22:29:41,341 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-17 22:29:41,341 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2020-07-17 22:29:41,344 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 49 transitions. [2020-07-17 22:29:41,344 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 49 transitions. Word has length 57 [2020-07-17 22:29:41,344 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-17 22:29:41,344 INFO L479 AbstractCegarLoop]: Abstraction has 47 states and 49 transitions. [2020-07-17 22:29:41,345 INFO L480 AbstractCegarLoop]: Interpolant automaton has 31 states. [2020-07-17 22:29:41,345 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 49 transitions. [2020-07-17 22:29:41,346 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-17 22:29:41,346 INFO L414 BasicCegarLoop]: Found error trace [2020-07-17 22:29:41,346 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-17 22:29:41,560 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,7 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-17 22:29:41,561 INFO L427 AbstractCegarLoop]: === Iteration 9 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-17 22:29:41,561 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-17 22:29:41,561 INFO L82 PathProgramCache]: Analyzing trace with hash 1588672638, now seen corresponding path program 1 times [2020-07-17 22:29:41,562 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-17 22:29:41,562 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [771456933] [2020-07-17 22:29:41,562 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-17 22:29:41,599 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:41,860 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:41,870 INFO L280 TraceCheckUtils]: 0: Hoare triple {3720#(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); {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,871 INFO L280 TraceCheckUtils]: 1: Hoare triple {3675#(<= 0 ~guard_malloc_counter~0.offset)} assume true; {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,872 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {3675#(<= 0 ~guard_malloc_counter~0.offset)} {3670#true} #86#return; {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,901 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:41,965 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:41,977 INFO L280 TraceCheckUtils]: 0: Hoare triple {3721#(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; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:41,978 INFO L280 TraceCheckUtils]: 1: Hoare triple {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:41,980 INFO L280 TraceCheckUtils]: 2: Hoare triple {3722#(= ~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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,981 INFO L280 TraceCheckUtils]: 3: Hoare triple {3729#(<= (+ |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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,982 INFO L280 TraceCheckUtils]: 4: Hoare triple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,984 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,985 INFO L280 TraceCheckUtils]: 0: Hoare triple {3721#(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; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:41,986 INFO L263 TraceCheckUtils]: 1: Hoare triple {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3721#(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-17 22:29:41,987 INFO L280 TraceCheckUtils]: 2: Hoare triple {3721#(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; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:41,988 INFO L280 TraceCheckUtils]: 3: Hoare triple {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:41,989 INFO L280 TraceCheckUtils]: 4: Hoare triple {3722#(= ~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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,990 INFO L280 TraceCheckUtils]: 5: Hoare triple {3729#(<= (+ |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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,991 INFO L280 TraceCheckUtils]: 6: Hoare triple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,993 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,994 INFO L280 TraceCheckUtils]: 8: Hoare triple {3729#(<= (+ |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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,995 INFO L280 TraceCheckUtils]: 9: Hoare triple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:41,997 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {3675#(<= 0 ~guard_malloc_counter~0.offset)} #70#return; {3687#(<= 1 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,002 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:42,073 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:42,118 INFO L280 TraceCheckUtils]: 0: Hoare triple {3721#(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; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:42,119 INFO L280 TraceCheckUtils]: 1: Hoare triple {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:42,120 INFO L280 TraceCheckUtils]: 2: Hoare triple {3722#(= ~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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,122 INFO L280 TraceCheckUtils]: 3: Hoare triple {3729#(<= (+ |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; {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:42,123 INFO L280 TraceCheckUtils]: 4: Hoare triple {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:42,125 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {3736#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:42,126 INFO L280 TraceCheckUtils]: 0: Hoare triple {3721#(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; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:42,128 INFO L263 TraceCheckUtils]: 1: Hoare triple {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3721#(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-17 22:29:42,129 INFO L280 TraceCheckUtils]: 2: Hoare triple {3721#(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; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:42,130 INFO L280 TraceCheckUtils]: 3: Hoare triple {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:42,131 INFO L280 TraceCheckUtils]: 4: Hoare triple {3722#(= ~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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,132 INFO L280 TraceCheckUtils]: 5: Hoare triple {3729#(<= (+ |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; {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:42,133 INFO L280 TraceCheckUtils]: 6: Hoare triple {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:42,135 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {3736#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:42,137 INFO L280 TraceCheckUtils]: 8: Hoare triple {3736#(<= (+ |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; {3737#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:42,138 INFO L280 TraceCheckUtils]: 9: Hoare triple {3737#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {3737#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:42,140 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {3737#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {3687#(<= 1 ~guard_malloc_counter~0.offset)} #72#return; {3699#(<= 2 |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:42,178 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:42,184 INFO L280 TraceCheckUtils]: 0: Hoare triple {3739#(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; {3670#true} is VALID [2020-07-17 22:29:42,184 INFO L280 TraceCheckUtils]: 1: Hoare triple {3670#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3670#true} is VALID [2020-07-17 22:29:42,185 INFO L280 TraceCheckUtils]: 2: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-17 22:29:42,185 INFO L280 TraceCheckUtils]: 3: Hoare triple {3670#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3670#true} is VALID [2020-07-17 22:29:42,185 INFO L280 TraceCheckUtils]: 4: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-17 22:29:42,187 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3670#true} {3700#(<= 2 main_~dev2~0.offset)} #74#return; {3700#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-17 22:29:42,189 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:42,194 INFO L280 TraceCheckUtils]: 0: Hoare triple {3739#(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; {3670#true} is VALID [2020-07-17 22:29:42,194 INFO L280 TraceCheckUtils]: 1: Hoare triple {3670#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3670#true} is VALID [2020-07-17 22:29:42,194 INFO L280 TraceCheckUtils]: 2: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-17 22:29:42,195 INFO L280 TraceCheckUtils]: 3: Hoare triple {3670#true} assume !(0 != #t~nondet31);havoc #t~nondet31; {3670#true} is VALID [2020-07-17 22:29:42,195 INFO L280 TraceCheckUtils]: 4: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-17 22:29:42,197 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3670#true} {3700#(<= 2 main_~dev2~0.offset)} #76#return; {3700#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-17 22:29:42,199 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:42,238 INFO L280 TraceCheckUtils]: 0: Hoare triple {3739#(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; {3670#true} is VALID [2020-07-17 22:29:42,239 INFO L280 TraceCheckUtils]: 1: Hoare triple {3670#true} assume ~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {3740#(= 0 ~elem~0.offset)} is VALID [2020-07-17 22:29:42,240 INFO L280 TraceCheckUtils]: 2: Hoare triple {3740#(= 0 ~elem~0.offset)} assume true; {3740#(= 0 ~elem~0.offset)} is VALID [2020-07-17 22:29:42,241 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3740#(= 0 ~elem~0.offset)} {3700#(<= 2 main_~dev2~0.offset)} #78#return; {3717#(and (= 0 ~elem~0.offset) (<= 2 main_~dev2~0.offset))} is VALID [2020-07-17 22:29:42,244 INFO L263 TraceCheckUtils]: 0: Hoare triple {3670#true} call ULTIMATE.init(); {3720#(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-17 22:29:42,246 INFO L280 TraceCheckUtils]: 1: Hoare triple {3720#(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); {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,247 INFO L280 TraceCheckUtils]: 2: Hoare triple {3675#(<= 0 ~guard_malloc_counter~0.offset)} assume true; {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,248 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3675#(<= 0 ~guard_malloc_counter~0.offset)} {3670#true} #86#return; {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,249 INFO L263 TraceCheckUtils]: 4: Hoare triple {3675#(<= 0 ~guard_malloc_counter~0.offset)} call #t~ret34 := main(); {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,250 INFO L280 TraceCheckUtils]: 5: Hoare triple {3675#(<= 0 ~guard_malloc_counter~0.offset)} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,251 INFO L263 TraceCheckUtils]: 6: Hoare triple {3675#(<= 0 ~guard_malloc_counter~0.offset)} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {3721#(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-17 22:29:42,252 INFO L280 TraceCheckUtils]: 7: Hoare triple {3721#(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; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:42,253 INFO L263 TraceCheckUtils]: 8: Hoare triple {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3721#(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-17 22:29:42,254 INFO L280 TraceCheckUtils]: 9: Hoare triple {3721#(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; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:42,255 INFO L280 TraceCheckUtils]: 10: Hoare triple {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:42,256 INFO L280 TraceCheckUtils]: 11: Hoare triple {3722#(= ~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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,257 INFO L280 TraceCheckUtils]: 12: Hoare triple {3729#(<= (+ |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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,258 INFO L280 TraceCheckUtils]: 13: Hoare triple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,260 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,260 INFO L280 TraceCheckUtils]: 15: Hoare triple {3729#(<= (+ |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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,261 INFO L280 TraceCheckUtils]: 16: Hoare triple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,263 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {3675#(<= 0 ~guard_malloc_counter~0.offset)} #70#return; {3687#(<= 1 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,264 INFO L280 TraceCheckUtils]: 18: Hoare triple {3687#(<= 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; {3687#(<= 1 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,266 INFO L263 TraceCheckUtils]: 19: Hoare triple {3687#(<= 1 ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {3721#(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-17 22:29:42,266 INFO L280 TraceCheckUtils]: 20: Hoare triple {3721#(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; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:42,268 INFO L263 TraceCheckUtils]: 21: Hoare triple {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3721#(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-17 22:29:42,269 INFO L280 TraceCheckUtils]: 22: Hoare triple {3721#(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; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:42,269 INFO L280 TraceCheckUtils]: 23: Hoare triple {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-17 22:29:42,271 INFO L280 TraceCheckUtils]: 24: Hoare triple {3722#(= ~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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:42,272 INFO L280 TraceCheckUtils]: 25: Hoare triple {3729#(<= (+ |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; {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:42,273 INFO L280 TraceCheckUtils]: 26: Hoare triple {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-17 22:29:42,275 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {3738#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {3722#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #68#return; {3736#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-17 22:29:42,276 INFO L280 TraceCheckUtils]: 28: Hoare triple {3736#(<= (+ |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; {3737#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:42,277 INFO L280 TraceCheckUtils]: 29: Hoare triple {3737#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {3737#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-17 22:29:42,279 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {3737#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {3687#(<= 1 ~guard_malloc_counter~0.offset)} #72#return; {3699#(<= 2 |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:42,280 INFO L280 TraceCheckUtils]: 31: Hoare triple {3699#(<= 2 |main_#t~ret33.offset|)} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {3700#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-17 22:29:42,281 INFO L280 TraceCheckUtils]: 32: Hoare triple {3700#(<= 2 main_~dev2~0.offset)} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {3700#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-17 22:29:42,283 INFO L263 TraceCheckUtils]: 33: Hoare triple {3700#(<= 2 main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {3739#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:42,284 INFO L280 TraceCheckUtils]: 34: Hoare triple {3739#(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; {3670#true} is VALID [2020-07-17 22:29:42,284 INFO L280 TraceCheckUtils]: 35: Hoare triple {3670#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3670#true} is VALID [2020-07-17 22:29:42,284 INFO L280 TraceCheckUtils]: 36: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-17 22:29:42,284 INFO L280 TraceCheckUtils]: 37: Hoare triple {3670#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3670#true} is VALID [2020-07-17 22:29:42,285 INFO L280 TraceCheckUtils]: 38: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-17 22:29:42,287 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {3670#true} {3700#(<= 2 main_~dev2~0.offset)} #74#return; {3700#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-17 22:29:42,289 INFO L263 TraceCheckUtils]: 40: Hoare triple {3700#(<= 2 main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {3739#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:42,289 INFO L280 TraceCheckUtils]: 41: Hoare triple {3739#(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; {3670#true} is VALID [2020-07-17 22:29:42,289 INFO L280 TraceCheckUtils]: 42: Hoare triple {3670#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3670#true} is VALID [2020-07-17 22:29:42,290 INFO L280 TraceCheckUtils]: 43: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-17 22:29:42,290 INFO L280 TraceCheckUtils]: 44: Hoare triple {3670#true} assume !(0 != #t~nondet31);havoc #t~nondet31; {3670#true} is VALID [2020-07-17 22:29:42,290 INFO L280 TraceCheckUtils]: 45: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-17 22:29:42,292 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {3670#true} {3700#(<= 2 main_~dev2~0.offset)} #76#return; {3700#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-17 22:29:42,294 INFO L263 TraceCheckUtils]: 47: Hoare triple {3700#(<= 2 main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {3739#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:42,294 INFO L280 TraceCheckUtils]: 48: Hoare triple {3739#(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; {3670#true} is VALID [2020-07-17 22:29:42,295 INFO L280 TraceCheckUtils]: 49: Hoare triple {3670#true} assume ~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {3740#(= 0 ~elem~0.offset)} is VALID [2020-07-17 22:29:42,296 INFO L280 TraceCheckUtils]: 50: Hoare triple {3740#(= 0 ~elem~0.offset)} assume true; {3740#(= 0 ~elem~0.offset)} is VALID [2020-07-17 22:29:42,298 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {3740#(= 0 ~elem~0.offset)} {3700#(<= 2 main_~dev2~0.offset)} #78#return; {3717#(and (= 0 ~elem~0.offset) (<= 2 main_~dev2~0.offset))} is VALID [2020-07-17 22:29:42,300 INFO L263 TraceCheckUtils]: 52: Hoare triple {3717#(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); {3718#(and (= 0 ~elem~0.offset) (<= 2 |list_add_#in~new.offset|))} is VALID [2020-07-17 22:29:42,302 INFO L280 TraceCheckUtils]: 53: Hoare triple {3718#(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; {3719#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} is VALID [2020-07-17 22:29:42,303 INFO L280 TraceCheckUtils]: 54: Hoare triple {3719#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {3671#false} is VALID [2020-07-17 22:29:42,303 INFO L263 TraceCheckUtils]: 55: Hoare triple {3671#false} call __blast_assert(); {3671#false} is VALID [2020-07-17 22:29:42,303 INFO L280 TraceCheckUtils]: 56: Hoare triple {3671#false} assume !false; {3671#false} is VALID [2020-07-17 22:29:42,312 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-17 22:29:42,313 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [771456933] [2020-07-17 22:29:42,313 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [802478242] [2020-07-17 22:29:42,313 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-17 22:29:42,506 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:42,508 INFO L264 TraceCheckSpWp]: Trace formula consists of 321 conjuncts, 24 conjunts are in the unsatisfiable core [2020-07-17 22:29:42,538 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:42,544 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-17 22:29:43,190 INFO L263 TraceCheckUtils]: 0: Hoare triple {3670#true} call ULTIMATE.init(); {3670#true} is VALID [2020-07-17 22:29:43,192 INFO L280 TraceCheckUtils]: 1: Hoare triple {3670#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); {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,193 INFO L280 TraceCheckUtils]: 2: Hoare triple {3675#(<= 0 ~guard_malloc_counter~0.offset)} assume true; {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,194 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3675#(<= 0 ~guard_malloc_counter~0.offset)} {3670#true} #86#return; {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,195 INFO L263 TraceCheckUtils]: 4: Hoare triple {3675#(<= 0 ~guard_malloc_counter~0.offset)} call #t~ret34 := main(); {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,196 INFO L280 TraceCheckUtils]: 5: Hoare triple {3675#(<= 0 ~guard_malloc_counter~0.offset)} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {3675#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,197 INFO L263 TraceCheckUtils]: 6: Hoare triple {3675#(<= 0 ~guard_malloc_counter~0.offset)} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,198 INFO L280 TraceCheckUtils]: 7: Hoare triple {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,199 INFO L263 TraceCheckUtils]: 8: Hoare triple {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,200 INFO L280 TraceCheckUtils]: 9: Hoare triple {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,201 INFO L280 TraceCheckUtils]: 10: Hoare triple {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume ~size > 0; {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,203 INFO L280 TraceCheckUtils]: 11: Hoare triple {3762#(<= |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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,204 INFO L280 TraceCheckUtils]: 12: Hoare triple {3729#(<= (+ |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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,205 INFO L280 TraceCheckUtils]: 13: Hoare triple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,207 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #68#return; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,208 INFO L280 TraceCheckUtils]: 15: Hoare triple {3729#(<= (+ |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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,209 INFO L280 TraceCheckUtils]: 16: Hoare triple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,211 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {3675#(<= 0 ~guard_malloc_counter~0.offset)} #70#return; {3687#(<= 1 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,212 INFO L280 TraceCheckUtils]: 18: Hoare triple {3687#(<= 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; {3687#(<= 1 ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,213 INFO L263 TraceCheckUtils]: 19: Hoare triple {3687#(<= 1 ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,214 INFO L280 TraceCheckUtils]: 20: Hoare triple {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,215 INFO L263 TraceCheckUtils]: 21: Hoare triple {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,216 INFO L280 TraceCheckUtils]: 22: Hoare triple {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,217 INFO L280 TraceCheckUtils]: 23: Hoare triple {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume ~size > 0; {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,219 INFO L280 TraceCheckUtils]: 24: Hoare triple {3762#(<= |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; {3729#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-17 22:29:43,220 INFO L280 TraceCheckUtils]: 25: Hoare triple {3729#(<= (+ |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; {3820#(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-17 22:29:43,221 INFO L280 TraceCheckUtils]: 26: Hoare triple {3820#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} assume true; {3820#(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-17 22:29:43,223 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {3820#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} {3762#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #68#return; {3827#(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-17 22:29:43,225 INFO L280 TraceCheckUtils]: 28: Hoare triple {3827#(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; {3831#(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-17 22:29:43,226 INFO L280 TraceCheckUtils]: 29: Hoare triple {3831#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} assume true; {3831#(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-17 22:29:43,228 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {3831#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} {3687#(<= 1 ~guard_malloc_counter~0.offset)} #72#return; {3699#(<= 2 |main_#t~ret33.offset|)} is VALID [2020-07-17 22:29:43,229 INFO L280 TraceCheckUtils]: 31: Hoare triple {3699#(<= 2 |main_#t~ret33.offset|)} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {3700#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-17 22:29:43,230 INFO L280 TraceCheckUtils]: 32: Hoare triple {3700#(<= 2 main_~dev2~0.offset)} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {3700#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-17 22:29:43,230 INFO L263 TraceCheckUtils]: 33: Hoare triple {3700#(<= 2 main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {3670#true} is VALID [2020-07-17 22:29:43,231 INFO L280 TraceCheckUtils]: 34: Hoare triple {3670#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3670#true} is VALID [2020-07-17 22:29:43,231 INFO L280 TraceCheckUtils]: 35: Hoare triple {3670#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3670#true} is VALID [2020-07-17 22:29:43,231 INFO L280 TraceCheckUtils]: 36: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-17 22:29:43,232 INFO L280 TraceCheckUtils]: 37: Hoare triple {3670#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3670#true} is VALID [2020-07-17 22:29:43,232 INFO L280 TraceCheckUtils]: 38: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-17 22:29:43,234 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {3670#true} {3700#(<= 2 main_~dev2~0.offset)} #74#return; {3700#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-17 22:29:43,234 INFO L263 TraceCheckUtils]: 40: Hoare triple {3700#(<= 2 main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {3670#true} is VALID [2020-07-17 22:29:43,234 INFO L280 TraceCheckUtils]: 41: Hoare triple {3670#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3670#true} is VALID [2020-07-17 22:29:43,235 INFO L280 TraceCheckUtils]: 42: Hoare triple {3670#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3670#true} is VALID [2020-07-17 22:29:43,235 INFO L280 TraceCheckUtils]: 43: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-17 22:29:43,235 INFO L280 TraceCheckUtils]: 44: Hoare triple {3670#true} assume !(0 != #t~nondet31);havoc #t~nondet31; {3670#true} is VALID [2020-07-17 22:29:43,235 INFO L280 TraceCheckUtils]: 45: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-17 22:29:43,237 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {3670#true} {3700#(<= 2 main_~dev2~0.offset)} #76#return; {3700#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-17 22:29:43,237 INFO L263 TraceCheckUtils]: 47: Hoare triple {3700#(<= 2 main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {3670#true} is VALID [2020-07-17 22:29:43,238 INFO L280 TraceCheckUtils]: 48: Hoare triple {3670#true} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {3670#true} is VALID [2020-07-17 22:29:43,239 INFO L280 TraceCheckUtils]: 49: Hoare triple {3670#true} assume ~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {3895#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:43,240 INFO L280 TraceCheckUtils]: 50: Hoare triple {3895#(<= ~elem~0.offset 0)} assume true; {3895#(<= ~elem~0.offset 0)} is VALID [2020-07-17 22:29:43,241 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {3895#(<= ~elem~0.offset 0)} {3700#(<= 2 main_~dev2~0.offset)} #78#return; {3902#(and (<= 2 main_~dev2~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:43,243 INFO L263 TraceCheckUtils]: 52: Hoare triple {3902#(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); {3906#(and (<= 2 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:43,245 INFO L280 TraceCheckUtils]: 53: Hoare triple {3906#(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; {3910#(and (<= 2 list_add_~new.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-17 22:29:43,246 INFO L280 TraceCheckUtils]: 54: Hoare triple {3910#(and (<= 2 list_add_~new.offset) (<= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {3671#false} is VALID [2020-07-17 22:29:43,246 INFO L263 TraceCheckUtils]: 55: Hoare triple {3671#false} call __blast_assert(); {3671#false} is VALID [2020-07-17 22:29:43,247 INFO L280 TraceCheckUtils]: 56: Hoare triple {3671#false} assume !false; {3671#false} is VALID [2020-07-17 22:29:43,254 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-17 22:29:43,255 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2020-07-17 22:29:43,255 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [18] total 26 [2020-07-17 22:29:43,258 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1900200255] [2020-07-17 22:29:43,259 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 57 [2020-07-17 22:29:43,259 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-17 22:29:43,260 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states. [2020-07-17 22:29:43,354 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-17 22:29:43,354 INFO L459 AbstractCegarLoop]: Interpolant automaton has 15 states [2020-07-17 22:29:43,354 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-17 22:29:43,355 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2020-07-17 22:29:43,355 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=81, Invalid=569, Unknown=0, NotChecked=0, Total=650 [2020-07-17 22:29:43,356 INFO L87 Difference]: Start difference. First operand 47 states and 49 transitions. Second operand 15 states. [2020-07-17 22:29:45,062 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:45,062 INFO L93 Difference]: Finished difference Result 60 states and 62 transitions. [2020-07-17 22:29:45,062 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2020-07-17 22:29:45,063 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 57 [2020-07-17 22:29:45,063 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-17 22:29:45,063 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-17 22:29:45,065 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 59 transitions. [2020-07-17 22:29:45,066 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-17 22:29:45,068 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 59 transitions. [2020-07-17 22:29:45,068 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 16 states and 59 transitions. [2020-07-17 22:29:45,171 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-17 22:29:45,173 INFO L225 Difference]: With dead ends: 60 [2020-07-17 22:29:45,173 INFO L226 Difference]: Without dead ends: 52 [2020-07-17 22:29:45,175 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 103 GetRequests, 66 SyntacticMatches, 0 SemanticMatches, 37 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 236 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=218, Invalid=1264, Unknown=0, NotChecked=0, Total=1482 [2020-07-17 22:29:45,175 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2020-07-17 22:29:45,313 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 47. [2020-07-17 22:29:45,314 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-17 22:29:45,314 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 47 states. [2020-07-17 22:29:45,314 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 47 states. [2020-07-17 22:29:45,314 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 47 states. [2020-07-17 22:29:45,317 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:45,317 INFO L93 Difference]: Finished difference Result 52 states and 54 transitions. [2020-07-17 22:29:45,317 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 54 transitions. [2020-07-17 22:29:45,318 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:45,318 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:45,318 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 52 states. [2020-07-17 22:29:45,318 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 52 states. [2020-07-17 22:29:45,320 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:45,321 INFO L93 Difference]: Finished difference Result 52 states and 54 transitions. [2020-07-17 22:29:45,321 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 54 transitions. [2020-07-17 22:29:45,321 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:45,321 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:45,321 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-17 22:29:45,322 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-17 22:29:45,322 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2020-07-17 22:29:45,323 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 48 transitions. [2020-07-17 22:29:45,323 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 48 transitions. Word has length 57 [2020-07-17 22:29:45,323 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-17 22:29:45,323 INFO L479 AbstractCegarLoop]: Abstraction has 47 states and 48 transitions. [2020-07-17 22:29:45,323 INFO L480 AbstractCegarLoop]: Interpolant automaton has 15 states. [2020-07-17 22:29:45,324 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 48 transitions. [2020-07-17 22:29:45,324 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-17 22:29:45,324 INFO L414 BasicCegarLoop]: Found error trace [2020-07-17 22:29:45,324 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-17 22:29:45,538 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable8,8 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-17 22:29:45,539 INFO L427 AbstractCegarLoop]: === Iteration 10 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-17 22:29:45,539 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-17 22:29:45,539 INFO L82 PathProgramCache]: Analyzing trace with hash 779326012, now seen corresponding path program 1 times [2020-07-17 22:29:45,539 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-17 22:29:45,539 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [346471022] [2020-07-17 22:29:45,539 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-17 22:29:45,570 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:45,631 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:45,634 INFO L280 TraceCheckUtils]: 0: Hoare triple {4247#(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); {4203#true} is VALID [2020-07-17 22:29:45,635 INFO L280 TraceCheckUtils]: 1: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,635 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {4203#true} {4203#true} #86#return; {4203#true} is VALID [2020-07-17 22:29:45,646 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:45,651 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:45,654 INFO L280 TraceCheckUtils]: 0: Hoare triple {4248#(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; {4203#true} is VALID [2020-07-17 22:29:45,654 INFO L280 TraceCheckUtils]: 1: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-17 22:29:45,654 INFO L280 TraceCheckUtils]: 2: Hoare triple {4203#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; {4203#true} is VALID [2020-07-17 22:29:45,655 INFO L280 TraceCheckUtils]: 3: Hoare triple {4203#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4203#true} is VALID [2020-07-17 22:29:45,655 INFO L280 TraceCheckUtils]: 4: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,655 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-17 22:29:45,655 INFO L280 TraceCheckUtils]: 0: Hoare triple {4248#(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; {4203#true} is VALID [2020-07-17 22:29:45,656 INFO L263 TraceCheckUtils]: 1: Hoare triple {4203#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4248#(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-17 22:29:45,656 INFO L280 TraceCheckUtils]: 2: Hoare triple {4248#(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; {4203#true} is VALID [2020-07-17 22:29:45,657 INFO L280 TraceCheckUtils]: 3: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-17 22:29:45,657 INFO L280 TraceCheckUtils]: 4: Hoare triple {4203#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; {4203#true} is VALID [2020-07-17 22:29:45,657 INFO L280 TraceCheckUtils]: 5: Hoare triple {4203#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4203#true} is VALID [2020-07-17 22:29:45,657 INFO L280 TraceCheckUtils]: 6: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,657 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-17 22:29:45,658 INFO L280 TraceCheckUtils]: 8: Hoare triple {4203#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4203#true} is VALID [2020-07-17 22:29:45,658 INFO L280 TraceCheckUtils]: 9: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,658 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {4203#true} {4203#true} #70#return; {4203#true} is VALID [2020-07-17 22:29:45,659 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:45,663 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:45,666 INFO L280 TraceCheckUtils]: 0: Hoare triple {4248#(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; {4203#true} is VALID [2020-07-17 22:29:45,667 INFO L280 TraceCheckUtils]: 1: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-17 22:29:45,667 INFO L280 TraceCheckUtils]: 2: Hoare triple {4203#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; {4203#true} is VALID [2020-07-17 22:29:45,667 INFO L280 TraceCheckUtils]: 3: Hoare triple {4203#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4203#true} is VALID [2020-07-17 22:29:45,667 INFO L280 TraceCheckUtils]: 4: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,668 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-17 22:29:45,668 INFO L280 TraceCheckUtils]: 0: Hoare triple {4248#(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; {4203#true} is VALID [2020-07-17 22:29:45,669 INFO L263 TraceCheckUtils]: 1: Hoare triple {4203#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4248#(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-17 22:29:45,669 INFO L280 TraceCheckUtils]: 2: Hoare triple {4248#(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; {4203#true} is VALID [2020-07-17 22:29:45,669 INFO L280 TraceCheckUtils]: 3: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-17 22:29:45,670 INFO L280 TraceCheckUtils]: 4: Hoare triple {4203#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; {4203#true} is VALID [2020-07-17 22:29:45,670 INFO L280 TraceCheckUtils]: 5: Hoare triple {4203#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4203#true} is VALID [2020-07-17 22:29:45,670 INFO L280 TraceCheckUtils]: 6: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,670 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-17 22:29:45,670 INFO L280 TraceCheckUtils]: 8: Hoare triple {4203#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4203#true} is VALID [2020-07-17 22:29:45,671 INFO L280 TraceCheckUtils]: 9: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,671 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {4203#true} {4203#true} #72#return; {4203#true} is VALID [2020-07-17 22:29:45,683 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:45,737 INFO L280 TraceCheckUtils]: 0: Hoare triple {4261#(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; {4262#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-17 22:29:45,738 INFO L280 TraceCheckUtils]: 1: Hoare triple {4262#(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; {4262#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-17 22:29:45,739 INFO L280 TraceCheckUtils]: 2: Hoare triple {4262#(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; {4262#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-17 22:29:45,740 INFO L280 TraceCheckUtils]: 3: Hoare triple {4262#(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; {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-17 22:29:45,740 INFO L280 TraceCheckUtils]: 4: Hoare triple {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} assume true; {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-17 22:29:45,742 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} {4203#true} #74#return; {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-17 22:29:45,744 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:45,760 INFO L280 TraceCheckUtils]: 0: Hoare triple {4261#(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; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,761 INFO L280 TraceCheckUtils]: 1: Hoare triple {4261#(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; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,762 INFO L280 TraceCheckUtils]: 2: Hoare triple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,762 INFO L280 TraceCheckUtils]: 3: Hoare triple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume !(0 != #t~nondet31);havoc #t~nondet31; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,763 INFO L280 TraceCheckUtils]: 4: Hoare triple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume true; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,764 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #76#return; {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-17 22:29:45,765 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:45,806 INFO L280 TraceCheckUtils]: 0: Hoare triple {4261#(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; {4264#(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-17 22:29:45,807 INFO L280 TraceCheckUtils]: 1: Hoare triple {4264#(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); {4265#(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-17 22:29:45,808 INFO L280 TraceCheckUtils]: 2: Hoare triple {4265#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} assume true; {4265#(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-17 22:29:45,809 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4265#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #78#return; {4204#false} is VALID [2020-07-17 22:29:45,810 INFO L263 TraceCheckUtils]: 0: Hoare triple {4203#true} call ULTIMATE.init(); {4247#(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-17 22:29:45,811 INFO L280 TraceCheckUtils]: 1: Hoare triple {4247#(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); {4203#true} is VALID [2020-07-17 22:29:45,811 INFO L280 TraceCheckUtils]: 2: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,811 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4203#true} {4203#true} #86#return; {4203#true} is VALID [2020-07-17 22:29:45,811 INFO L263 TraceCheckUtils]: 4: Hoare triple {4203#true} call #t~ret34 := main(); {4203#true} is VALID [2020-07-17 22:29:45,811 INFO L280 TraceCheckUtils]: 5: Hoare triple {4203#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {4203#true} is VALID [2020-07-17 22:29:45,812 INFO L263 TraceCheckUtils]: 6: Hoare triple {4203#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {4248#(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-17 22:29:45,812 INFO L280 TraceCheckUtils]: 7: Hoare triple {4248#(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; {4203#true} is VALID [2020-07-17 22:29:45,814 INFO L263 TraceCheckUtils]: 8: Hoare triple {4203#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4248#(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-17 22:29:45,814 INFO L280 TraceCheckUtils]: 9: Hoare triple {4248#(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; {4203#true} is VALID [2020-07-17 22:29:45,814 INFO L280 TraceCheckUtils]: 10: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-17 22:29:45,814 INFO L280 TraceCheckUtils]: 11: Hoare triple {4203#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; {4203#true} is VALID [2020-07-17 22:29:45,814 INFO L280 TraceCheckUtils]: 12: Hoare triple {4203#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4203#true} is VALID [2020-07-17 22:29:45,815 INFO L280 TraceCheckUtils]: 13: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,815 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-17 22:29:45,815 INFO L280 TraceCheckUtils]: 15: Hoare triple {4203#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4203#true} is VALID [2020-07-17 22:29:45,815 INFO L280 TraceCheckUtils]: 16: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,815 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {4203#true} {4203#true} #70#return; {4203#true} is VALID [2020-07-17 22:29:45,816 INFO L280 TraceCheckUtils]: 18: Hoare triple {4203#true} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {4203#true} is VALID [2020-07-17 22:29:45,818 INFO L263 TraceCheckUtils]: 19: Hoare triple {4203#true} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {4248#(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-17 22:29:45,819 INFO L280 TraceCheckUtils]: 20: Hoare triple {4248#(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; {4203#true} is VALID [2020-07-17 22:29:45,819 INFO L263 TraceCheckUtils]: 21: Hoare triple {4203#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4248#(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-17 22:29:45,820 INFO L280 TraceCheckUtils]: 22: Hoare triple {4248#(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; {4203#true} is VALID [2020-07-17 22:29:45,820 INFO L280 TraceCheckUtils]: 23: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-17 22:29:45,820 INFO L280 TraceCheckUtils]: 24: Hoare triple {4203#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; {4203#true} is VALID [2020-07-17 22:29:45,820 INFO L280 TraceCheckUtils]: 25: Hoare triple {4203#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4203#true} is VALID [2020-07-17 22:29:45,820 INFO L280 TraceCheckUtils]: 26: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,820 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-17 22:29:45,821 INFO L280 TraceCheckUtils]: 28: Hoare triple {4203#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4203#true} is VALID [2020-07-17 22:29:45,821 INFO L280 TraceCheckUtils]: 29: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:45,821 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {4203#true} {4203#true} #72#return; {4203#true} is VALID [2020-07-17 22:29:45,821 INFO L280 TraceCheckUtils]: 31: Hoare triple {4203#true} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {4203#true} is VALID [2020-07-17 22:29:45,821 INFO L280 TraceCheckUtils]: 32: Hoare triple {4203#true} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {4203#true} is VALID [2020-07-17 22:29:45,822 INFO L263 TraceCheckUtils]: 33: Hoare triple {4203#true} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,823 INFO L280 TraceCheckUtils]: 34: Hoare triple {4261#(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; {4262#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-17 22:29:45,824 INFO L280 TraceCheckUtils]: 35: Hoare triple {4262#(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; {4262#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-17 22:29:45,824 INFO L280 TraceCheckUtils]: 36: Hoare triple {4262#(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; {4262#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-17 22:29:45,825 INFO L280 TraceCheckUtils]: 37: Hoare triple {4262#(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; {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-17 22:29:45,825 INFO L280 TraceCheckUtils]: 38: Hoare triple {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} assume true; {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-17 22:29:45,826 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} {4203#true} #74#return; {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-17 22:29:45,827 INFO L263 TraceCheckUtils]: 40: Hoare triple {4236#(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); {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,828 INFO L280 TraceCheckUtils]: 41: Hoare triple {4261#(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; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,828 INFO L280 TraceCheckUtils]: 42: Hoare triple {4261#(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; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,829 INFO L280 TraceCheckUtils]: 43: Hoare triple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,829 INFO L280 TraceCheckUtils]: 44: Hoare triple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume !(0 != #t~nondet31);havoc #t~nondet31; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,829 INFO L280 TraceCheckUtils]: 45: Hoare triple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume true; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,830 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #76#return; {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-17 22:29:45,831 INFO L263 TraceCheckUtils]: 47: Hoare triple {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} call list_del(~dev2~0.base, ~dev2~0.offset); {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:45,832 INFO L280 TraceCheckUtils]: 48: Hoare triple {4261#(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; {4264#(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-17 22:29:45,832 INFO L280 TraceCheckUtils]: 49: Hoare triple {4264#(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); {4265#(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-17 22:29:45,833 INFO L280 TraceCheckUtils]: 50: Hoare triple {4265#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} assume true; {4265#(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-17 22:29:45,833 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {4265#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #78#return; {4204#false} is VALID [2020-07-17 22:29:45,833 INFO L263 TraceCheckUtils]: 52: Hoare triple {4204#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4204#false} is VALID [2020-07-17 22:29:45,834 INFO L280 TraceCheckUtils]: 53: Hoare triple {4204#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4204#false} is VALID [2020-07-17 22:29:45,834 INFO L280 TraceCheckUtils]: 54: Hoare triple {4204#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {4204#false} is VALID [2020-07-17 22:29:45,834 INFO L263 TraceCheckUtils]: 55: Hoare triple {4204#false} call __blast_assert(); {4204#false} is VALID [2020-07-17 22:29:45,834 INFO L280 TraceCheckUtils]: 56: Hoare triple {4204#false} assume !false; {4204#false} is VALID [2020-07-17 22:29:45,837 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-17 22:29:45,837 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [346471022] [2020-07-17 22:29:45,838 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [404652079] [2020-07-17 22:29:45,838 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-17 22:29:45,955 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:45,956 INFO L264 TraceCheckSpWp]: Trace formula consists of 314 conjuncts, 37 conjunts are in the unsatisfiable core [2020-07-17 22:29:45,973 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-17 22:29:45,974 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-17 22:29:46,101 INFO L263 TraceCheckUtils]: 0: Hoare triple {4203#true} call ULTIMATE.init(); {4203#true} is VALID [2020-07-17 22:29:46,102 INFO L280 TraceCheckUtils]: 1: Hoare triple {4203#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); {4203#true} is VALID [2020-07-17 22:29:46,102 INFO L280 TraceCheckUtils]: 2: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:46,102 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4203#true} {4203#true} #86#return; {4203#true} is VALID [2020-07-17 22:29:46,102 INFO L263 TraceCheckUtils]: 4: Hoare triple {4203#true} call #t~ret34 := main(); {4203#true} is VALID [2020-07-17 22:29:46,102 INFO L280 TraceCheckUtils]: 5: Hoare triple {4203#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {4203#true} is VALID [2020-07-17 22:29:46,102 INFO L263 TraceCheckUtils]: 6: Hoare triple {4203#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {4203#true} is VALID [2020-07-17 22:29:46,102 INFO L280 TraceCheckUtils]: 7: Hoare triple {4203#true} ~size := #in~size; {4203#true} is VALID [2020-07-17 22:29:46,103 INFO L263 TraceCheckUtils]: 8: Hoare triple {4203#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4203#true} is VALID [2020-07-17 22:29:46,103 INFO L280 TraceCheckUtils]: 9: Hoare triple {4203#true} ~size := #in~size; {4203#true} is VALID [2020-07-17 22:29:46,103 INFO L280 TraceCheckUtils]: 10: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-17 22:29:46,103 INFO L280 TraceCheckUtils]: 11: Hoare triple {4203#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; {4203#true} is VALID [2020-07-17 22:29:46,103 INFO L280 TraceCheckUtils]: 12: Hoare triple {4203#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4203#true} is VALID [2020-07-17 22:29:46,103 INFO L280 TraceCheckUtils]: 13: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:46,103 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-17 22:29:46,104 INFO L280 TraceCheckUtils]: 15: Hoare triple {4203#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4203#true} is VALID [2020-07-17 22:29:46,104 INFO L280 TraceCheckUtils]: 16: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:46,104 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {4203#true} {4203#true} #70#return; {4203#true} is VALID [2020-07-17 22:29:46,104 INFO L280 TraceCheckUtils]: 18: Hoare triple {4203#true} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {4203#true} is VALID [2020-07-17 22:29:46,104 INFO L263 TraceCheckUtils]: 19: Hoare triple {4203#true} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {4203#true} is VALID [2020-07-17 22:29:46,104 INFO L280 TraceCheckUtils]: 20: Hoare triple {4203#true} ~size := #in~size; {4203#true} is VALID [2020-07-17 22:29:46,104 INFO L263 TraceCheckUtils]: 21: Hoare triple {4203#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4203#true} is VALID [2020-07-17 22:29:46,104 INFO L280 TraceCheckUtils]: 22: Hoare triple {4203#true} ~size := #in~size; {4203#true} is VALID [2020-07-17 22:29:46,104 INFO L280 TraceCheckUtils]: 23: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-17 22:29:46,105 INFO L280 TraceCheckUtils]: 24: Hoare triple {4203#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; {4203#true} is VALID [2020-07-17 22:29:46,105 INFO L280 TraceCheckUtils]: 25: Hoare triple {4203#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4203#true} is VALID [2020-07-17 22:29:46,105 INFO L280 TraceCheckUtils]: 26: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:46,105 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-17 22:29:46,105 INFO L280 TraceCheckUtils]: 28: Hoare triple {4203#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4203#true} is VALID [2020-07-17 22:29:46,105 INFO L280 TraceCheckUtils]: 29: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-17 22:29:46,105 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {4203#true} {4203#true} #72#return; {4203#true} is VALID [2020-07-17 22:29:46,105 INFO L280 TraceCheckUtils]: 31: Hoare triple {4203#true} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {4203#true} is VALID [2020-07-17 22:29:46,106 INFO L280 TraceCheckUtils]: 32: Hoare triple {4203#true} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {4203#true} is VALID [2020-07-17 22:29:46,106 INFO L263 TraceCheckUtils]: 33: Hoare triple {4203#true} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4203#true} is VALID [2020-07-17 22:29:46,106 INFO L280 TraceCheckUtils]: 34: Hoare triple {4203#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4262#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-17 22:29:46,107 INFO L280 TraceCheckUtils]: 35: Hoare triple {4262#(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; {4262#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-17 22:29:46,108 INFO L280 TraceCheckUtils]: 36: Hoare triple {4262#(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; {4262#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-17 22:29:46,108 INFO L280 TraceCheckUtils]: 37: Hoare triple {4262#(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; {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-17 22:29:46,109 INFO L280 TraceCheckUtils]: 38: Hoare triple {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} assume true; {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-17 22:29:46,109 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {4263#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} {4203#true} #74#return; {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-17 22:29:46,110 INFO L263 TraceCheckUtils]: 40: Hoare triple {4236#(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); {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:46,111 INFO L280 TraceCheckUtils]: 41: Hoare triple {4261#(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; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:46,111 INFO L280 TraceCheckUtils]: 42: Hoare triple {4261#(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; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:46,112 INFO L280 TraceCheckUtils]: 43: Hoare triple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:46,112 INFO L280 TraceCheckUtils]: 44: Hoare triple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume !(0 != #t~nondet31);havoc #t~nondet31; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:46,113 INFO L280 TraceCheckUtils]: 45: Hoare triple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume true; {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:46,114 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #76#return; {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-17 22:29:46,115 INFO L263 TraceCheckUtils]: 47: Hoare triple {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} call list_del(~dev2~0.base, ~dev2~0.offset); {4261#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-17 22:29:46,115 INFO L280 TraceCheckUtils]: 48: Hoare triple {4261#(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; {4264#(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-17 22:29:46,116 INFO L280 TraceCheckUtils]: 49: Hoare triple {4264#(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); {4416#(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-17 22:29:46,116 INFO L280 TraceCheckUtils]: 50: Hoare triple {4416#(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; {4416#(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-17 22:29:46,117 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {4416#(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))))} {4236#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #78#return; {4204#false} is VALID [2020-07-17 22:29:46,117 INFO L263 TraceCheckUtils]: 52: Hoare triple {4204#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4204#false} is VALID [2020-07-17 22:29:46,117 INFO L280 TraceCheckUtils]: 53: Hoare triple {4204#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4204#false} is VALID [2020-07-17 22:29:46,118 INFO L280 TraceCheckUtils]: 54: Hoare triple {4204#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {4204#false} is VALID [2020-07-17 22:29:46,118 INFO L263 TraceCheckUtils]: 55: Hoare triple {4204#false} call __blast_assert(); {4204#false} is VALID [2020-07-17 22:29:46,118 INFO L280 TraceCheckUtils]: 56: Hoare triple {4204#false} assume !false; {4204#false} is VALID [2020-07-17 22:29:46,121 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-17 22:29:46,121 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-17 22:29:46,121 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 8] total 11 [2020-07-17 22:29:46,122 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [968529900] [2020-07-17 22:29:46,122 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 57 [2020-07-17 22:29:46,125 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-17 22:29:46,125 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2020-07-17 22:29:46,195 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-17 22:29:46,195 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2020-07-17 22:29:46,195 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-17 22:29:46,196 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2020-07-17 22:29:46,196 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=86, Unknown=0, NotChecked=0, Total=110 [2020-07-17 22:29:46,196 INFO L87 Difference]: Start difference. First operand 47 states and 48 transitions. Second operand 11 states. [2020-07-17 22:29:47,300 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:47,300 INFO L93 Difference]: Finished difference Result 47 states and 48 transitions. [2020-07-17 22:29:47,300 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-17 22:29:47,301 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 57 [2020-07-17 22:29:47,301 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-17 22:29:47,301 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2020-07-17 22:29:47,302 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 44 transitions. [2020-07-17 22:29:47,302 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2020-07-17 22:29:47,303 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 44 transitions. [2020-07-17 22:29:47,303 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 44 transitions. [2020-07-17 22:29:47,386 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-17 22:29:47,387 INFO L225 Difference]: With dead ends: 47 [2020-07-17 22:29:47,387 INFO L226 Difference]: Without dead ends: 0 [2020-07-17 22:29:47,388 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 82 GetRequests, 65 SyntacticMatches, 4 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=50, Invalid=160, Unknown=0, NotChecked=0, Total=210 [2020-07-17 22:29:47,388 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2020-07-17 22:29:47,388 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2020-07-17 22:29:47,388 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-17 22:29:47,389 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand 0 states. [2020-07-17 22:29:47,389 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2020-07-17 22:29:47,389 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2020-07-17 22:29:47,389 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:47,389 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2020-07-17 22:29:47,389 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2020-07-17 22:29:47,390 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:47,390 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:47,390 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2020-07-17 22:29:47,390 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2020-07-17 22:29:47,390 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-17 22:29:47,390 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2020-07-17 22:29:47,391 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2020-07-17 22:29:47,391 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:47,391 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-17 22:29:47,391 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-17 22:29:47,391 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-17 22:29:47,391 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 0 states. [2020-07-17 22:29:47,391 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2020-07-17 22:29:47,391 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 57 [2020-07-17 22:29:47,391 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-17 22:29:47,392 INFO L479 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2020-07-17 22:29:47,392 INFO L480 AbstractCegarLoop]: Interpolant automaton has 11 states. [2020-07-17 22:29:47,392 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2020-07-17 22:29:47,392 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-17 22:29:47,592 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 9 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable9 [2020-07-17 22:29:47,596 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2020-07-17 22:29:47,907 WARN L193 SmtUtils]: Spent 103.00 ms on a formula simplification. DAG size of input: 65 DAG size of output: 24 [2020-07-17 22:29:48,015 WARN L193 SmtUtils]: Spent 100.00 ms on a formula simplification. DAG size of input: 39 DAG size of output: 30 [2020-07-17 22:29:48,144 WARN L193 SmtUtils]: Spent 106.00 ms on a formula simplification. DAG size of input: 56 DAG size of output: 14 [2020-07-17 22:29:48,872 INFO L268 CegarLoopResult]: For program point my_mallocFINAL(lines 878 880) no Hoare annotation was computed. [2020-07-17 22:29:48,872 INFO L264 CegarLoopResult]: At program point L879(line 879) the Hoare annotation is: (or (not (= 8 |my_malloc_#in~size|)) (and (= 8 my_malloc_~size) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))) [2020-07-17 22:29:48,872 INFO L268 CegarLoopResult]: For program point L879-1(line 879) no Hoare annotation was computed. [2020-07-17 22:29:48,873 INFO L264 CegarLoopResult]: At program point my_mallocENTRY(lines 878 880) the Hoare annotation is: (or (not (= 8 |my_malloc_#in~size|)) (and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))) [2020-07-17 22:29:48,873 INFO L268 CegarLoopResult]: For program point my_mallocEXIT(lines 878 880) no Hoare annotation was computed. [2020-07-17 22:29:48,873 INFO L268 CegarLoopResult]: For program point ULTIMATE.initFINAL(line -1) no Hoare annotation was computed. [2020-07-17 22:29:48,873 INFO L264 CegarLoopResult]: At program point ULTIMATE.initENTRY(line -1) the Hoare annotation is: (and (= |#valid| |old(#valid)|) (= |old(#NULL.base)| |#NULL.base|) (= |old(~#head~0.base)| |~#head~0.base|) (= |old(~elem~0.offset)| ~elem~0.offset) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|) (= |old(~elem~0.base)| ~elem~0.base) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)) [2020-07-17 22:29:48,873 INFO L268 CegarLoopResult]: For program point ULTIMATE.initEXIT(line -1) no Hoare annotation was computed. [2020-07-17 22:29:48,873 INFO L268 CegarLoopResult]: For program point L896(lines 896 897) no Hoare annotation was computed. [2020-07-17 22:29:48,873 INFO L268 CegarLoopResult]: For program point L896-2(lines 895 898) no Hoare annotation was computed. [2020-07-17 22:29:48,873 INFO L268 CegarLoopResult]: For program point list_delEXIT(lines 895 898) no Hoare annotation was computed. [2020-07-17 22:29:48,873 INFO L264 CegarLoopResult]: At program point list_delENTRY(lines 895 898) the Hoare annotation is: (and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base)) [2020-07-17 22:29:48,874 INFO L264 CegarLoopResult]: At program point list_addENTRY(lines 889 893) the Hoare annotation is: (let ((.cse0 (and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base)))) (and (or .cse0 (not (<= (+ |list_add_#in~new.offset| 1) |old(~elem~0.offset)|)) (not (<= 1 ~guard_malloc_counter~0.offset))) (or .cse0 (not (<= (+ |old(~elem~0.offset)| 1) |list_add_#in~new.offset|))))) [2020-07-17 22:29:48,874 INFO L268 CegarLoopResult]: For program point L891(lines 891 892) no Hoare annotation was computed. [2020-07-17 22:29:48,874 INFO L268 CegarLoopResult]: For program point L890(line 890) no Hoare annotation was computed. [2020-07-17 22:29:48,874 INFO L268 CegarLoopResult]: For program point L891-2(lines 889 893) no Hoare annotation was computed. [2020-07-17 22:29:48,874 INFO L264 CegarLoopResult]: At program point L890-2(line 890) the Hoare annotation is: (and (not (<= (+ |old(~elem~0.offset)| 1) |list_add_#in~new.offset|)) (or (not (<= (+ |list_add_#in~new.offset| 1) |old(~elem~0.offset)|)) (not (<= 1 ~guard_malloc_counter~0.offset)))) [2020-07-17 22:29:48,874 INFO L268 CegarLoopResult]: For program point L890-3(line 890) no Hoare annotation was computed. [2020-07-17 22:29:48,875 INFO L268 CegarLoopResult]: For program point list_addEXIT(lines 889 893) no Hoare annotation was computed. [2020-07-17 22:29:48,875 INFO L268 CegarLoopResult]: For program point __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION(line 6) no Hoare annotation was computed. [2020-07-17 22:29:48,875 INFO L268 CegarLoopResult]: For program point __blast_assertEXIT(lines 4 7) no Hoare annotation was computed. [2020-07-17 22:29:48,875 INFO L268 CegarLoopResult]: For program point __blast_assertFINAL(lines 4 7) no Hoare annotation was computed. [2020-07-17 22:29:48,875 INFO L271 CegarLoopResult]: At program point __blast_assertENTRY(lines 4 7) the Hoare annotation is: true [2020-07-17 22:29:48,875 INFO L268 CegarLoopResult]: For program point ULTIMATE.startEXIT(line -1) no Hoare annotation was computed. [2020-07-17 22:29:48,875 INFO L264 CegarLoopResult]: At program point L-1(line -1) the Hoare annotation is: (and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset)) [2020-07-17 22:29:48,876 INFO L271 CegarLoopResult]: At program point ULTIMATE.startENTRY(line -1) the Hoare annotation is: true [2020-07-17 22:29:48,876 INFO L268 CegarLoopResult]: For program point ULTIMATE.startFINAL(line -1) no Hoare annotation was computed. [2020-07-17 22:29:48,876 INFO L264 CegarLoopResult]: At program point mainENTRY(lines 902 917) the Hoare annotation is: (or (not (<= 0 |old(~guard_malloc_counter~0.offset)|)) (and (= |old(~elem~0.offset)| ~elem~0.offset) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |old(~elem~0.base)| ~elem~0.base) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)) (not (= |old(~elem~0.offset)| 0))) [2020-07-17 22:29:48,876 INFO L268 CegarLoopResult]: For program point mainEXIT(lines 902 917) no Hoare annotation was computed. [2020-07-17 22:29:48,876 INFO L264 CegarLoopResult]: At program point L909(line 909) the Hoare annotation is: (let ((.cse0 (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))) (or (not (<= 0 |old(~guard_malloc_counter~0.offset)|)) (not (= |old(~elem~0.offset)| 0)) (and .cse0 (<= main_~dev1~0.offset ~guard_malloc_counter~0.offset) (<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset) (<= (+ ~elem~0.offset 1) main_~dev2~0.offset)) (and .cse0 (<= 2 main_~dev2~0.offset) (<= ~elem~0.offset 0)))) [2020-07-17 22:29:48,876 INFO L268 CegarLoopResult]: For program point mainFINAL(lines 902 917) no Hoare annotation was computed. [2020-07-17 22:29:48,876 INFO L264 CegarLoopResult]: At program point L908(line 908) the Hoare annotation is: (let ((.cse1 (<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)) (.cse2 (<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)) (.cse0 (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)) (.cse3 (<= 2 main_~dev2~0.offset))) (or (not (<= 0 |old(~guard_malloc_counter~0.offset)|)) (and .cse0 (= main_~dev2~0.base ~elem~0.base) .cse1 .cse2 .cse3 (= main_~dev2~0.offset ~elem~0.offset)) (not (= |old(~elem~0.offset)| 0)) (and .cse0 .cse1 .cse2 (<= (+ ~elem~0.offset 1) main_~dev2~0.offset)) (and .cse0 .cse3 (<= ~elem~0.offset 0)))) [2020-07-17 22:29:48,877 INFO L264 CegarLoopResult]: At program point L907(line 907) the Hoare annotation is: (or (not (<= 0 |old(~guard_malloc_counter~0.offset)|)) (and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= 1 main_~dev1~0.offset) (<= main_~dev1~0.offset ~guard_malloc_counter~0.offset) (<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset) (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base)) (not (= |old(~elem~0.offset)| 0))) [2020-07-17 22:29:48,877 INFO L268 CegarLoopResult]: For program point L906(lines 906 915) no Hoare annotation was computed. [2020-07-17 22:29:48,877 INFO L264 CegarLoopResult]: At program point L907-1(line 907) the Hoare annotation is: (let ((.cse0 (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)) (.cse1 (<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)) (.cse2 (<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset))) (or (not (<= 0 |old(~guard_malloc_counter~0.offset)|)) (and .cse0 (<= 1 main_~dev1~0.offset) .cse1 .cse2 (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base)) (and .cse0 (= main_~dev2~0.base ~elem~0.base) .cse1 .cse2 (<= 2 main_~dev2~0.offset) (= main_~dev2~0.offset ~elem~0.offset)) (not (= |old(~elem~0.offset)| 0)))) [2020-07-17 22:29:48,877 INFO L264 CegarLoopResult]: At program point L905(line 905) the Hoare annotation is: (or (not (<= 0 |old(~guard_malloc_counter~0.offset)|)) (and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset)) (not (= |old(~elem~0.offset)| 0)) (and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= 1 main_~dev1~0.offset) (<= main_~dev1~0.offset ~guard_malloc_counter~0.offset) (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))) [2020-07-17 22:29:48,877 INFO L268 CegarLoopResult]: For program point L906-1(lines 906 915) no Hoare annotation was computed. [2020-07-17 22:29:48,877 INFO L264 CegarLoopResult]: At program point L904(line 904) the Hoare annotation is: (or (not (<= 0 |old(~guard_malloc_counter~0.offset)|)) (and (= |old(~elem~0.offset)| ~elem~0.offset) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |old(~elem~0.base)| ~elem~0.base) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)) (not (= |old(~elem~0.offset)| 0))) [2020-07-17 22:29:48,877 INFO L268 CegarLoopResult]: For program point L905-1(line 905) no Hoare annotation was computed. [2020-07-17 22:29:48,877 INFO L268 CegarLoopResult]: For program point L904-1(line 904) no Hoare annotation was computed. [2020-07-17 22:29:48,877 INFO L264 CegarLoopResult]: At program point __getMemoryENTRY(lines 869 876) the Hoare annotation is: (or (not (<= 0 |old(~guard_malloc_counter~0.offset)|)) (and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)) (not (= 8 |__getMemory_#in~size|)) (not (= 0 ~elem~0.offset))) [2020-07-17 22:29:48,877 INFO L268 CegarLoopResult]: For program point __getMemoryEXIT(lines 869 876) no Hoare annotation was computed. [2020-07-17 22:29:48,878 INFO L268 CegarLoopResult]: For program point __getMemoryFINAL(lines 869 876) no Hoare annotation was computed. [2020-07-17 22:29:48,878 INFO L268 CegarLoopResult]: For program point L873(lines 873 874) no Hoare annotation was computed. [2020-07-17 22:29:48,878 INFO L268 CegarLoopResult]: For program point L871(line 871) no Hoare annotation was computed. [2020-07-17 22:29:48,878 INFO L264 CegarLoopResult]: At program point L871-2(line 871) the Hoare annotation is: (or (not (<= 0 |old(~guard_malloc_counter~0.offset)|)) (not (= 8 |__getMemory_#in~size|)) (not (= 0 ~elem~0.offset))) [2020-07-17 22:29:48,878 INFO L268 CegarLoopResult]: For program point L871-3(line 871) no Hoare annotation was computed. [2020-07-17 22:29:48,882 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2020-07-17 22:29:48,883 WARN L170 areAnnotationChecker]: L896 has no Hoare annotation [2020-07-17 22:29:48,884 WARN L170 areAnnotationChecker]: __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION has no Hoare annotation [2020-07-17 22:29:48,884 WARN L170 areAnnotationChecker]: __blast_assertFINAL has no Hoare annotation [2020-07-17 22:29:48,884 WARN L170 areAnnotationChecker]: L890 has no Hoare annotation [2020-07-17 22:29:48,884 WARN L170 areAnnotationChecker]: L871 has no Hoare annotation [2020-07-17 22:29:48,885 WARN L170 areAnnotationChecker]: L879-1 has no Hoare annotation [2020-07-17 22:29:48,886 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2020-07-17 22:29:48,886 WARN L170 areAnnotationChecker]: L896 has no Hoare annotation [2020-07-17 22:29:48,886 WARN L170 areAnnotationChecker]: L896 has no Hoare annotation [2020-07-17 22:29:48,886 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2020-07-17 22:29:48,887 WARN L170 areAnnotationChecker]: __blast_assertFINAL has no Hoare annotation [2020-07-17 22:29:48,887 WARN L170 areAnnotationChecker]: L890 has no Hoare annotation [2020-07-17 22:29:48,887 WARN L170 areAnnotationChecker]: L890 has no Hoare annotation [2020-07-17 22:29:48,887 WARN L170 areAnnotationChecker]: L904-1 has no Hoare annotation [2020-07-17 22:29:48,888 WARN L170 areAnnotationChecker]: L871 has no Hoare annotation [2020-07-17 22:29:48,888 WARN L170 areAnnotationChecker]: L871 has no Hoare annotation [2020-07-17 22:29:48,888 WARN L170 areAnnotationChecker]: L879-1 has no Hoare annotation [2020-07-17 22:29:48,888 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2020-07-17 22:29:48,888 WARN L170 areAnnotationChecker]: L896-2 has no Hoare annotation [2020-07-17 22:29:48,888 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2020-07-17 22:29:48,888 WARN L170 areAnnotationChecker]: __blast_assertEXIT has no Hoare annotation [2020-07-17 22:29:48,888 WARN L170 areAnnotationChecker]: __blast_assertEXIT has no Hoare annotation [2020-07-17 22:29:48,888 WARN L170 areAnnotationChecker]: L890-3 has no Hoare annotation [2020-07-17 22:29:48,889 WARN L170 areAnnotationChecker]: L890-3 has no Hoare annotation [2020-07-17 22:29:48,889 WARN L170 areAnnotationChecker]: L904-1 has no Hoare annotation [2020-07-17 22:29:48,889 WARN L170 areAnnotationChecker]: L871-3 has no Hoare annotation [2020-07-17 22:29:48,889 WARN L170 areAnnotationChecker]: L871-3 has no Hoare annotation [2020-07-17 22:29:48,889 WARN L170 areAnnotationChecker]: my_mallocFINAL has no Hoare annotation [2020-07-17 22:29:48,889 WARN L170 areAnnotationChecker]: list_delEXIT has no Hoare annotation [2020-07-17 22:29:48,889 WARN L170 areAnnotationChecker]: L891 has no Hoare annotation [2020-07-17 22:29:48,889 WARN L170 areAnnotationChecker]: L891 has no Hoare annotation [2020-07-17 22:29:48,889 WARN L170 areAnnotationChecker]: L905-1 has no Hoare annotation [2020-07-17 22:29:48,890 WARN L170 areAnnotationChecker]: L873 has no Hoare annotation [2020-07-17 22:29:48,890 WARN L170 areAnnotationChecker]: L873 has no Hoare annotation [2020-07-17 22:29:48,890 WARN L170 areAnnotationChecker]: my_mallocEXIT has no Hoare annotation [2020-07-17 22:29:48,890 WARN L170 areAnnotationChecker]: my_mallocEXIT has no Hoare annotation [2020-07-17 22:29:48,890 WARN L170 areAnnotationChecker]: L906-1 has no Hoare annotation [2020-07-17 22:29:48,892 WARN L170 areAnnotationChecker]: L891-2 has no Hoare annotation [2020-07-17 22:29:48,892 WARN L170 areAnnotationChecker]: L905-1 has no Hoare annotation [2020-07-17 22:29:48,892 WARN L170 areAnnotationChecker]: __getMemoryFINAL has no Hoare annotation [2020-07-17 22:29:48,893 WARN L170 areAnnotationChecker]: L906-1 has no Hoare annotation [2020-07-17 22:29:48,893 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2020-07-17 22:29:48,893 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2020-07-17 22:29:48,893 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2020-07-17 22:29:48,893 WARN L170 areAnnotationChecker]: L906 has no Hoare annotation [2020-07-17 22:29:48,893 WARN L170 areAnnotationChecker]: L906 has no Hoare annotation [2020-07-17 22:29:48,893 WARN L170 areAnnotationChecker]: __getMemoryEXIT has no Hoare annotation [2020-07-17 22:29:48,893 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2020-07-17 22:29:48,896 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2020-07-17 22:29:48,896 INFO L163 areAnnotationChecker]: CFG has 13 edges. 13 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2020-07-17 22:29:48,900 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 17.07 10:29:48 BoogieIcfgContainer [2020-07-17 22:29:48,900 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2020-07-17 22:29:48,902 INFO L168 Benchmark]: Toolchain (without parser) took 43807.37 ms. Allocated memory was 136.8 MB in the beginning and 551.6 MB in the end (delta: 414.7 MB). Free memory was 100.1 MB in the beginning and 381.4 MB in the end (delta: -281.3 MB). Peak memory consumption was 133.4 MB. Max. memory is 7.1 GB. [2020-07-17 22:29:48,903 INFO L168 Benchmark]: CDTParser took 0.19 ms. Allocated memory is still 136.8 MB. Free memory was 119.9 MB in the beginning and 119.7 MB in the end (delta: 210.0 kB). Peak memory consumption was 210.0 kB. Max. memory is 7.1 GB. [2020-07-17 22:29:48,903 INFO L168 Benchmark]: CACSL2BoogieTranslator took 666.38 ms. Allocated memory was 136.8 MB in the beginning and 200.8 MB in the end (delta: 64.0 MB). Free memory was 99.7 MB in the beginning and 164.5 MB in the end (delta: -64.8 MB). Peak memory consumption was 26.5 MB. Max. memory is 7.1 GB. [2020-07-17 22:29:48,904 INFO L168 Benchmark]: Boogie Preprocessor took 67.41 ms. Allocated memory is still 200.8 MB. Free memory was 164.5 MB in the beginning and 161.0 MB in the end (delta: 3.4 MB). Peak memory consumption was 3.4 MB. Max. memory is 7.1 GB. [2020-07-17 22:29:48,905 INFO L168 Benchmark]: RCFGBuilder took 716.45 ms. Allocated memory is still 200.8 MB. Free memory was 161.0 MB in the beginning and 106.3 MB in the end (delta: 54.7 MB). Peak memory consumption was 54.7 MB. Max. memory is 7.1 GB. [2020-07-17 22:29:48,905 INFO L168 Benchmark]: TraceAbstraction took 42350.26 ms. Allocated memory was 200.8 MB in the beginning and 551.6 MB in the end (delta: 350.7 MB). Free memory was 105.6 MB in the beginning and 381.4 MB in the end (delta: -275.8 MB). Peak memory consumption was 75.0 MB. Max. memory is 7.1 GB. [2020-07-17 22:29:48,908 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 0.19 ms. Allocated memory is still 136.8 MB. Free memory was 119.9 MB in the beginning and 119.7 MB in the end (delta: 210.0 kB). Peak memory consumption was 210.0 kB. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 666.38 ms. Allocated memory was 136.8 MB in the beginning and 200.8 MB in the end (delta: 64.0 MB). Free memory was 99.7 MB in the beginning and 164.5 MB in the end (delta: -64.8 MB). Peak memory consumption was 26.5 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 67.41 ms. Allocated memory is still 200.8 MB. Free memory was 164.5 MB in the beginning and 161.0 MB in the end (delta: 3.4 MB). Peak memory consumption was 3.4 MB. Max. memory is 7.1 GB. * RCFGBuilder took 716.45 ms. Allocated memory is still 200.8 MB. Free memory was 161.0 MB in the beginning and 106.3 MB in the end (delta: 54.7 MB). Peak memory consumption was 54.7 MB. Max. memory is 7.1 GB. * TraceAbstraction took 42350.26 ms. Allocated memory was 200.8 MB in the beginning and 551.6 MB in the end (delta: 350.7 MB). Free memory was 105.6 MB in the beginning and 381.4 MB in the end (delta: -275.8 MB). Peak memory consumption was 75.0 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - PositiveResult [Line: 6]: call of __VERIFIER_error() unreachable For all program executions holds that call of __VERIFIER_error() unreachable at this location - AllSpecificationsHoldResult: All specifications hold 1 specifications checked. All of them hold - StatisticsResult: Ultimate Automizer benchmark data CFG has 8 procedures, 47 locations, 1 error locations. Started 1 CEGAR loops. VerificationResult: SAFE, OverallTime: 40.9s, OverallIterations: 10, TraceHistogramMax: 3, AutomataDifference: 26.8s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 1.2s, InitialAbstractionConstructionTime: 0.0s, HoareTripleCheckerStatistics: 353 SDtfs, 466 SDslu, 1109 SDs, 0 SdLazy, 4788 SolverSat, 451 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 9.2s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 721 GetRequests, 437 SyntacticMatches, 6 SemanticMatches, 278 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1340 ImplicationChecksByTransitivity, 7.9s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=57occurred in iteration=7, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s DumpTime, AutomataMinimizationStatistics: 1.1s AutomataMinimizationTime, 10 MinimizatonAttempts, 44 StatesRemovedByMinimization, 9 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 18 LocationsWithAnnotation, 73 PreInvPairs, 84 NumberOfFragments, 426 HoareAnnotationTreeSize, 73 FomulaSimplifications, 2261 FormulaSimplificationTreeSizeReduction, 0.1s HoareSimplificationTime, 18 FomulaSimplificationsInter, 1252 FormulaSimplificationTreeSizeReductionInter, 0.9s HoareSimplificationTimeInter, RefinementEngineStatistics: TRACE_CHECK: 0.1s SsaConstructionTime, 0.5s SatisfiabilityAnalysisTime, 8.7s InterpolantComputationTime, 839 NumberOfCodeBlocks, 839 NumberOfCodeBlocksAsserted, 18 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 correct! Received shutdown request...