/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-8fc6572 [2020-07-10 15:06:01,590 INFO L177 SettingsManager]: Resetting all preferences to default values... [2020-07-10 15:06:01,593 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2020-07-10 15:06:01,611 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2020-07-10 15:06:01,611 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2020-07-10 15:06:01,613 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2020-07-10 15:06:01,615 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2020-07-10 15:06:01,628 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2020-07-10 15:06:01,630 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2020-07-10 15:06:01,631 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2020-07-10 15:06:01,634 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2020-07-10 15:06:01,635 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2020-07-10 15:06:01,635 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2020-07-10 15:06:01,636 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2020-07-10 15:06:01,640 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2020-07-10 15:06:01,642 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2020-07-10 15:06:01,644 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2020-07-10 15:06:01,646 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2020-07-10 15:06:01,648 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2020-07-10 15:06:01,652 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2020-07-10 15:06:01,656 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2020-07-10 15:06:01,657 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2020-07-10 15:06:01,658 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2020-07-10 15:06:01,659 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2020-07-10 15:06:01,663 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2020-07-10 15:06:01,663 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2020-07-10 15:06:01,664 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2020-07-10 15:06:01,667 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2020-07-10 15:06:01,667 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2020-07-10 15:06:01,669 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2020-07-10 15:06:01,669 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2020-07-10 15:06:01,670 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2020-07-10 15:06:01,671 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2020-07-10 15:06:01,672 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2020-07-10 15:06:01,674 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2020-07-10 15:06:01,675 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2020-07-10 15:06:01,677 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2020-07-10 15:06:01,677 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2020-07-10 15:06:01,677 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2020-07-10 15:06:01,678 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2020-07-10 15:06:01,678 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2020-07-10 15:06:01,679 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf [2020-07-10 15:06:01,694 INFO L113 SettingsManager]: Loading preferences was successful [2020-07-10 15:06:01,694 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2020-07-10 15:06:01,695 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2020-07-10 15:06:01,695 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2020-07-10 15:06:01,695 INFO L138 SettingsManager]: * Use SBE=true [2020-07-10 15:06:01,696 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2020-07-10 15:06:01,696 INFO L138 SettingsManager]: * sizeof long=4 [2020-07-10 15:06:01,696 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2020-07-10 15:06:01,696 INFO L138 SettingsManager]: * sizeof POINTER=4 [2020-07-10 15:06:01,696 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2020-07-10 15:06:01,697 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2020-07-10 15:06:01,697 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2020-07-10 15:06:01,697 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2020-07-10 15:06:01,697 INFO L138 SettingsManager]: * sizeof long double=12 [2020-07-10 15:06:01,697 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2020-07-10 15:06:01,697 INFO L138 SettingsManager]: * Use constant arrays=true [2020-07-10 15:06:01,698 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2020-07-10 15:06:01,698 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2020-07-10 15:06:01,698 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2020-07-10 15:06:01,698 INFO L138 SettingsManager]: * To the following directory=./dump/ [2020-07-10 15:06:01,698 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2020-07-10 15:06:01,699 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-10 15:06:01,699 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2020-07-10 15:06:01,699 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2020-07-10 15:06:01,699 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2020-07-10 15:06:01,699 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2020-07-10 15:06:01,700 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2020-07-10 15:06:01,700 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2020-07-10 15:06:01,700 INFO L138 SettingsManager]: * Trace refinement exception blacklist=NONE [2020-07-10 15:06:01,700 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2020-07-10 15:06:02,014 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2020-07-10 15:06:02,027 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2020-07-10 15:06:02,031 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2020-07-10 15:06:02,032 INFO L271 PluginConnector]: Initializing CDTParser... [2020-07-10 15:06:02,032 INFO L275 PluginConnector]: CDTParser initialized [2020-07-10 15:06:02,033 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-10 15:06:02,094 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/8b92f220b/e7094360431f4c36b75dd8b37a640ea2/FLAG4220355c2 [2020-07-10 15:06:02,620 INFO L306 CDTParser]: Found 1 translation units. [2020-07-10 15:06:02,620 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/ldv-regression/rule60_list2.i [2020-07-10 15:06:02,629 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/8b92f220b/e7094360431f4c36b75dd8b37a640ea2/FLAG4220355c2 [2020-07-10 15:06:02,900 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/8b92f220b/e7094360431f4c36b75dd8b37a640ea2 [2020-07-10 15:06:02,908 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2020-07-10 15:06:02,909 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2020-07-10 15:06:02,910 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2020-07-10 15:06:02,910 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2020-07-10 15:06:02,914 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2020-07-10 15:06:02,915 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.07 03:06:02" (1/1) ... [2020-07-10 15:06:02,918 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@78635e9c and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:06:02, skipping insertion in model container [2020-07-10 15:06:02,918 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.07 03:06:02" (1/1) ... [2020-07-10 15:06:02,926 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2020-07-10 15:06:02,974 INFO L178 MainTranslator]: Built tables and reachable declarations [2020-07-10 15:06:03,364 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-10 15:06:03,370 INFO L203 MainTranslator]: Completed pre-run [2020-07-10 15:06:03,411 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-10 15:06:03,500 INFO L208 MainTranslator]: Completed translation [2020-07-10 15:06:03,501 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:06:03 WrapperNode [2020-07-10 15:06:03,501 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2020-07-10 15:06:03,502 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2020-07-10 15:06:03,502 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2020-07-10 15:06:03,502 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2020-07-10 15:06:03,515 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:06:03" (1/1) ... [2020-07-10 15:06:03,517 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:06:03" (1/1) ... [2020-07-10 15:06:03,534 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:06:03" (1/1) ... [2020-07-10 15:06:03,534 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:06:03" (1/1) ... [2020-07-10 15:06:03,554 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:06:03" (1/1) ... [2020-07-10 15:06:03,556 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:06:03" (1/1) ... [2020-07-10 15:06:03,560 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:06:03" (1/1) ... [2020-07-10 15:06:03,567 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2020-07-10 15:06:03,567 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2020-07-10 15:06:03,568 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2020-07-10 15:06:03,568 INFO L275 PluginConnector]: RCFGBuilder initialized [2020-07-10 15:06:03,569 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:06:03" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-10 15:06:03,630 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2020-07-10 15:06:03,631 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2020-07-10 15:06:03,631 INFO L138 BoogieDeclarations]: Found implementation of procedure __blast_assert [2020-07-10 15:06:03,631 INFO L138 BoogieDeclarations]: Found implementation of procedure __getMemory [2020-07-10 15:06:03,631 INFO L138 BoogieDeclarations]: Found implementation of procedure my_malloc [2020-07-10 15:06:03,631 INFO L138 BoogieDeclarations]: Found implementation of procedure list_add [2020-07-10 15:06:03,631 INFO L138 BoogieDeclarations]: Found implementation of procedure list_del [2020-07-10 15:06:03,631 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2020-07-10 15:06:03,632 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_error [2020-07-10 15:06:03,632 INFO L130 BoogieDeclarations]: Found specification of procedure __blast_assert [2020-07-10 15:06:03,632 INFO L130 BoogieDeclarations]: Found specification of procedure __underflow [2020-07-10 15:06:03,632 INFO L130 BoogieDeclarations]: Found specification of procedure __uflow [2020-07-10 15:06:03,632 INFO L130 BoogieDeclarations]: Found specification of procedure __overflow [2020-07-10 15:06:03,632 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_getc [2020-07-10 15:06:03,633 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_putc [2020-07-10 15:06:03,633 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_feof [2020-07-10 15:06:03,633 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_ferror [2020-07-10 15:06:03,633 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_peekc_locked [2020-07-10 15:06:03,633 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_flockfile [2020-07-10 15:06:03,633 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_funlockfile [2020-07-10 15:06:03,634 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_ftrylockfile [2020-07-10 15:06:03,634 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_vfscanf [2020-07-10 15:06:03,634 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_vfprintf [2020-07-10 15:06:03,634 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_padn [2020-07-10 15:06:03,634 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_sgetn [2020-07-10 15:06:03,634 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_seekoff [2020-07-10 15:06:03,634 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_seekpos [2020-07-10 15:06:03,635 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_free_backup_area [2020-07-10 15:06:03,635 INFO L130 BoogieDeclarations]: Found specification of procedure remove [2020-07-10 15:06:03,635 INFO L130 BoogieDeclarations]: Found specification of procedure rename [2020-07-10 15:06:03,635 INFO L130 BoogieDeclarations]: Found specification of procedure renameat [2020-07-10 15:06:03,635 INFO L130 BoogieDeclarations]: Found specification of procedure tmpfile [2020-07-10 15:06:03,635 INFO L130 BoogieDeclarations]: Found specification of procedure tmpnam [2020-07-10 15:06:03,635 INFO L130 BoogieDeclarations]: Found specification of procedure tmpnam_r [2020-07-10 15:06:03,635 INFO L130 BoogieDeclarations]: Found specification of procedure tempnam [2020-07-10 15:06:03,636 INFO L130 BoogieDeclarations]: Found specification of procedure fclose [2020-07-10 15:06:03,636 INFO L130 BoogieDeclarations]: Found specification of procedure fflush [2020-07-10 15:06:03,636 INFO L130 BoogieDeclarations]: Found specification of procedure fflush_unlocked [2020-07-10 15:06:03,636 INFO L130 BoogieDeclarations]: Found specification of procedure fopen [2020-07-10 15:06:03,636 INFO L130 BoogieDeclarations]: Found specification of procedure freopen [2020-07-10 15:06:03,636 INFO L130 BoogieDeclarations]: Found specification of procedure fdopen [2020-07-10 15:06:03,636 INFO L130 BoogieDeclarations]: Found specification of procedure fmemopen [2020-07-10 15:06:03,636 INFO L130 BoogieDeclarations]: Found specification of procedure open_memstream [2020-07-10 15:06:03,636 INFO L130 BoogieDeclarations]: Found specification of procedure setbuf [2020-07-10 15:06:03,637 INFO L130 BoogieDeclarations]: Found specification of procedure setvbuf [2020-07-10 15:06:03,637 INFO L130 BoogieDeclarations]: Found specification of procedure setbuffer [2020-07-10 15:06:03,637 INFO L130 BoogieDeclarations]: Found specification of procedure setlinebuf [2020-07-10 15:06:03,637 INFO L130 BoogieDeclarations]: Found specification of procedure fprintf [2020-07-10 15:06:03,637 INFO L130 BoogieDeclarations]: Found specification of procedure printf [2020-07-10 15:06:03,637 INFO L130 BoogieDeclarations]: Found specification of procedure sprintf [2020-07-10 15:06:03,637 INFO L130 BoogieDeclarations]: Found specification of procedure vfprintf [2020-07-10 15:06:03,637 INFO L130 BoogieDeclarations]: Found specification of procedure vprintf [2020-07-10 15:06:03,637 INFO L130 BoogieDeclarations]: Found specification of procedure vsprintf [2020-07-10 15:06:03,638 INFO L130 BoogieDeclarations]: Found specification of procedure snprintf [2020-07-10 15:06:03,638 INFO L130 BoogieDeclarations]: Found specification of procedure vsnprintf [2020-07-10 15:06:03,638 INFO L130 BoogieDeclarations]: Found specification of procedure vdprintf [2020-07-10 15:06:03,638 INFO L130 BoogieDeclarations]: Found specification of procedure dprintf [2020-07-10 15:06:03,638 INFO L130 BoogieDeclarations]: Found specification of procedure fscanf [2020-07-10 15:06:03,638 INFO L130 BoogieDeclarations]: Found specification of procedure scanf [2020-07-10 15:06:03,638 INFO L130 BoogieDeclarations]: Found specification of procedure sscanf [2020-07-10 15:06:03,639 INFO L130 BoogieDeclarations]: Found specification of procedure vfscanf [2020-07-10 15:06:03,639 INFO L130 BoogieDeclarations]: Found specification of procedure vscanf [2020-07-10 15:06:03,639 INFO L130 BoogieDeclarations]: Found specification of procedure vsscanf [2020-07-10 15:06:03,639 INFO L130 BoogieDeclarations]: Found specification of procedure fgetc [2020-07-10 15:06:03,639 INFO L130 BoogieDeclarations]: Found specification of procedure getc [2020-07-10 15:06:03,639 INFO L130 BoogieDeclarations]: Found specification of procedure getchar [2020-07-10 15:06:03,640 INFO L130 BoogieDeclarations]: Found specification of procedure getc_unlocked [2020-07-10 15:06:03,640 INFO L130 BoogieDeclarations]: Found specification of procedure getchar_unlocked [2020-07-10 15:06:03,640 INFO L130 BoogieDeclarations]: Found specification of procedure fgetc_unlocked [2020-07-10 15:06:03,640 INFO L130 BoogieDeclarations]: Found specification of procedure fputc [2020-07-10 15:06:03,640 INFO L130 BoogieDeclarations]: Found specification of procedure putc [2020-07-10 15:06:03,640 INFO L130 BoogieDeclarations]: Found specification of procedure putchar [2020-07-10 15:06:03,640 INFO L130 BoogieDeclarations]: Found specification of procedure fputc_unlocked [2020-07-10 15:06:03,641 INFO L130 BoogieDeclarations]: Found specification of procedure putc_unlocked [2020-07-10 15:06:03,641 INFO L130 BoogieDeclarations]: Found specification of procedure putchar_unlocked [2020-07-10 15:06:03,641 INFO L130 BoogieDeclarations]: Found specification of procedure getw [2020-07-10 15:06:03,641 INFO L130 BoogieDeclarations]: Found specification of procedure putw [2020-07-10 15:06:03,641 INFO L130 BoogieDeclarations]: Found specification of procedure fgets [2020-07-10 15:06:03,641 INFO L130 BoogieDeclarations]: Found specification of procedure gets [2020-07-10 15:06:03,641 INFO L130 BoogieDeclarations]: Found specification of procedure __getdelim [2020-07-10 15:06:03,642 INFO L130 BoogieDeclarations]: Found specification of procedure getdelim [2020-07-10 15:06:03,642 INFO L130 BoogieDeclarations]: Found specification of procedure getline [2020-07-10 15:06:03,642 INFO L130 BoogieDeclarations]: Found specification of procedure fputs [2020-07-10 15:06:03,642 INFO L130 BoogieDeclarations]: Found specification of procedure puts [2020-07-10 15:06:03,642 INFO L130 BoogieDeclarations]: Found specification of procedure ungetc [2020-07-10 15:06:03,642 INFO L130 BoogieDeclarations]: Found specification of procedure fread [2020-07-10 15:06:03,642 INFO L130 BoogieDeclarations]: Found specification of procedure fwrite [2020-07-10 15:06:03,643 INFO L130 BoogieDeclarations]: Found specification of procedure fread_unlocked [2020-07-10 15:06:03,643 INFO L130 BoogieDeclarations]: Found specification of procedure fwrite_unlocked [2020-07-10 15:06:03,643 INFO L130 BoogieDeclarations]: Found specification of procedure fseek [2020-07-10 15:06:03,643 INFO L130 BoogieDeclarations]: Found specification of procedure ftell [2020-07-10 15:06:03,643 INFO L130 BoogieDeclarations]: Found specification of procedure rewind [2020-07-10 15:06:03,643 INFO L130 BoogieDeclarations]: Found specification of procedure fseeko [2020-07-10 15:06:03,644 INFO L130 BoogieDeclarations]: Found specification of procedure ftello [2020-07-10 15:06:03,644 INFO L130 BoogieDeclarations]: Found specification of procedure fgetpos [2020-07-10 15:06:03,644 INFO L130 BoogieDeclarations]: Found specification of procedure fsetpos [2020-07-10 15:06:03,644 INFO L130 BoogieDeclarations]: Found specification of procedure clearerr [2020-07-10 15:06:03,644 INFO L130 BoogieDeclarations]: Found specification of procedure feof [2020-07-10 15:06:03,644 INFO L130 BoogieDeclarations]: Found specification of procedure ferror [2020-07-10 15:06:03,644 INFO L130 BoogieDeclarations]: Found specification of procedure clearerr_unlocked [2020-07-10 15:06:03,645 INFO L130 BoogieDeclarations]: Found specification of procedure feof_unlocked [2020-07-10 15:06:03,645 INFO L130 BoogieDeclarations]: Found specification of procedure ferror_unlocked [2020-07-10 15:06:03,645 INFO L130 BoogieDeclarations]: Found specification of procedure perror [2020-07-10 15:06:03,645 INFO L130 BoogieDeclarations]: Found specification of procedure fileno [2020-07-10 15:06:03,645 INFO L130 BoogieDeclarations]: Found specification of procedure fileno_unlocked [2020-07-10 15:06:03,645 INFO L130 BoogieDeclarations]: Found specification of procedure popen [2020-07-10 15:06:03,645 INFO L130 BoogieDeclarations]: Found specification of procedure pclose [2020-07-10 15:06:03,646 INFO L130 BoogieDeclarations]: Found specification of procedure ctermid [2020-07-10 15:06:03,646 INFO L130 BoogieDeclarations]: Found specification of procedure flockfile [2020-07-10 15:06:03,646 INFO L130 BoogieDeclarations]: Found specification of procedure ftrylockfile [2020-07-10 15:06:03,646 INFO L130 BoogieDeclarations]: Found specification of procedure funlockfile [2020-07-10 15:06:03,646 INFO L130 BoogieDeclarations]: Found specification of procedure malloc [2020-07-10 15:06:03,646 INFO L130 BoogieDeclarations]: Found specification of procedure calloc [2020-07-10 15:06:03,647 INFO L130 BoogieDeclarations]: Found specification of procedure realloc [2020-07-10 15:06:03,647 INFO L130 BoogieDeclarations]: Found specification of procedure free [2020-07-10 15:06:03,647 INFO L130 BoogieDeclarations]: Found specification of procedure cfree [2020-07-10 15:06:03,647 INFO L130 BoogieDeclarations]: Found specification of procedure memalign [2020-07-10 15:06:03,647 INFO L130 BoogieDeclarations]: Found specification of procedure valloc [2020-07-10 15:06:03,647 INFO L130 BoogieDeclarations]: Found specification of procedure pvalloc [2020-07-10 15:06:03,647 INFO L130 BoogieDeclarations]: Found specification of procedure __default_morecore [2020-07-10 15:06:03,648 INFO L130 BoogieDeclarations]: Found specification of procedure mallinfo [2020-07-10 15:06:03,648 INFO L130 BoogieDeclarations]: Found specification of procedure mallopt [2020-07-10 15:06:03,648 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_trim [2020-07-10 15:06:03,648 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_usable_size [2020-07-10 15:06:03,648 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_stats [2020-07-10 15:06:03,648 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_info [2020-07-10 15:06:03,648 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_get_state [2020-07-10 15:06:03,649 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_set_state [2020-07-10 15:06:03,649 INFO L130 BoogieDeclarations]: Found specification of procedure __malloc_check_init [2020-07-10 15:06:03,649 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2020-07-10 15:06:03,649 INFO L130 BoogieDeclarations]: Found specification of procedure __getMemory [2020-07-10 15:06:03,649 INFO L130 BoogieDeclarations]: Found specification of procedure my_malloc [2020-07-10 15:06:03,649 INFO L130 BoogieDeclarations]: Found specification of procedure list_add [2020-07-10 15:06:03,650 INFO L130 BoogieDeclarations]: Found specification of procedure list_del [2020-07-10 15:06:03,650 INFO L130 BoogieDeclarations]: Found specification of procedure main [2020-07-10 15:06:03,650 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2020-07-10 15:06:03,650 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2020-07-10 15:06:03,650 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2020-07-10 15:06:03,650 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2020-07-10 15:06:03,650 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2020-07-10 15:06:03,651 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2020-07-10 15:06:03,651 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2020-07-10 15:06:04,246 INFO L290 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2020-07-10 15:06:04,246 INFO L295 CfgBuilder]: Removed 0 assume(true) statements. [2020-07-10 15:06:04,250 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.07 03:06:04 BoogieIcfgContainer [2020-07-10 15:06:04,250 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2020-07-10 15:06:04,252 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2020-07-10 15:06:04,252 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2020-07-10 15:06:04,255 INFO L275 PluginConnector]: TraceAbstraction initialized [2020-07-10 15:06:04,255 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 10.07 03:06:02" (1/3) ... [2020-07-10 15:06:04,256 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@1d2e74bd and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 10.07 03:06:04, skipping insertion in model container [2020-07-10 15:06:04,257 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:06:03" (2/3) ... [2020-07-10 15:06:04,257 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@1d2e74bd and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 10.07 03:06:04, skipping insertion in model container [2020-07-10 15:06:04,257 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.07 03:06:04" (3/3) ... [2020-07-10 15:06:04,259 INFO L109 eAbstractionObserver]: Analyzing ICFG rule60_list2.i [2020-07-10 15:06:04,270 INFO L157 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2020-07-10 15:06:04,277 INFO L169 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2020-07-10 15:06:04,291 INFO L251 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2020-07-10 15:06:04,310 INFO L375 AbstractCegarLoop]: Interprodecural is true [2020-07-10 15:06:04,310 INFO L376 AbstractCegarLoop]: Hoare is true [2020-07-10 15:06:04,310 INFO L377 AbstractCegarLoop]: Compute interpolants for FPandBP [2020-07-10 15:06:04,310 INFO L378 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2020-07-10 15:06:04,311 INFO L379 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2020-07-10 15:06:04,311 INFO L380 AbstractCegarLoop]: Difference is false [2020-07-10 15:06:04,311 INFO L381 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2020-07-10 15:06:04,311 INFO L385 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2020-07-10 15:06:04,328 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states. [2020-07-10 15:06:04,333 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 14 [2020-07-10 15:06:04,333 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:04,335 INFO L422 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:04,335 INFO L427 AbstractCegarLoop]: === Iteration 1 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:04,341 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:04,342 INFO L82 PathProgramCache]: Analyzing trace with hash 1135050545, now seen corresponding path program 1 times [2020-07-10 15:06:04,352 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:04,353 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1619545045] [2020-07-10 15:06:04,353 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:04,484 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:04,682 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:04,703 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-10 15:06:04,704 INFO L280 TraceCheckUtils]: 1: Hoare triple {50#true} assume true; {50#true} is VALID [2020-07-10 15:06:04,704 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {50#true} {50#true} #86#return; {50#true} is VALID [2020-07-10 15:06:04,708 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-10 15:06:04,709 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-10 15:06:04,709 INFO L280 TraceCheckUtils]: 2: Hoare triple {50#true} assume true; {50#true} is VALID [2020-07-10 15:06:04,710 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {50#true} {50#true} #86#return; {50#true} is VALID [2020-07-10 15:06:04,710 INFO L263 TraceCheckUtils]: 4: Hoare triple {50#true} call #t~ret34 := main(); {50#true} is VALID [2020-07-10 15:06:04,710 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-10 15:06:04,712 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-10 15:06:04,713 INFO L280 TraceCheckUtils]: 7: Hoare triple {55#(= 8 |my_malloc_#in~size|)} ~size := #in~size; {56#(= 8 my_malloc_~size)} is VALID [2020-07-10 15:06:04,714 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-10 15:06:04,715 INFO L280 TraceCheckUtils]: 9: Hoare triple {57#(= 8 |__getMemory_#in~size|)} ~size := #in~size; {58#(= 8 __getMemory_~size)} is VALID [2020-07-10 15:06:04,716 INFO L280 TraceCheckUtils]: 10: Hoare triple {58#(= 8 __getMemory_~size)} assume !(~size > 0); {51#false} is VALID [2020-07-10 15:06:04,716 INFO L263 TraceCheckUtils]: 11: Hoare triple {51#false} call __blast_assert(); {51#false} is VALID [2020-07-10 15:06:04,716 INFO L280 TraceCheckUtils]: 12: Hoare triple {51#false} assume !false; {51#false} is VALID [2020-07-10 15:06:04,719 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-10 15:06:04,719 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1619545045] [2020-07-10 15:06:04,720 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-10 15:06:04,721 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2020-07-10 15:06:04,721 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1320758971] [2020-07-10 15:06:04,730 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 13 [2020-07-10 15:06:04,733 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:04,737 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2020-07-10 15:06:04,773 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 13 edges. 13 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:04,773 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2020-07-10 15:06:04,773 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:04,783 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2020-07-10 15:06:04,783 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2020-07-10 15:06:04,786 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 7 states. [2020-07-10 15:06:05,798 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:05,799 INFO L93 Difference]: Finished difference Result 88 states and 113 transitions. [2020-07-10 15:06:05,799 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-10 15:06:05,799 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 13 [2020-07-10 15:06:05,799 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:05,801 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-10 15:06:05,814 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 113 transitions. [2020-07-10 15:06:05,814 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-10 15:06:05,822 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 113 transitions. [2020-07-10 15:06:05,822 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 113 transitions. [2020-07-10 15:06:05,990 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-10 15:06:06,003 INFO L225 Difference]: With dead ends: 88 [2020-07-10 15:06:06,003 INFO L226 Difference]: Without dead ends: 43 [2020-07-10 15:06:06,007 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 13 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=41, Invalid=115, Unknown=0, NotChecked=0, Total=156 [2020-07-10 15:06:06,025 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2020-07-10 15:06:06,099 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 39. [2020-07-10 15:06:06,099 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:06,099 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 39 states. [2020-07-10 15:06:06,100 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 39 states. [2020-07-10 15:06:06,100 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 39 states. [2020-07-10 15:06:06,106 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:06,106 INFO L93 Difference]: Finished difference Result 43 states and 49 transitions. [2020-07-10 15:06:06,107 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 49 transitions. [2020-07-10 15:06:06,108 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:06,108 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:06,108 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 43 states. [2020-07-10 15:06:06,108 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 43 states. [2020-07-10 15:06:06,113 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:06,114 INFO L93 Difference]: Finished difference Result 43 states and 49 transitions. [2020-07-10 15:06:06,114 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 49 transitions. [2020-07-10 15:06:06,115 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:06,115 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:06,115 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:06,116 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:06,116 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2020-07-10 15:06:06,119 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 44 transitions. [2020-07-10 15:06:06,121 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 44 transitions. Word has length 13 [2020-07-10 15:06:06,121 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:06,121 INFO L479 AbstractCegarLoop]: Abstraction has 39 states and 44 transitions. [2020-07-10 15:06:06,121 INFO L480 AbstractCegarLoop]: Interpolant automaton has 7 states. [2020-07-10 15:06:06,121 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 44 transitions. [2020-07-10 15:06:06,123 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2020-07-10 15:06:06,123 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:06,123 INFO L422 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:06,124 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2020-07-10 15:06:06,124 INFO L427 AbstractCegarLoop]: === Iteration 2 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:06,124 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:06,124 INFO L82 PathProgramCache]: Analyzing trace with hash -925661111, now seen corresponding path program 1 times [2020-07-10 15:06:06,125 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:06,125 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1083525375] [2020-07-10 15:06:06,125 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:06,167 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:06,290 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:06,299 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-10 15:06:06,299 INFO L280 TraceCheckUtils]: 1: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-10 15:06:06,299 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {334#true} {334#true} #86#return; {334#true} is VALID [2020-07-10 15:06:06,320 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:06,403 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:06,438 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-10 15:06:06,438 INFO L280 TraceCheckUtils]: 1: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-10 15:06:06,439 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-10 15:06:06,440 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-10 15:06:06,440 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-10 15:06:06,442 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-10 15:06:06,442 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-10 15:06:06,443 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-10 15:06:06,444 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-10 15:06:06,444 INFO L280 TraceCheckUtils]: 3: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-10 15:06:06,444 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-10 15:06:06,445 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-10 15:06:06,446 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-10 15:06:06,447 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-10 15:06:06,448 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-10 15:06:06,449 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-10 15:06:06,450 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-10 15:06:06,458 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:06,471 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:06,476 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-10 15:06:06,477 INFO L280 TraceCheckUtils]: 1: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-10 15:06:06,477 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-10 15:06:06,477 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-10 15:06:06,478 INFO L280 TraceCheckUtils]: 4: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-10 15:06:06,478 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {334#true} {334#true} #68#return; {334#true} is VALID [2020-07-10 15:06:06,478 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-10 15:06:06,480 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-10 15:06:06,480 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-10 15:06:06,480 INFO L280 TraceCheckUtils]: 3: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-10 15:06:06,480 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-10 15:06:06,481 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-10 15:06:06,481 INFO L280 TraceCheckUtils]: 6: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-10 15:06:06,481 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {334#true} {334#true} #68#return; {334#true} is VALID [2020-07-10 15:06:06,482 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-10 15:06:06,482 INFO L280 TraceCheckUtils]: 9: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-10 15:06:06,483 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-10 15:06:06,485 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-10 15:06:06,485 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-10 15:06:06,485 INFO L280 TraceCheckUtils]: 2: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-10 15:06:06,486 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {334#true} {334#true} #86#return; {334#true} is VALID [2020-07-10 15:06:06,486 INFO L263 TraceCheckUtils]: 4: Hoare triple {334#true} call #t~ret34 := main(); {334#true} is VALID [2020-07-10 15:06:06,486 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-10 15:06:06,487 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-10 15:06:06,487 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-10 15:06:06,488 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-10 15:06:06,489 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-10 15:06:06,489 INFO L280 TraceCheckUtils]: 10: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-10 15:06:06,489 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-10 15:06:06,490 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-10 15:06:06,491 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-10 15:06:06,492 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-10 15:06:06,493 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-10 15:06:06,494 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-10 15:06:06,495 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-10 15:06:06,496 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-10 15:06:06,497 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-10 15:06:06,497 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-10 15:06:06,498 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-10 15:06:06,499 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-10 15:06:06,499 INFO L280 TraceCheckUtils]: 23: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-10 15:06:06,499 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-10 15:06:06,499 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-10 15:06:06,500 INFO L280 TraceCheckUtils]: 26: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-10 15:06:06,500 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {334#true} {334#true} #68#return; {334#true} is VALID [2020-07-10 15:06:06,500 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-10 15:06:06,501 INFO L280 TraceCheckUtils]: 29: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-10 15:06:06,502 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-10 15:06:06,503 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-10 15:06:06,503 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-10 15:06:06,504 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-10 15:06:06,504 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-10 15:06:06,504 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-10 15:06:06,505 INFO L263 TraceCheckUtils]: 36: Hoare triple {335#false} call __blast_assert(); {335#false} is VALID [2020-07-10 15:06:06,505 INFO L280 TraceCheckUtils]: 37: Hoare triple {335#false} assume !false; {335#false} is VALID [2020-07-10 15:06:06,509 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-10 15:06:06,510 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1083525375] [2020-07-10 15:06:06,510 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [807082294] [2020-07-10 15:06:06,510 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:06,624 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:06,627 INFO L264 TraceCheckSpWp]: Trace formula consists of 232 conjuncts, 21 conjunts are in the unsatisfiable core [2020-07-10 15:06:06,652 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:06,657 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:06,767 INFO L263 TraceCheckUtils]: 0: Hoare triple {334#true} call ULTIMATE.init(); {334#true} is VALID [2020-07-10 15:06:06,767 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-10 15:06:06,768 INFO L280 TraceCheckUtils]: 2: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-10 15:06:06,768 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {334#true} {334#true} #86#return; {334#true} is VALID [2020-07-10 15:06:06,768 INFO L263 TraceCheckUtils]: 4: Hoare triple {334#true} call #t~ret34 := main(); {334#true} is VALID [2020-07-10 15:06:06,768 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-10 15:06:06,769 INFO L263 TraceCheckUtils]: 6: Hoare triple {334#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {334#true} is VALID [2020-07-10 15:06:06,769 INFO L280 TraceCheckUtils]: 7: Hoare triple {334#true} ~size := #in~size; {334#true} is VALID [2020-07-10 15:06:06,769 INFO L263 TraceCheckUtils]: 8: Hoare triple {334#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {334#true} is VALID [2020-07-10 15:06:06,770 INFO L280 TraceCheckUtils]: 9: Hoare triple {334#true} ~size := #in~size; {334#true} is VALID [2020-07-10 15:06:06,770 INFO L280 TraceCheckUtils]: 10: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-10 15:06:06,770 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-10 15:06:06,771 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-10 15:06:06,772 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-10 15:06:06,773 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-10 15:06:06,774 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-10 15:06:06,775 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-10 15:06:06,776 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-10 15:06:06,777 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-10 15:06:06,777 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-10 15:06:06,778 INFO L280 TraceCheckUtils]: 20: Hoare triple {334#true} ~size := #in~size; {334#true} is VALID [2020-07-10 15:06:06,778 INFO L263 TraceCheckUtils]: 21: Hoare triple {334#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {334#true} is VALID [2020-07-10 15:06:06,778 INFO L280 TraceCheckUtils]: 22: Hoare triple {334#true} ~size := #in~size; {334#true} is VALID [2020-07-10 15:06:06,778 INFO L280 TraceCheckUtils]: 23: Hoare triple {334#true} assume ~size > 0; {334#true} is VALID [2020-07-10 15:06:06,779 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-10 15:06:06,779 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-10 15:06:06,779 INFO L280 TraceCheckUtils]: 26: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-10 15:06:06,780 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {334#true} {334#true} #68#return; {334#true} is VALID [2020-07-10 15:06:06,780 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-10 15:06:06,780 INFO L280 TraceCheckUtils]: 29: Hoare triple {334#true} assume true; {334#true} is VALID [2020-07-10 15:06:06,781 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-10 15:06:06,782 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-10 15:06:06,783 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-10 15:06:06,783 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-10 15:06:06,784 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-10 15:06:06,784 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-10 15:06:06,784 INFO L263 TraceCheckUtils]: 36: Hoare triple {335#false} call __blast_assert(); {335#false} is VALID [2020-07-10 15:06:06,784 INFO L280 TraceCheckUtils]: 37: Hoare triple {335#false} assume !false; {335#false} is VALID [2020-07-10 15:06:06,787 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-10 15:06:06,787 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:06:06,788 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 7] total 9 [2020-07-10 15:06:06,789 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [441322326] [2020-07-10 15:06:06,790 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-10 15:06:06,795 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:06,795 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2020-07-10 15:06:06,839 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:06,839 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2020-07-10 15:06:06,839 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:06,840 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2020-07-10 15:06:06,840 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=16, Invalid=56, Unknown=0, NotChecked=0, Total=72 [2020-07-10 15:06:06,840 INFO L87 Difference]: Start difference. First operand 39 states and 44 transitions. Second operand 9 states. [2020-07-10 15:06:07,727 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:07,729 INFO L93 Difference]: Finished difference Result 69 states and 81 transitions. [2020-07-10 15:06:07,730 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-10 15:06:07,730 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-10 15:06:07,730 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:07,730 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-10 15:06:07,737 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 81 transitions. [2020-07-10 15:06:07,737 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-10 15:06:07,743 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 81 transitions. [2020-07-10 15:06:07,744 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 81 transitions. [2020-07-10 15:06:07,866 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 81 edges. 81 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:07,869 INFO L225 Difference]: With dead ends: 69 [2020-07-10 15:06:07,870 INFO L226 Difference]: Without dead ends: 48 [2020-07-10 15:06:07,872 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 54 GetRequests, 45 SyntacticMatches, 2 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 4 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=16, Invalid=56, Unknown=0, NotChecked=0, Total=72 [2020-07-10 15:06:07,872 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2020-07-10 15:06:07,935 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 44. [2020-07-10 15:06:07,936 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:07,936 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 44 states. [2020-07-10 15:06:07,936 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 44 states. [2020-07-10 15:06:07,936 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 44 states. [2020-07-10 15:06:07,941 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:07,942 INFO L93 Difference]: Finished difference Result 48 states and 54 transitions. [2020-07-10 15:06:07,942 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 54 transitions. [2020-07-10 15:06:07,943 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:07,943 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:07,943 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 48 states. [2020-07-10 15:06:07,944 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 48 states. [2020-07-10 15:06:07,948 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:07,949 INFO L93 Difference]: Finished difference Result 48 states and 54 transitions. [2020-07-10 15:06:07,949 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 54 transitions. [2020-07-10 15:06:07,950 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:07,950 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:07,950 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:07,950 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:07,951 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 44 states. [2020-07-10 15:06:07,954 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 49 transitions. [2020-07-10 15:06:07,954 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 49 transitions. Word has length 38 [2020-07-10 15:06:07,954 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:07,955 INFO L479 AbstractCegarLoop]: Abstraction has 44 states and 49 transitions. [2020-07-10 15:06:07,955 INFO L480 AbstractCegarLoop]: Interpolant automaton has 9 states. [2020-07-10 15:06:07,955 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 49 transitions. [2020-07-10 15:06:07,956 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2020-07-10 15:06:07,956 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:07,957 INFO L422 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:08,171 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable1 [2020-07-10 15:06:08,172 INFO L427 AbstractCegarLoop]: === Iteration 3 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:08,172 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:08,173 INFO L82 PathProgramCache]: Analyzing trace with hash -894641304, now seen corresponding path program 1 times [2020-07-10 15:06:08,173 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:08,174 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2143620295] [2020-07-10 15:06:08,174 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:08,206 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:08,335 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:08,357 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-10 15:06:08,357 INFO L280 TraceCheckUtils]: 1: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-10 15:06:08,357 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {745#true} {745#true} #86#return; {745#true} is VALID [2020-07-10 15:06:08,369 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:08,378 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:08,385 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-10 15:06:08,385 INFO L280 TraceCheckUtils]: 1: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-10 15:06:08,386 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-10 15:06:08,386 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-10 15:06:08,387 INFO L280 TraceCheckUtils]: 4: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-10 15:06:08,387 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {745#true} {745#true} #68#return; {745#true} is VALID [2020-07-10 15:06:08,387 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-10 15:06:08,389 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-10 15:06:08,389 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-10 15:06:08,389 INFO L280 TraceCheckUtils]: 3: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-10 15:06:08,389 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-10 15:06:08,389 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-10 15:06:08,390 INFO L280 TraceCheckUtils]: 6: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-10 15:06:08,390 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {745#true} {745#true} #68#return; {745#true} is VALID [2020-07-10 15:06:08,390 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-10 15:06:08,390 INFO L280 TraceCheckUtils]: 9: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-10 15:06:08,390 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {745#true} {745#true} #70#return; {745#true} is VALID [2020-07-10 15:06:08,396 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:08,462 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:08,492 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-10 15:06:08,492 INFO L280 TraceCheckUtils]: 1: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-10 15:06:08,492 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-10 15:06:08,493 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-10 15:06:08,494 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-10 15:06:08,495 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-10 15:06:08,496 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-10 15:06:08,496 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-10 15:06:08,497 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-10 15:06:08,497 INFO L280 TraceCheckUtils]: 3: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-10 15:06:08,497 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-10 15:06:08,498 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-10 15:06:08,499 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-10 15:06:08,500 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-10 15:06:08,501 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-10 15:06:08,501 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-10 15:06:08,503 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-10 15:06:08,504 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-10 15:06:08,505 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-10 15:06:08,505 INFO L280 TraceCheckUtils]: 2: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-10 15:06:08,505 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {745#true} {745#true} #86#return; {745#true} is VALID [2020-07-10 15:06:08,505 INFO L263 TraceCheckUtils]: 4: Hoare triple {745#true} call #t~ret34 := main(); {745#true} is VALID [2020-07-10 15:06:08,506 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-10 15:06:08,506 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-10 15:06:08,507 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-10 15:06:08,507 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-10 15:06:08,508 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-10 15:06:08,508 INFO L280 TraceCheckUtils]: 10: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-10 15:06:08,508 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-10 15:06:08,508 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-10 15:06:08,509 INFO L280 TraceCheckUtils]: 13: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-10 15:06:08,509 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {745#true} {745#true} #68#return; {745#true} is VALID [2020-07-10 15:06:08,509 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-10 15:06:08,509 INFO L280 TraceCheckUtils]: 16: Hoare triple {745#true} assume true; {745#true} is VALID [2020-07-10 15:06:08,510 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {745#true} {745#true} #70#return; {745#true} is VALID [2020-07-10 15:06:08,510 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-10 15:06:08,511 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-10 15:06:08,511 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-10 15:06:08,512 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-10 15:06:08,512 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-10 15:06:08,512 INFO L280 TraceCheckUtils]: 23: Hoare triple {745#true} assume ~size > 0; {745#true} is VALID [2020-07-10 15:06:08,513 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-10 15:06:08,513 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-10 15:06:08,514 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-10 15:06:08,515 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-10 15:06:08,516 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-10 15:06:08,517 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-10 15:06:08,518 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-10 15:06:08,519 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-10 15:06:08,520 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-10 15:06:08,520 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-10 15:06:08,520 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-10 15:06:08,521 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-10 15:06:08,521 INFO L263 TraceCheckUtils]: 36: Hoare triple {746#false} call __blast_assert(); {746#false} is VALID [2020-07-10 15:06:08,521 INFO L280 TraceCheckUtils]: 37: Hoare triple {746#false} assume !false; {746#false} is VALID [2020-07-10 15:06:08,524 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 5 proven. 0 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-10 15:06:08,524 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2143620295] [2020-07-10 15:06:08,524 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-10 15:06:08,524 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2020-07-10 15:06:08,525 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [617072692] [2020-07-10 15:06:08,525 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-10 15:06:08,525 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:08,526 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2020-07-10 15:06:08,561 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:08,561 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2020-07-10 15:06:08,562 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:08,562 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2020-07-10 15:06:08,562 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=16, Invalid=56, Unknown=0, NotChecked=0, Total=72 [2020-07-10 15:06:08,562 INFO L87 Difference]: Start difference. First operand 44 states and 49 transitions. Second operand 9 states. [2020-07-10 15:06:09,324 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:09,324 INFO L93 Difference]: Finished difference Result 67 states and 76 transitions. [2020-07-10 15:06:09,324 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-10 15:06:09,325 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-10 15:06:09,325 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:09,325 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-10 15:06:09,328 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 76 transitions. [2020-07-10 15:06:09,328 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-10 15:06:09,334 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 76 transitions. [2020-07-10 15:06:09,334 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 76 transitions. [2020-07-10 15:06:09,448 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 76 edges. 76 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:09,451 INFO L225 Difference]: With dead ends: 67 [2020-07-10 15:06:09,451 INFO L226 Difference]: Without dead ends: 43 [2020-07-10 15:06:09,451 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 10 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 3 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=16, Invalid=56, Unknown=0, NotChecked=0, Total=72 [2020-07-10 15:06:09,452 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2020-07-10 15:06:09,500 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 39. [2020-07-10 15:06:09,500 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:09,500 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 39 states. [2020-07-10 15:06:09,500 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 39 states. [2020-07-10 15:06:09,500 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 39 states. [2020-07-10 15:06:09,504 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:09,505 INFO L93 Difference]: Finished difference Result 43 states and 48 transitions. [2020-07-10 15:06:09,505 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 48 transitions. [2020-07-10 15:06:09,506 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:09,506 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:09,506 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 43 states. [2020-07-10 15:06:09,506 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 43 states. [2020-07-10 15:06:09,509 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:09,509 INFO L93 Difference]: Finished difference Result 43 states and 48 transitions. [2020-07-10 15:06:09,509 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 48 transitions. [2020-07-10 15:06:09,510 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:09,510 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:09,511 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:09,511 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:09,511 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2020-07-10 15:06:09,513 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 43 transitions. [2020-07-10 15:06:09,513 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 43 transitions. Word has length 38 [2020-07-10 15:06:09,513 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:09,514 INFO L479 AbstractCegarLoop]: Abstraction has 39 states and 43 transitions. [2020-07-10 15:06:09,514 INFO L480 AbstractCegarLoop]: Interpolant automaton has 9 states. [2020-07-10 15:06:09,514 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 43 transitions. [2020-07-10 15:06:09,515 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2020-07-10 15:06:09,515 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:09,515 INFO L422 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:09,515 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2020-07-10 15:06:09,516 INFO L427 AbstractCegarLoop]: === Iteration 4 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:09,516 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:09,516 INFO L82 PathProgramCache]: Analyzing trace with hash -1188044311, now seen corresponding path program 1 times [2020-07-10 15:06:09,516 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:09,517 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1252271788] [2020-07-10 15:06:09,517 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:09,552 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:09,715 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:09,740 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-10 15:06:09,741 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-10 15:06:09,745 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-10 15:06:09,762 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:09,799 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:09,812 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-10 15:06:09,812 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-10 15:06:09,813 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-10 15:06:09,814 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-10 15:06:09,815 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-10 15:06:09,816 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-10 15:06:09,816 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-10 15:06:09,818 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-10 15:06:09,818 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-10 15:06:09,819 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-10 15:06:09,819 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-10 15:06:09,820 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-10 15:06:09,821 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-10 15:06:09,822 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-10 15:06:09,822 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-10 15:06:09,823 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-10 15:06:09,824 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-10 15:06:09,828 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:09,880 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:09,919 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-10 15:06:09,919 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-10 15:06:09,920 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-10 15:06:09,921 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-10 15:06:09,921 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-10 15:06:09,923 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-10 15:06:09,924 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-10 15:06:09,925 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-10 15:06:09,926 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-10 15:06:09,927 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-10 15:06:09,928 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-10 15:06:09,929 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-10 15:06:09,930 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-10 15:06:09,931 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-10 15:06:09,932 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-10 15:06:09,933 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-10 15:06:09,934 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-10 15:06:09,938 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-10 15:06:09,940 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-10 15:06:09,941 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-10 15:06:09,942 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-10 15:06:09,942 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-10 15:06:09,943 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-10 15:06:09,944 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-10 15:06:09,945 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-10 15:06:09,946 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-10 15:06:09,947 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-10 15:06:09,953 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-10 15:06:09,954 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-10 15:06:09,956 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-10 15:06:09,960 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-10 15:06:09,965 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-10 15:06:09,966 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-10 15:06:09,967 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-10 15:06:09,969 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-10 15:06:09,970 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-10 15:06:09,971 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-10 15:06:09,971 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-10 15:06:09,973 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-10 15:06:09,973 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-10 15:06:09,974 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-10 15:06:09,974 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-10 15:06:09,975 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-10 15:06:09,976 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-10 15:06:09,978 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-10 15:06:09,979 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-10 15:06:09,979 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-10 15:06:09,981 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-10 15:06:09,985 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-10 15:06:09,985 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-10 15:06:09,987 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-10 15:06:09,988 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-10 15:06:09,990 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-10 15:06:09,990 INFO L263 TraceCheckUtils]: 36: Hoare triple {1028#false} call __blast_assert(); {1028#false} is VALID [2020-07-10 15:06:09,990 INFO L280 TraceCheckUtils]: 37: Hoare triple {1028#false} assume !false; {1028#false} is VALID [2020-07-10 15:06:09,993 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-10 15:06:09,993 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1252271788] [2020-07-10 15:06:09,994 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1433483569] [2020-07-10 15:06:09,994 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:10,114 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:10,115 INFO L264 TraceCheckSpWp]: Trace formula consists of 230 conjuncts, 26 conjunts are in the unsatisfiable core [2020-07-10 15:06:10,133 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:10,136 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:10,689 INFO L263 TraceCheckUtils]: 0: Hoare triple {1027#true} call ULTIMATE.init(); {1027#true} is VALID [2020-07-10 15:06:10,690 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-10 15:06:10,690 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-10 15:06:10,691 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-10 15:06:10,691 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-10 15:06:10,692 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-10 15:06:10,693 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-10 15:06:10,693 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-10 15:06:10,694 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-10 15:06:10,694 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-10 15:06:10,695 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-10 15:06:10,696 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-10 15:06:10,697 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-10 15:06:10,697 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-10 15:06:10,698 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-10 15:06:10,699 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-10 15:06:10,699 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-10 15:06:10,703 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-10 15:06:10,704 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-10 15:06:10,705 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-10 15:06:10,705 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-10 15:06:10,706 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-10 15:06:10,707 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-10 15:06:10,707 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-10 15:06:10,709 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-10 15:06:10,710 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-10 15:06:10,710 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-10 15:06:10,711 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-10 15:06:10,712 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-10 15:06:10,713 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-10 15:06:10,714 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-10 15:06:10,715 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-10 15:06:10,715 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-10 15:06:10,716 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-10 15:06:10,717 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-10 15:06:10,717 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-10 15:06:10,717 INFO L263 TraceCheckUtils]: 36: Hoare triple {1028#false} call __blast_assert(); {1028#false} is VALID [2020-07-10 15:06:10,718 INFO L280 TraceCheckUtils]: 37: Hoare triple {1028#false} assume !false; {1028#false} is VALID [2020-07-10 15:06:10,721 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 5 proven. 0 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-10 15:06:10,721 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2020-07-10 15:06:10,721 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [14] total 26 [2020-07-10 15:06:10,722 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [319846239] [2020-07-10 15:06:10,722 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 38 [2020-07-10 15:06:10,722 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:10,722 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2020-07-10 15:06:10,765 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:10,765 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2020-07-10 15:06:10,765 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:10,765 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2020-07-10 15:06:10,766 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=74, Invalid=576, Unknown=0, NotChecked=0, Total=650 [2020-07-10 15:06:10,766 INFO L87 Difference]: Start difference. First operand 39 states and 43 transitions. Second operand 13 states. [2020-07-10 15:06:12,420 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:12,421 INFO L93 Difference]: Finished difference Result 71 states and 80 transitions. [2020-07-10 15:06:12,421 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2020-07-10 15:06:12,421 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 38 [2020-07-10 15:06:12,421 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:12,421 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2020-07-10 15:06:12,425 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 80 transitions. [2020-07-10 15:06:12,425 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2020-07-10 15:06:12,428 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 80 transitions. [2020-07-10 15:06:12,428 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states and 80 transitions. [2020-07-10 15:06:12,535 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-10 15:06:12,538 INFO L225 Difference]: With dead ends: 71 [2020-07-10 15:06:12,538 INFO L226 Difference]: Without dead ends: 60 [2020-07-10 15:06:12,540 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 71 GetRequests, 37 SyntacticMatches, 0 SemanticMatches, 34 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 175 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=169, Invalid=1091, Unknown=0, NotChecked=0, Total=1260 [2020-07-10 15:06:12,540 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2020-07-10 15:06:12,631 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 50. [2020-07-10 15:06:12,631 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:12,631 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand 50 states. [2020-07-10 15:06:12,632 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 50 states. [2020-07-10 15:06:12,632 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 50 states. [2020-07-10 15:06:12,636 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:12,636 INFO L93 Difference]: Finished difference Result 60 states and 67 transitions. [2020-07-10 15:06:12,637 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 67 transitions. [2020-07-10 15:06:12,637 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:12,638 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:12,638 INFO L74 IsIncluded]: Start isIncluded. First operand 50 states. Second operand 60 states. [2020-07-10 15:06:12,638 INFO L87 Difference]: Start difference. First operand 50 states. Second operand 60 states. [2020-07-10 15:06:12,641 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:12,641 INFO L93 Difference]: Finished difference Result 60 states and 67 transitions. [2020-07-10 15:06:12,642 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 67 transitions. [2020-07-10 15:06:12,642 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:12,643 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:12,643 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:12,643 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:12,643 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 50 states. [2020-07-10 15:06:12,646 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 50 states to 50 states and 57 transitions. [2020-07-10 15:06:12,646 INFO L78 Accepts]: Start accepts. Automaton has 50 states and 57 transitions. Word has length 38 [2020-07-10 15:06:12,646 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:12,646 INFO L479 AbstractCegarLoop]: Abstraction has 50 states and 57 transitions. [2020-07-10 15:06:12,647 INFO L480 AbstractCegarLoop]: Interpolant automaton has 13 states. [2020-07-10 15:06:12,647 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 57 transitions. [2020-07-10 15:06:12,648 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 46 [2020-07-10 15:06:12,648 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:12,648 INFO L422 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:12,858 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,3 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:12,858 INFO L427 AbstractCegarLoop]: === Iteration 5 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:12,859 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:12,859 INFO L82 PathProgramCache]: Analyzing trace with hash 1335597358, now seen corresponding path program 1 times [2020-07-10 15:06:12,859 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:12,860 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1246803938] [2020-07-10 15:06:12,860 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:12,903 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,090 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,100 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-10 15:06:13,101 INFO L280 TraceCheckUtils]: 1: Hoare triple {1514#true} assume true; {1514#true} is VALID [2020-07-10 15:06:13,101 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1514#true} {1514#true} #86#return; {1514#true} is VALID [2020-07-10 15:06:13,121 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,163 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,186 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-10 15:06:13,187 INFO L280 TraceCheckUtils]: 1: Hoare triple {1514#true} assume ~size > 0; {1514#true} is VALID [2020-07-10 15:06:13,187 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-10 15:06:13,188 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-10 15:06:13,188 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-10 15:06:13,189 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-10 15:06:13,190 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-10 15:06:13,191 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-10 15:06:13,191 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-10 15:06:13,191 INFO L280 TraceCheckUtils]: 3: Hoare triple {1514#true} assume ~size > 0; {1514#true} is VALID [2020-07-10 15:06:13,191 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-10 15:06:13,192 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-10 15:06:13,193 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-10 15:06:13,194 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-10 15:06:13,194 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-10 15:06:13,195 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-10 15:06:13,196 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-10 15:06:13,199 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,268 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,319 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-10 15:06:13,320 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-10 15:06:13,321 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-10 15:06:13,321 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-10 15:06:13,322 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-10 15:06:13,323 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-10 15:06:13,324 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-10 15:06:13,325 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-10 15:06:13,325 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-10 15:06:13,326 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-10 15:06:13,326 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-10 15:06:13,327 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-10 15:06:13,328 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-10 15:06:13,329 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-10 15:06:13,329 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-10 15:06:13,330 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-10 15:06:13,331 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-10 15:06:13,360 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,410 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-10 15:06:13,410 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-10 15:06:13,411 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-10 15:06:13,412 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-10 15:06:13,412 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-10 15:06:13,414 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-10 15:06:13,415 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-10 15:06:13,415 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-10 15:06:13,416 INFO L280 TraceCheckUtils]: 2: Hoare triple {1514#true} assume true; {1514#true} is VALID [2020-07-10 15:06:13,416 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1514#true} {1514#true} #86#return; {1514#true} is VALID [2020-07-10 15:06:13,416 INFO L263 TraceCheckUtils]: 4: Hoare triple {1514#true} call #t~ret34 := main(); {1514#true} is VALID [2020-07-10 15:06:13,416 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-10 15:06:13,417 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-10 15:06:13,417 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-10 15:06:13,418 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-10 15:06:13,418 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-10 15:06:13,419 INFO L280 TraceCheckUtils]: 10: Hoare triple {1514#true} assume ~size > 0; {1514#true} is VALID [2020-07-10 15:06:13,419 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-10 15:06:13,420 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-10 15:06:13,420 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-10 15:06:13,421 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-10 15:06:13,422 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-10 15:06:13,422 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-10 15:06:13,423 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-10 15:06:13,424 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-10 15:06:13,426 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-10 15:06:13,427 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-10 15:06:13,427 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-10 15:06:13,428 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-10 15:06:13,429 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-10 15:06:13,438 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-10 15:06:13,439 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-10 15:06:13,440 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-10 15:06:13,442 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-10 15:06:13,443 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-10 15:06:13,443 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-10 15:06:13,445 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-10 15:06:13,446 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-10 15:06:13,447 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-10 15:06:13,449 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-10 15:06:13,450 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-10 15:06:13,450 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-10 15:06:13,451 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-10 15:06:13,452 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-10 15:06:13,453 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-10 15:06:13,455 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-10 15:06:13,456 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-10 15:06:13,457 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-10 15:06:13,459 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-10 15:06:13,459 INFO L263 TraceCheckUtils]: 43: Hoare triple {1515#false} call __blast_assert(); {1515#false} is VALID [2020-07-10 15:06:13,459 INFO L280 TraceCheckUtils]: 44: Hoare triple {1515#false} assume !false; {1515#false} is VALID [2020-07-10 15:06:13,464 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 4 proven. 7 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2020-07-10 15:06:13,464 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1246803938] [2020-07-10 15:06:13,465 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1039272727] [2020-07-10 15:06:13,465 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:13,611 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,613 INFO L264 TraceCheckSpWp]: Trace formula consists of 264 conjuncts, 23 conjunts are in the unsatisfiable core [2020-07-10 15:06:13,638 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,643 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:14,074 INFO L263 TraceCheckUtils]: 0: Hoare triple {1514#true} call ULTIMATE.init(); {1514#true} is VALID [2020-07-10 15:06:14,074 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-10 15:06:14,074 INFO L280 TraceCheckUtils]: 2: Hoare triple {1514#true} assume true; {1514#true} is VALID [2020-07-10 15:06:14,075 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1514#true} {1514#true} #86#return; {1514#true} is VALID [2020-07-10 15:06:14,075 INFO L263 TraceCheckUtils]: 4: Hoare triple {1514#true} call #t~ret34 := main(); {1514#true} is VALID [2020-07-10 15:06:14,075 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-10 15:06:14,075 INFO L263 TraceCheckUtils]: 6: Hoare triple {1514#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {1514#true} is VALID [2020-07-10 15:06:14,075 INFO L280 TraceCheckUtils]: 7: Hoare triple {1514#true} ~size := #in~size; {1514#true} is VALID [2020-07-10 15:06:14,076 INFO L263 TraceCheckUtils]: 8: Hoare triple {1514#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1514#true} is VALID [2020-07-10 15:06:14,076 INFO L280 TraceCheckUtils]: 9: Hoare triple {1514#true} ~size := #in~size; {1514#true} is VALID [2020-07-10 15:06:14,076 INFO L280 TraceCheckUtils]: 10: Hoare triple {1514#true} assume ~size > 0; {1514#true} is VALID [2020-07-10 15:06:14,076 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-10 15:06:14,077 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-10 15:06:14,077 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-10 15:06:14,079 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-10 15:06:14,079 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-10 15:06:14,080 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-10 15:06:14,081 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-10 15:06:14,081 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-10 15:06:14,085 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-10 15:06:14,085 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-10 15:06:14,086 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-10 15:06:14,087 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-10 15:06:14,087 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-10 15:06:14,088 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-10 15:06:14,089 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-10 15:06:14,090 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-10 15:06:14,092 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-10 15:06:14,092 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-10 15:06:14,093 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-10 15:06:14,094 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-10 15:06:14,095 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-10 15:06:14,096 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-10 15:06:14,096 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-10 15:06:14,097 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-10 15:06:14,097 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-10 15:06:14,098 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-10 15:06:14,099 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-10 15:06:14,105 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-10 15:06:14,107 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-10 15:06:14,108 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-10 15:06:14,109 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-10 15:06:14,109 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-10 15:06:14,110 INFO L263 TraceCheckUtils]: 43: Hoare triple {1515#false} call __blast_assert(); {1515#false} is VALID [2020-07-10 15:06:14,110 INFO L280 TraceCheckUtils]: 44: Hoare triple {1515#false} assume !false; {1515#false} is VALID [2020-07-10 15:06:14,113 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 7 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-10 15:06:14,113 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:06:14,113 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 19] total 29 [2020-07-10 15:06:14,113 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [192326759] [2020-07-10 15:06:14,114 INFO L78 Accepts]: Start accepts. Automaton has 29 states. Word has length 45 [2020-07-10 15:06:14,116 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:14,116 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 29 states. [2020-07-10 15:06:14,222 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 72 edges. 72 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:14,223 INFO L459 AbstractCegarLoop]: Interpolant automaton has 29 states [2020-07-10 15:06:14,223 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:14,223 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 29 interpolants. [2020-07-10 15:06:14,224 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=76, Invalid=736, Unknown=0, NotChecked=0, Total=812 [2020-07-10 15:06:14,224 INFO L87 Difference]: Start difference. First operand 50 states and 57 transitions. Second operand 29 states. [2020-07-10 15:06:18,371 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:18,371 INFO L93 Difference]: Finished difference Result 65 states and 74 transitions. [2020-07-10 15:06:18,371 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2020-07-10 15:06:18,372 INFO L78 Accepts]: Start accepts. Automaton has 29 states. Word has length 45 [2020-07-10 15:06:18,372 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:18,372 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2020-07-10 15:06:18,375 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 63 transitions. [2020-07-10 15:06:18,375 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2020-07-10 15:06:18,378 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 63 transitions. [2020-07-10 15:06:18,379 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states and 63 transitions. [2020-07-10 15:06:18,502 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-10 15:06:18,506 INFO L225 Difference]: With dead ends: 65 [2020-07-10 15:06:18,506 INFO L226 Difference]: Without dead ends: 58 [2020-07-10 15:06:18,507 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 88 GetRequests, 46 SyntacticMatches, 0 SemanticMatches, 42 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 208 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=210, Invalid=1682, Unknown=0, NotChecked=0, Total=1892 [2020-07-10 15:06:18,508 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2020-07-10 15:06:18,615 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 54. [2020-07-10 15:06:18,616 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:18,616 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand 54 states. [2020-07-10 15:06:18,616 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 54 states. [2020-07-10 15:06:18,616 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 54 states. [2020-07-10 15:06:18,621 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:18,621 INFO L93 Difference]: Finished difference Result 58 states and 66 transitions. [2020-07-10 15:06:18,621 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 66 transitions. [2020-07-10 15:06:18,622 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:18,622 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:18,622 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 58 states. [2020-07-10 15:06:18,622 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 58 states. [2020-07-10 15:06:18,626 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:18,626 INFO L93 Difference]: Finished difference Result 58 states and 66 transitions. [2020-07-10 15:06:18,626 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 66 transitions. [2020-07-10 15:06:18,627 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:18,627 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:18,627 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:18,627 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:18,627 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 54 states. [2020-07-10 15:06:18,630 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 60 transitions. [2020-07-10 15:06:18,630 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 60 transitions. Word has length 45 [2020-07-10 15:06:18,631 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:18,631 INFO L479 AbstractCegarLoop]: Abstraction has 54 states and 60 transitions. [2020-07-10 15:06:18,631 INFO L480 AbstractCegarLoop]: Interpolant automaton has 29 states. [2020-07-10 15:06:18,631 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 60 transitions. [2020-07-10 15:06:18,632 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 46 [2020-07-10 15:06:18,632 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:18,633 INFO L422 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:18,846 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,4 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:18,847 INFO L427 AbstractCegarLoop]: === Iteration 6 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:18,848 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:18,848 INFO L82 PathProgramCache]: Analyzing trace with hash 526250732, now seen corresponding path program 1 times [2020-07-10 15:06:18,849 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:18,850 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1306021154] [2020-07-10 15:06:18,850 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:18,876 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:19,085 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:19,094 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-10 15:06:19,095 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-10 15:06:19,096 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-10 15:06:19,117 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:19,175 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:19,220 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-10 15:06:19,221 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-10 15:06:19,222 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-10 15:06:19,223 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-10 15:06:19,223 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-10 15:06:19,224 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-10 15:06:19,225 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-10 15:06:19,226 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-10 15:06:19,227 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-10 15:06:19,227 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-10 15:06:19,228 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-10 15:06:19,229 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-10 15:06:19,229 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-10 15:06:19,230 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-10 15:06:19,231 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-10 15:06:19,231 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-10 15:06:19,233 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-10 15:06:19,236 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:19,241 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:19,244 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-10 15:06:19,245 INFO L280 TraceCheckUtils]: 1: Hoare triple {2031#true} assume ~size > 0; {2031#true} is VALID [2020-07-10 15:06:19,245 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-10 15:06:19,245 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-10 15:06:19,245 INFO L280 TraceCheckUtils]: 4: Hoare triple {2031#true} assume true; {2031#true} is VALID [2020-07-10 15:06:19,246 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2031#true} {2031#true} #68#return; {2031#true} is VALID [2020-07-10 15:06:19,246 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-10 15:06:19,247 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-10 15:06:19,247 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-10 15:06:19,247 INFO L280 TraceCheckUtils]: 3: Hoare triple {2031#true} assume ~size > 0; {2031#true} is VALID [2020-07-10 15:06:19,247 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-10 15:06:19,248 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-10 15:06:19,248 INFO L280 TraceCheckUtils]: 6: Hoare triple {2031#true} assume true; {2031#true} is VALID [2020-07-10 15:06:19,248 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2031#true} {2031#true} #68#return; {2031#true} is VALID [2020-07-10 15:06:19,248 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-10 15:06:19,248 INFO L280 TraceCheckUtils]: 9: Hoare triple {2031#true} assume true; {2031#true} is VALID [2020-07-10 15:06:19,249 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-10 15:06:19,274 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:19,297 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-10 15:06:19,298 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-10 15:06:19,299 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-10 15:06:19,300 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-10 15:06:19,300 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-10 15:06:19,302 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-10 15:06:19,304 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-10 15:06:19,305 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-10 15:06:19,306 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-10 15:06:19,307 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-10 15:06:19,307 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-10 15:06:19,308 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-10 15:06:19,309 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-10 15:06:19,310 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-10 15:06:19,311 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-10 15:06:19,312 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-10 15:06:19,312 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-10 15:06:19,313 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-10 15:06:19,314 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-10 15:06:19,314 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-10 15:06:19,315 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-10 15:06:19,316 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-10 15:06:19,316 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-10 15:06:19,318 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-10 15:06:19,319 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-10 15:06:19,319 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-10 15:06:19,320 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-10 15:06:19,332 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-10 15:06:19,333 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-10 15:06:19,333 INFO L280 TraceCheckUtils]: 23: Hoare triple {2031#true} assume ~size > 0; {2031#true} is VALID [2020-07-10 15:06:19,333 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-10 15:06:19,333 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-10 15:06:19,333 INFO L280 TraceCheckUtils]: 26: Hoare triple {2031#true} assume true; {2031#true} is VALID [2020-07-10 15:06:19,334 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {2031#true} {2031#true} #68#return; {2031#true} is VALID [2020-07-10 15:06:19,334 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-10 15:06:19,334 INFO L280 TraceCheckUtils]: 29: Hoare triple {2031#true} assume true; {2031#true} is VALID [2020-07-10 15:06:19,339 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-10 15:06:19,340 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-10 15:06:19,341 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-10 15:06:19,342 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-10 15:06:19,343 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-10 15:06:19,344 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-10 15:06:19,345 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-10 15:06:19,345 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-10 15:06:19,346 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-10 15:06:19,347 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-10 15:06:19,349 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-10 15:06:19,350 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-10 15:06:19,351 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-10 15:06:19,351 INFO L263 TraceCheckUtils]: 43: Hoare triple {2032#false} call __blast_assert(); {2032#false} is VALID [2020-07-10 15:06:19,351 INFO L280 TraceCheckUtils]: 44: Hoare triple {2032#false} assume !false; {2032#false} is VALID [2020-07-10 15:06:19,356 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 0 proven. 11 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2020-07-10 15:06:19,357 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1306021154] [2020-07-10 15:06:19,357 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1678939872] [2020-07-10 15:06:19,357 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:19,475 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:19,477 INFO L264 TraceCheckSpWp]: Trace formula consists of 261 conjuncts, 23 conjunts are in the unsatisfiable core [2020-07-10 15:06:19,495 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:19,499 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:20,057 INFO L263 TraceCheckUtils]: 0: Hoare triple {2031#true} call ULTIMATE.init(); {2031#true} is VALID [2020-07-10 15:06:20,058 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-10 15:06:20,059 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-10 15:06:20,059 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-10 15:06:20,060 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-10 15:06:20,060 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-10 15:06:20,061 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-10 15:06:20,062 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-10 15:06:20,063 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-10 15:06:20,063 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-10 15:06:20,064 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-10 15:06:20,065 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-10 15:06:20,065 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-10 15:06:20,066 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-10 15:06:20,067 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-10 15:06:20,068 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-10 15:06:20,068 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-10 15:06:20,069 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-10 15:06:20,070 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-10 15:06:20,071 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-10 15:06:20,071 INFO L280 TraceCheckUtils]: 20: Hoare triple {2158#(<= ~elem~0.offset 0)} ~size := #in~size; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:20,072 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-10 15:06:20,072 INFO L280 TraceCheckUtils]: 22: Hoare triple {2158#(<= ~elem~0.offset 0)} ~size := #in~size; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:20,072 INFO L280 TraceCheckUtils]: 23: Hoare triple {2158#(<= ~elem~0.offset 0)} assume ~size > 0; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:20,073 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-10 15:06:20,074 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-10 15:06:20,074 INFO L280 TraceCheckUtils]: 26: Hoare triple {2158#(<= ~elem~0.offset 0)} assume true; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:20,075 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-10 15:06:20,075 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-10 15:06:20,075 INFO L280 TraceCheckUtils]: 29: Hoare triple {2158#(<= ~elem~0.offset 0)} assume true; {2158#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:20,076 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-10 15:06:20,077 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-10 15:06:20,077 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-10 15:06:20,078 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-10 15:06:20,079 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-10 15:06:20,079 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-10 15:06:20,079 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-10 15:06:20,080 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-10 15:06:20,080 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-10 15:06:20,081 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-10 15:06:20,082 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-10 15:06:20,083 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-10 15:06:20,084 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-10 15:06:20,084 INFO L263 TraceCheckUtils]: 43: Hoare triple {2032#false} call __blast_assert(); {2032#false} is VALID [2020-07-10 15:06:20,084 INFO L280 TraceCheckUtils]: 44: Hoare triple {2032#false} assume !false; {2032#false} is VALID [2020-07-10 15:06:20,089 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 0 proven. 13 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-10 15:06:20,089 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:06:20,089 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 14] total 28 [2020-07-10 15:06:20,089 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [583969048] [2020-07-10 15:06:20,090 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 45 [2020-07-10 15:06:20,091 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:20,091 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 28 states. [2020-07-10 15:06:20,198 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 88 edges. 88 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:20,199 INFO L459 AbstractCegarLoop]: Interpolant automaton has 28 states [2020-07-10 15:06:20,199 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:20,199 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2020-07-10 15:06:20,200 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=661, Unknown=0, NotChecked=0, Total=756 [2020-07-10 15:06:20,200 INFO L87 Difference]: Start difference. First operand 54 states and 60 transitions. Second operand 28 states. [2020-07-10 15:06:23,651 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:23,651 INFO L93 Difference]: Finished difference Result 65 states and 69 transitions. [2020-07-10 15:06:23,652 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 18 states. [2020-07-10 15:06:23,652 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 45 [2020-07-10 15:06:23,652 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:23,652 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2020-07-10 15:06:23,655 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 68 transitions. [2020-07-10 15:06:23,655 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2020-07-10 15:06:23,658 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 68 transitions. [2020-07-10 15:06:23,658 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 18 states and 68 transitions. [2020-07-10 15:06:23,776 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-10 15:06:23,778 INFO L225 Difference]: With dead ends: 65 [2020-07-10 15:06:23,778 INFO L226 Difference]: Without dead ends: 62 [2020-07-10 15:06:23,780 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 80 GetRequests, 43 SyntacticMatches, 0 SemanticMatches, 37 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 194 ImplicationChecksByTransitivity, 1.1s TimeCoverageRelationStatistics Valid=244, Invalid=1238, Unknown=0, NotChecked=0, Total=1482 [2020-07-10 15:06:23,780 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 62 states. [2020-07-10 15:06:23,913 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 62 to 54. [2020-07-10 15:06:23,913 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:23,913 INFO L82 GeneralOperation]: Start isEquivalent. First operand 62 states. Second operand 54 states. [2020-07-10 15:06:23,913 INFO L74 IsIncluded]: Start isIncluded. First operand 62 states. Second operand 54 states. [2020-07-10 15:06:23,914 INFO L87 Difference]: Start difference. First operand 62 states. Second operand 54 states. [2020-07-10 15:06:23,918 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:23,919 INFO L93 Difference]: Finished difference Result 62 states and 66 transitions. [2020-07-10 15:06:23,919 INFO L276 IsEmpty]: Start isEmpty. Operand 62 states and 66 transitions. [2020-07-10 15:06:23,919 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:23,919 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:23,920 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 62 states. [2020-07-10 15:06:23,920 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 62 states. [2020-07-10 15:06:23,922 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:23,923 INFO L93 Difference]: Finished difference Result 62 states and 66 transitions. [2020-07-10 15:06:23,923 INFO L276 IsEmpty]: Start isEmpty. Operand 62 states and 66 transitions. [2020-07-10 15:06:23,923 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:23,923 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:23,925 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:23,925 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:23,925 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 54 states. [2020-07-10 15:06:23,928 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 59 transitions. [2020-07-10 15:06:23,928 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 59 transitions. Word has length 45 [2020-07-10 15:06:23,929 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:23,929 INFO L479 AbstractCegarLoop]: Abstraction has 54 states and 59 transitions. [2020-07-10 15:06:23,929 INFO L480 AbstractCegarLoop]: Interpolant automaton has 28 states. [2020-07-10 15:06:23,929 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 59 transitions. [2020-07-10 15:06:23,930 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-10 15:06:23,930 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:23,931 INFO L422 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:24,145 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,5 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:24,146 INFO L427 AbstractCegarLoop]: === Iteration 7 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:24,147 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:24,147 INFO L82 PathProgramCache]: Analyzing trace with hash -2119488644, now seen corresponding path program 1 times [2020-07-10 15:06:24,148 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:24,149 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [383772140] [2020-07-10 15:06:24,149 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:24,166 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:24,267 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:24,274 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-10 15:06:24,275 INFO L280 TraceCheckUtils]: 1: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-10 15:06:24,275 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {2550#true} {2550#true} #86#return; {2550#true} is VALID [2020-07-10 15:06:24,291 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:24,326 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:24,347 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-10 15:06:24,347 INFO L280 TraceCheckUtils]: 1: Hoare triple {2550#true} assume ~size > 0; {2550#true} is VALID [2020-07-10 15:06:24,347 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-10 15:06:24,348 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-10 15:06:24,348 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-10 15:06:24,349 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-10 15:06:24,349 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-10 15:06:24,350 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-10 15:06:24,350 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-10 15:06:24,350 INFO L280 TraceCheckUtils]: 3: Hoare triple {2550#true} assume ~size > 0; {2550#true} is VALID [2020-07-10 15:06:24,350 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-10 15:06:24,351 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-10 15:06:24,351 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-10 15:06:24,352 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-10 15:06:24,352 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-10 15:06:24,353 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-10 15:06:24,354 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-10 15:06:24,358 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:24,418 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:24,502 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-10 15:06:24,502 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-10 15:06:24,503 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-10 15:06:24,504 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-10 15:06:24,504 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-10 15:06:24,505 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-10 15:06:24,506 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-10 15:06:24,507 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-10 15:06:24,507 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-10 15:06:24,508 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-10 15:06:24,509 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-10 15:06:24,509 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-10 15:06:24,510 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-10 15:06:24,511 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-10 15:06:24,511 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-10 15:06:24,512 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-10 15:06:24,513 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-10 15:06:24,538 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:24,544 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-10 15:06:24,544 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-10 15:06:24,544 INFO L280 TraceCheckUtils]: 2: Hoare triple {2550#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2550#true} is VALID [2020-07-10 15:06:24,544 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-10 15:06:24,544 INFO L280 TraceCheckUtils]: 4: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-10 15:06:24,545 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-10 15:06:24,547 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:24,599 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-10 15:06:24,600 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-10 15:06:24,600 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-10 15:06:24,601 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-10 15:06:24,601 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-10 15:06:24,602 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-10 15:06:24,603 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:24,663 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-10 15:06:24,664 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-10 15:06:24,664 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-10 15:06:24,665 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-10 15:06:24,666 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-10 15:06:24,666 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-10 15:06:24,666 INFO L280 TraceCheckUtils]: 2: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-10 15:06:24,666 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2550#true} {2550#true} #86#return; {2550#true} is VALID [2020-07-10 15:06:24,667 INFO L263 TraceCheckUtils]: 4: Hoare triple {2550#true} call #t~ret34 := main(); {2550#true} is VALID [2020-07-10 15:06:24,667 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-10 15:06:24,667 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-10 15:06:24,667 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-10 15:06:24,668 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-10 15:06:24,668 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-10 15:06:24,668 INFO L280 TraceCheckUtils]: 10: Hoare triple {2550#true} assume ~size > 0; {2550#true} is VALID [2020-07-10 15:06:24,668 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-10 15:06:24,669 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-10 15:06:24,669 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-10 15:06:24,670 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-10 15:06:24,671 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-10 15:06:24,671 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-10 15:06:24,672 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-10 15:06:24,672 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-10 15:06:24,673 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-10 15:06:24,673 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-10 15:06:24,674 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-10 15:06:24,675 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-10 15:06:24,675 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-10 15:06:24,676 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-10 15:06:24,676 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-10 15:06:24,676 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-10 15:06:24,677 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-10 15:06:24,678 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-10 15:06:24,678 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-10 15:06:24,679 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-10 15:06:24,680 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-10 15:06:24,680 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-10 15:06:24,681 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-10 15:06:24,681 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-10 15:06:24,682 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-10 15:06:24,682 INFO L280 TraceCheckUtils]: 36: Hoare triple {2550#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2550#true} is VALID [2020-07-10 15:06:24,682 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-10 15:06:24,682 INFO L280 TraceCheckUtils]: 38: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-10 15:06:24,685 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-10 15:06:24,689 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-10 15:06:24,690 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-10 15:06:24,690 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-10 15:06:24,691 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-10 15:06:24,692 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-10 15:06:24,692 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-10 15:06:24,693 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-10 15:06:24,694 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-10 15:06:24,695 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-10 15:06:24,695 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-10 15:06:24,696 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-10 15:06:24,697 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-10 15:06:24,697 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-10 15:06:24,697 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-10 15:06:24,697 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-10 15:06:24,698 INFO L263 TraceCheckUtils]: 55: Hoare triple {2551#false} call __blast_assert(); {2551#false} is VALID [2020-07-10 15:06:24,698 INFO L280 TraceCheckUtils]: 56: Hoare triple {2551#false} assume !false; {2551#false} is VALID [2020-07-10 15:06:24,702 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 13 proven. 5 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2020-07-10 15:06:24,702 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [383772140] [2020-07-10 15:06:24,702 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1666721723] [2020-07-10 15:06:24,702 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:24,813 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:24,815 INFO L264 TraceCheckSpWp]: Trace formula consists of 324 conjuncts, 23 conjunts are in the unsatisfiable core [2020-07-10 15:06:24,838 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:24,841 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:25,326 INFO L263 TraceCheckUtils]: 0: Hoare triple {2550#true} call ULTIMATE.init(); {2550#true} is VALID [2020-07-10 15:06:25,326 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-10 15:06:25,326 INFO L280 TraceCheckUtils]: 2: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-10 15:06:25,327 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2550#true} {2550#true} #86#return; {2550#true} is VALID [2020-07-10 15:06:25,327 INFO L263 TraceCheckUtils]: 4: Hoare triple {2550#true} call #t~ret34 := main(); {2550#true} is VALID [2020-07-10 15:06:25,327 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-10 15:06:25,327 INFO L263 TraceCheckUtils]: 6: Hoare triple {2550#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {2550#true} is VALID [2020-07-10 15:06:25,327 INFO L280 TraceCheckUtils]: 7: Hoare triple {2550#true} ~size := #in~size; {2550#true} is VALID [2020-07-10 15:06:25,327 INFO L263 TraceCheckUtils]: 8: Hoare triple {2550#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2550#true} is VALID [2020-07-10 15:06:25,327 INFO L280 TraceCheckUtils]: 9: Hoare triple {2550#true} ~size := #in~size; {2550#true} is VALID [2020-07-10 15:06:25,328 INFO L280 TraceCheckUtils]: 10: Hoare triple {2550#true} assume ~size > 0; {2550#true} is VALID [2020-07-10 15:06:25,328 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-10 15:06:25,328 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-10 15:06:25,329 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-10 15:06:25,329 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-10 15:06:25,330 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-10 15:06:25,330 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-10 15:06:25,331 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-10 15:06:25,331 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-10 15:06:25,332 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-10 15:06:25,333 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-10 15:06:25,334 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-10 15:06:25,334 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-10 15:06:25,335 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-10 15:06:25,336 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-10 15:06:25,337 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-10 15:06:25,337 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-10 15:06:25,338 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-10 15:06:25,339 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-10 15:06:25,339 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-10 15:06:25,340 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-10 15:06:25,341 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-10 15:06:25,341 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-10 15:06:25,341 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-10 15:06:25,341 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-10 15:06:25,341 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-10 15:06:25,342 INFO L280 TraceCheckUtils]: 36: Hoare triple {2550#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2550#true} is VALID [2020-07-10 15:06:25,342 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-10 15:06:25,342 INFO L280 TraceCheckUtils]: 38: Hoare triple {2550#true} assume true; {2550#true} is VALID [2020-07-10 15:06:25,342 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-10 15:06:25,343 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-10 15:06:25,343 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-10 15:06:25,343 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-10 15:06:25,344 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-10 15:06:25,344 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-10 15:06:25,345 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-10 15:06:25,346 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-10 15:06:25,347 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-10 15:06:25,347 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-10 15:06:25,348 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-10 15:06:25,348 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-10 15:06:25,350 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-10 15:06:25,350 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-10 15:06:25,350 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-10 15:06:25,350 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-10 15:06:25,350 INFO L263 TraceCheckUtils]: 55: Hoare triple {2551#false} call __blast_assert(); {2551#false} is VALID [2020-07-10 15:06:25,350 INFO L280 TraceCheckUtils]: 56: Hoare triple {2551#false} assume !false; {2551#false} is VALID [2020-07-10 15:06:25,353 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 15 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2020-07-10 15:06:25,353 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:06:25,354 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 20] total 31 [2020-07-10 15:06:25,354 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [594320346] [2020-07-10 15:06:25,354 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-10 15:06:25,359 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:25,359 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 31 states. [2020-07-10 15:06:25,460 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 89 edges. 89 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:25,461 INFO L459 AbstractCegarLoop]: Interpolant automaton has 31 states [2020-07-10 15:06:25,461 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:25,461 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2020-07-10 15:06:25,462 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=84, Invalid=846, Unknown=0, NotChecked=0, Total=930 [2020-07-10 15:06:25,462 INFO L87 Difference]: Start difference. First operand 54 states and 59 transitions. Second operand 31 states. [2020-07-10 15:06:29,783 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:29,783 INFO L93 Difference]: Finished difference Result 66 states and 72 transitions. [2020-07-10 15:06:29,784 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2020-07-10 15:06:29,784 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-10 15:06:29,784 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:29,784 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-10 15:06:29,788 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 61 transitions. [2020-07-10 15:06:29,788 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-10 15:06:29,793 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 61 transitions. [2020-07-10 15:06:29,793 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 20 states and 61 transitions. [2020-07-10 15:06:29,907 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-10 15:06:29,909 INFO L225 Difference]: With dead ends: 66 [2020-07-10 15:06:29,910 INFO L226 Difference]: Without dead ends: 60 [2020-07-10 15:06:29,911 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 106 GetRequests, 60 SyntacticMatches, 0 SemanticMatches, 46 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 260 ImplicationChecksByTransitivity, 1.2s TimeCoverageRelationStatistics Valid=245, Invalid=2011, Unknown=0, NotChecked=0, Total=2256 [2020-07-10 15:06:29,912 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2020-07-10 15:06:30,022 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 57. [2020-07-10 15:06:30,022 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:30,022 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand 57 states. [2020-07-10 15:06:30,023 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 57 states. [2020-07-10 15:06:30,023 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 57 states. [2020-07-10 15:06:30,026 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:30,026 INFO L93 Difference]: Finished difference Result 60 states and 66 transitions. [2020-07-10 15:06:30,026 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 66 transitions. [2020-07-10 15:06:30,026 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:30,027 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:30,027 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 60 states. [2020-07-10 15:06:30,027 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 60 states. [2020-07-10 15:06:30,030 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:30,030 INFO L93 Difference]: Finished difference Result 60 states and 66 transitions. [2020-07-10 15:06:30,030 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 66 transitions. [2020-07-10 15:06:30,031 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:30,031 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:30,031 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:30,031 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:30,031 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 57 states. [2020-07-10 15:06:30,034 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 57 states to 57 states and 63 transitions. [2020-07-10 15:06:30,034 INFO L78 Accepts]: Start accepts. Automaton has 57 states and 63 transitions. Word has length 57 [2020-07-10 15:06:30,034 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:30,034 INFO L479 AbstractCegarLoop]: Abstraction has 57 states and 63 transitions. [2020-07-10 15:06:30,034 INFO L480 AbstractCegarLoop]: Interpolant automaton has 31 states. [2020-07-10 15:06:30,035 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 63 transitions. [2020-07-10 15:06:30,035 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-10 15:06:30,035 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:30,036 INFO L422 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:30,248 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 6 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable6 [2020-07-10 15:06:30,249 INFO L427 AbstractCegarLoop]: === Iteration 8 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:30,250 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:30,250 INFO L82 PathProgramCache]: Analyzing trace with hash 1366132026, now seen corresponding path program 1 times [2020-07-10 15:06:30,250 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:30,251 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [97530702] [2020-07-10 15:06:30,251 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:30,266 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:30,411 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:30,421 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-10 15:06:30,422 INFO L280 TraceCheckUtils]: 1: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-10 15:06:30,422 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {3132#true} {3132#true} #86#return; {3132#true} is VALID [2020-07-10 15:06:30,442 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:30,493 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:30,518 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-10 15:06:30,519 INFO L280 TraceCheckUtils]: 1: Hoare triple {3132#true} assume ~size > 0; {3132#true} is VALID [2020-07-10 15:06:30,519 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-10 15:06:30,520 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-10 15:06:30,520 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-10 15:06:30,522 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-10 15:06:30,522 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-10 15:06:30,524 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-10 15:06:30,524 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-10 15:06:30,525 INFO L280 TraceCheckUtils]: 3: Hoare triple {3132#true} assume ~size > 0; {3132#true} is VALID [2020-07-10 15:06:30,525 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-10 15:06:30,526 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-10 15:06:30,526 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-10 15:06:30,528 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-10 15:06:30,528 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-10 15:06:30,529 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-10 15:06:30,531 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-10 15:06:30,535 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:30,629 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:30,684 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-10 15:06:30,685 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-10 15:06:30,685 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-10 15:06:30,686 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-10 15:06:30,686 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-10 15:06:30,687 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-10 15:06:30,688 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-10 15:06:30,695 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-10 15:06:30,696 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-10 15:06:30,697 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-10 15:06:30,697 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-10 15:06:30,698 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-10 15:06:30,699 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-10 15:06:30,700 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-10 15:06:30,700 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-10 15:06:30,701 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-10 15:06:30,702 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-10 15:06:30,729 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:30,740 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-10 15:06:30,740 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-10 15:06:30,740 INFO L280 TraceCheckUtils]: 2: Hoare triple {3132#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3132#true} is VALID [2020-07-10 15:06:30,740 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-10 15:06:30,740 INFO L280 TraceCheckUtils]: 4: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-10 15:06:30,741 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-10 15:06:30,746 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:30,798 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-10 15:06:30,803 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-10 15:06:30,803 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-10 15:06:30,804 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-10 15:06:30,804 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-10 15:06:30,805 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-10 15:06:30,806 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:30,836 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-10 15:06:30,836 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-10 15:06:30,837 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-10 15:06:30,838 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-10 15:06:30,839 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-10 15:06:30,839 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-10 15:06:30,839 INFO L280 TraceCheckUtils]: 2: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-10 15:06:30,839 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3132#true} {3132#true} #86#return; {3132#true} is VALID [2020-07-10 15:06:30,839 INFO L263 TraceCheckUtils]: 4: Hoare triple {3132#true} call #t~ret34 := main(); {3132#true} is VALID [2020-07-10 15:06:30,839 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-10 15:06:30,840 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-10 15:06:30,840 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-10 15:06:30,841 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-10 15:06:30,841 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-10 15:06:30,842 INFO L280 TraceCheckUtils]: 10: Hoare triple {3132#true} assume ~size > 0; {3132#true} is VALID [2020-07-10 15:06:30,842 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-10 15:06:30,842 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-10 15:06:30,843 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-10 15:06:30,843 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-10 15:06:30,844 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-10 15:06:30,844 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-10 15:06:30,845 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-10 15:06:30,845 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-10 15:06:30,846 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-10 15:06:30,847 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-10 15:06:30,847 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-10 15:06:30,848 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-10 15:06:30,849 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-10 15:06:30,849 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-10 15:06:30,850 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-10 15:06:30,850 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-10 15:06:30,851 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-10 15:06:30,851 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-10 15:06:30,852 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-10 15:06:30,852 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-10 15:06:30,853 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-10 15:06:30,854 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-10 15:06:30,855 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-10 15:06:30,855 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-10 15:06:30,855 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-10 15:06:30,856 INFO L280 TraceCheckUtils]: 36: Hoare triple {3132#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3132#true} is VALID [2020-07-10 15:06:30,856 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-10 15:06:30,856 INFO L280 TraceCheckUtils]: 38: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-10 15:06:30,857 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-10 15:06:30,857 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-10 15:06:30,858 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-10 15:06:30,858 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-10 15:06:30,859 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-10 15:06:30,859 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-10 15:06:30,859 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-10 15:06:30,861 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-10 15:06:30,862 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-10 15:06:30,862 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-10 15:06:30,863 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-10 15:06:30,863 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-10 15:06:30,864 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-10 15:06:30,865 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-10 15:06:30,865 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-10 15:06:30,866 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-10 15:06:30,866 INFO L263 TraceCheckUtils]: 55: Hoare triple {3133#false} call __blast_assert(); {3133#false} is VALID [2020-07-10 15:06:30,866 INFO L280 TraceCheckUtils]: 56: Hoare triple {3133#false} assume !false; {3133#false} is VALID [2020-07-10 15:06:30,869 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 10 proven. 8 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2020-07-10 15:06:30,869 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [97530702] [2020-07-10 15:06:30,870 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [455188802] [2020-07-10 15:06:30,870 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:30,979 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:30,981 INFO L264 TraceCheckSpWp]: Trace formula consists of 317 conjuncts, 25 conjunts are in the unsatisfiable core [2020-07-10 15:06:31,006 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:31,010 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:31,470 INFO L263 TraceCheckUtils]: 0: Hoare triple {3132#true} call ULTIMATE.init(); {3132#true} is VALID [2020-07-10 15:06:31,470 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-10 15:06:31,470 INFO L280 TraceCheckUtils]: 2: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-10 15:06:31,470 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3132#true} {3132#true} #86#return; {3132#true} is VALID [2020-07-10 15:06:31,471 INFO L263 TraceCheckUtils]: 4: Hoare triple {3132#true} call #t~ret34 := main(); {3132#true} is VALID [2020-07-10 15:06:31,471 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-10 15:06:31,471 INFO L263 TraceCheckUtils]: 6: Hoare triple {3132#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {3132#true} is VALID [2020-07-10 15:06:31,471 INFO L280 TraceCheckUtils]: 7: Hoare triple {3132#true} ~size := #in~size; {3132#true} is VALID [2020-07-10 15:06:31,472 INFO L263 TraceCheckUtils]: 8: Hoare triple {3132#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3132#true} is VALID [2020-07-10 15:06:31,472 INFO L280 TraceCheckUtils]: 9: Hoare triple {3132#true} ~size := #in~size; {3132#true} is VALID [2020-07-10 15:06:31,472 INFO L280 TraceCheckUtils]: 10: Hoare triple {3132#true} assume ~size > 0; {3132#true} is VALID [2020-07-10 15:06:31,472 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-10 15:06:31,472 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-10 15:06:31,473 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-10 15:06:31,474 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-10 15:06:31,474 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-10 15:06:31,474 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-10 15:06:31,475 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-10 15:06:31,476 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-10 15:06:31,476 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-10 15:06:31,476 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-10 15:06:31,477 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-10 15:06:31,477 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-10 15:06:31,478 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-10 15:06:31,479 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-10 15:06:31,480 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-10 15:06:31,480 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-10 15:06:31,482 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-10 15:06:31,483 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-10 15:06:31,483 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-10 15:06:31,484 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-10 15:06:31,485 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-10 15:06:31,485 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-10 15:06:31,485 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-10 15:06:31,486 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-10 15:06:31,486 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-10 15:06:31,486 INFO L280 TraceCheckUtils]: 36: Hoare triple {3132#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3132#true} is VALID [2020-07-10 15:06:31,486 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-10 15:06:31,486 INFO L280 TraceCheckUtils]: 38: Hoare triple {3132#true} assume true; {3132#true} is VALID [2020-07-10 15:06:31,487 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-10 15:06:31,487 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-10 15:06:31,488 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-10 15:06:31,488 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-10 15:06:31,495 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-10 15:06:31,496 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-10 15:06:31,497 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-10 15:06:31,498 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-10 15:06:31,499 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-10 15:06:31,499 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-10 15:06:31,499 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-10 15:06:31,500 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-10 15:06:31,501 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-10 15:06:31,501 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-10 15:06:31,502 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-10 15:06:31,502 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-10 15:06:31,503 INFO L263 TraceCheckUtils]: 55: Hoare triple {3133#false} call __blast_assert(); {3133#false} is VALID [2020-07-10 15:06:31,503 INFO L280 TraceCheckUtils]: 56: Hoare triple {3133#false} assume !false; {3133#false} is VALID [2020-07-10 15:06:31,507 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 14 proven. 6 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2020-07-10 15:06:31,507 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:06:31,507 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 20] total 31 [2020-07-10 15:06:31,508 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1149702036] [2020-07-10 15:06:31,508 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-10 15:06:31,512 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:31,513 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 31 states. [2020-07-10 15:06:31,616 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 91 edges. 91 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:31,616 INFO L459 AbstractCegarLoop]: Interpolant automaton has 31 states [2020-07-10 15:06:31,616 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:31,617 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2020-07-10 15:06:31,618 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=85, Invalid=845, Unknown=0, NotChecked=0, Total=930 [2020-07-10 15:06:31,618 INFO L87 Difference]: Start difference. First operand 57 states and 63 transitions. Second operand 31 states. [2020-07-10 15:06:35,745 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:35,746 INFO L93 Difference]: Finished difference Result 63 states and 68 transitions. [2020-07-10 15:06:35,746 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2020-07-10 15:06:35,746 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-10 15:06:35,746 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:35,747 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-10 15:06:35,751 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 57 transitions. [2020-07-10 15:06:35,752 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-10 15:06:35,755 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 57 transitions. [2020-07-10 15:06:35,755 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states and 57 transitions. [2020-07-10 15:06:35,880 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-10 15:06:35,883 INFO L225 Difference]: With dead ends: 63 [2020-07-10 15:06:35,883 INFO L226 Difference]: Without dead ends: 49 [2020-07-10 15:06:35,890 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-10 15:06:35,890 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 49 states. [2020-07-10 15:06:36,030 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 49 to 47. [2020-07-10 15:06:36,030 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:36,030 INFO L82 GeneralOperation]: Start isEquivalent. First operand 49 states. Second operand 47 states. [2020-07-10 15:06:36,031 INFO L74 IsIncluded]: Start isIncluded. First operand 49 states. Second operand 47 states. [2020-07-10 15:06:36,031 INFO L87 Difference]: Start difference. First operand 49 states. Second operand 47 states. [2020-07-10 15:06:36,036 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:36,036 INFO L93 Difference]: Finished difference Result 49 states and 51 transitions. [2020-07-10 15:06:36,040 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 51 transitions. [2020-07-10 15:06:36,041 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:36,041 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:36,041 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 49 states. [2020-07-10 15:06:36,042 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 49 states. [2020-07-10 15:06:36,046 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:36,046 INFO L93 Difference]: Finished difference Result 49 states and 51 transitions. [2020-07-10 15:06:36,046 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 51 transitions. [2020-07-10 15:06:36,047 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:36,047 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:36,048 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:36,048 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:36,048 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2020-07-10 15:06:36,050 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 49 transitions. [2020-07-10 15:06:36,051 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 49 transitions. Word has length 57 [2020-07-10 15:06:36,051 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:36,051 INFO L479 AbstractCegarLoop]: Abstraction has 47 states and 49 transitions. [2020-07-10 15:06:36,051 INFO L480 AbstractCegarLoop]: Interpolant automaton has 31 states. [2020-07-10 15:06:36,052 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 49 transitions. [2020-07-10 15:06:36,053 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-10 15:06:36,053 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:36,054 INFO L422 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:36,267 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,7 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:36,268 INFO L427 AbstractCegarLoop]: === Iteration 9 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:36,268 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:36,269 INFO L82 PathProgramCache]: Analyzing trace with hash 1588672638, now seen corresponding path program 1 times [2020-07-10 15:06:36,269 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:36,269 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [117920184] [2020-07-10 15:06:36,270 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:36,309 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:36,566 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:36,575 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-10 15:06:36,578 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-10 15:06:36,579 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-10 15:06:36,603 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:36,654 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:36,667 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-10 15:06:36,669 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-10 15:06:36,670 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-10 15:06:36,671 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-10 15:06:36,671 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-10 15:06:36,673 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-10 15:06:36,674 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-10 15:06:36,675 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-10 15:06:36,676 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-10 15:06:36,677 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-10 15:06:36,678 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-10 15:06:36,679 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-10 15:06:36,680 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-10 15:06:36,682 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-10 15:06:36,683 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-10 15:06:36,685 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-10 15:06:36,686 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-10 15:06:36,691 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:36,755 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:36,805 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-10 15:06:36,806 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-10 15:06:36,807 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-10 15:06:36,808 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-10 15:06:36,809 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-10 15:06:36,811 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-10 15:06:36,812 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-10 15:06:36,813 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-10 15:06:36,814 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-10 15:06:36,815 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-10 15:06:36,816 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-10 15:06:36,817 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-10 15:06:36,818 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-10 15:06:36,820 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-10 15:06:36,821 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-10 15:06:36,822 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-10 15:06:36,823 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-10 15:06:36,859 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:36,864 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-10 15:06:36,865 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-10 15:06:36,865 INFO L280 TraceCheckUtils]: 2: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-10 15:06:36,865 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-10 15:06:36,866 INFO L280 TraceCheckUtils]: 4: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-10 15:06:36,867 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-10 15:06:36,869 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:36,874 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-10 15:06:36,874 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-10 15:06:36,874 INFO L280 TraceCheckUtils]: 2: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-10 15:06:36,875 INFO L280 TraceCheckUtils]: 3: Hoare triple {3670#true} assume !(0 != #t~nondet31);havoc #t~nondet31; {3670#true} is VALID [2020-07-10 15:06:36,875 INFO L280 TraceCheckUtils]: 4: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-10 15:06:36,877 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-10 15:06:36,878 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:36,908 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-10 15:06:36,909 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-10 15:06:36,910 INFO L280 TraceCheckUtils]: 2: Hoare triple {3740#(= 0 ~elem~0.offset)} assume true; {3740#(= 0 ~elem~0.offset)} is VALID [2020-07-10 15:06:36,912 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-10 15:06:36,914 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-10 15:06:36,916 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-10 15:06:36,917 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-10 15:06:36,918 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-10 15:06:36,919 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-10 15:06:36,919 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-10 15:06:36,921 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-10 15:06:36,921 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-10 15:06:36,923 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-10 15:06:36,924 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-10 15:06:36,924 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-10 15:06:36,926 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-10 15:06:36,926 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-10 15:06:36,927 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-10 15:06:36,929 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-10 15:06:36,930 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-10 15:06:36,931 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-10 15:06:36,933 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-10 15:06:36,934 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-10 15:06:36,935 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-10 15:06:36,936 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-10 15:06:36,937 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-10 15:06:36,938 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-10 15:06:36,939 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-10 15:06:36,940 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-10 15:06:36,941 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-10 15:06:36,942 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-10 15:06:36,944 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-10 15:06:36,945 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-10 15:06:36,946 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-10 15:06:36,948 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-10 15:06:36,949 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-10 15:06:36,950 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-10 15:06:36,952 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-10 15:06:36,952 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-10 15:06:36,952 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-10 15:06:36,953 INFO L280 TraceCheckUtils]: 36: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-10 15:06:36,953 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-10 15:06:36,953 INFO L280 TraceCheckUtils]: 38: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-10 15:06:36,955 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-10 15:06:36,957 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-10 15:06:36,957 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-10 15:06:36,957 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-10 15:06:36,958 INFO L280 TraceCheckUtils]: 43: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-10 15:06:36,958 INFO L280 TraceCheckUtils]: 44: Hoare triple {3670#true} assume !(0 != #t~nondet31);havoc #t~nondet31; {3670#true} is VALID [2020-07-10 15:06:36,958 INFO L280 TraceCheckUtils]: 45: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-10 15:06:36,960 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-10 15:06:36,962 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-10 15:06:36,962 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-10 15:06:36,963 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-10 15:06:36,964 INFO L280 TraceCheckUtils]: 50: Hoare triple {3740#(= 0 ~elem~0.offset)} assume true; {3740#(= 0 ~elem~0.offset)} is VALID [2020-07-10 15:06:36,965 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-10 15:06:36,967 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-10 15:06:36,969 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-10 15:06:36,970 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-10 15:06:36,970 INFO L263 TraceCheckUtils]: 55: Hoare triple {3671#false} call __blast_assert(); {3671#false} is VALID [2020-07-10 15:06:36,970 INFO L280 TraceCheckUtils]: 56: Hoare triple {3671#false} assume !false; {3671#false} is VALID [2020-07-10 15:06:36,979 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 2 proven. 7 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2020-07-10 15:06:36,979 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [117920184] [2020-07-10 15:06:36,980 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1186241766] [2020-07-10 15:06:36,980 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:37,158 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,161 INFO L264 TraceCheckSpWp]: Trace formula consists of 321 conjuncts, 24 conjunts are in the unsatisfiable core [2020-07-10 15:06:37,182 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,185 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:37,773 INFO L263 TraceCheckUtils]: 0: Hoare triple {3670#true} call ULTIMATE.init(); {3670#true} is VALID [2020-07-10 15:06:37,775 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-10 15:06:37,775 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-10 15:06:37,776 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-10 15:06:37,777 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-10 15:06:37,778 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-10 15:06:37,779 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-10 15:06:37,780 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-10 15:06:37,781 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-10 15:06:37,782 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-10 15:06:37,783 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-10 15:06:37,785 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-10 15:06:37,786 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-10 15:06:37,787 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-10 15:06:37,789 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-10 15:06:37,790 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-10 15:06:37,790 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-10 15:06:37,792 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-10 15:06:37,793 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-10 15:06:37,794 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-10 15:06:37,795 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-10 15:06:37,796 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-10 15:06:37,797 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-10 15:06:37,798 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-10 15:06:37,800 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-10 15:06:37,801 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-10 15:06:37,802 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-10 15:06:37,804 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-10 15:06:37,805 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-10 15:06:37,807 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-10 15:06:37,809 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-10 15:06:37,810 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-10 15:06:37,810 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-10 15:06:37,811 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-10 15:06:37,811 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-10 15:06:37,811 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-10 15:06:37,812 INFO L280 TraceCheckUtils]: 36: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-10 15:06:37,812 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-10 15:06:37,812 INFO L280 TraceCheckUtils]: 38: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-10 15:06:37,814 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-10 15:06:37,814 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-10 15:06:37,815 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-10 15:06:37,815 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-10 15:06:37,815 INFO L280 TraceCheckUtils]: 43: Hoare triple {3670#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3670#true} is VALID [2020-07-10 15:06:37,816 INFO L280 TraceCheckUtils]: 44: Hoare triple {3670#true} assume !(0 != #t~nondet31);havoc #t~nondet31; {3670#true} is VALID [2020-07-10 15:06:37,816 INFO L280 TraceCheckUtils]: 45: Hoare triple {3670#true} assume true; {3670#true} is VALID [2020-07-10 15:06:37,818 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-10 15:06:37,818 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-10 15:06:37,818 INFO L280 TraceCheckUtils]: 48: Hoare triple {3670#true} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {3670#true} is VALID [2020-07-10 15:06:37,819 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-10 15:06:37,820 INFO L280 TraceCheckUtils]: 50: Hoare triple {3895#(<= ~elem~0.offset 0)} assume true; {3895#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:37,822 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-10 15:06:37,824 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-10 15:06:37,825 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-10 15:06:37,826 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-10 15:06:37,826 INFO L263 TraceCheckUtils]: 55: Hoare triple {3671#false} call __blast_assert(); {3671#false} is VALID [2020-07-10 15:06:37,827 INFO L280 TraceCheckUtils]: 56: Hoare triple {3671#false} assume !false; {3671#false} is VALID [2020-07-10 15:06:37,834 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 9 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2020-07-10 15:06:37,835 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2020-07-10 15:06:37,835 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [18] total 26 [2020-07-10 15:06:37,838 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1762576632] [2020-07-10 15:06:37,839 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 57 [2020-07-10 15:06:37,839 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:37,839 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states. [2020-07-10 15:06:37,953 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:37,953 INFO L459 AbstractCegarLoop]: Interpolant automaton has 15 states [2020-07-10 15:06:37,953 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:37,954 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2020-07-10 15:06:37,954 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=81, Invalid=569, Unknown=0, NotChecked=0, Total=650 [2020-07-10 15:06:37,955 INFO L87 Difference]: Start difference. First operand 47 states and 49 transitions. Second operand 15 states. [2020-07-10 15:06:39,940 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:39,941 INFO L93 Difference]: Finished difference Result 60 states and 62 transitions. [2020-07-10 15:06:39,941 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2020-07-10 15:06:39,941 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 57 [2020-07-10 15:06:39,941 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:39,941 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-10 15:06:39,944 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 59 transitions. [2020-07-10 15:06:39,944 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-10 15:06:39,946 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 59 transitions. [2020-07-10 15:06:39,947 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 16 states and 59 transitions. [2020-07-10 15:06:40,068 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:40,070 INFO L225 Difference]: With dead ends: 60 [2020-07-10 15:06:40,070 INFO L226 Difference]: Without dead ends: 52 [2020-07-10 15:06:40,072 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-10 15:06:40,072 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2020-07-10 15:06:40,246 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 47. [2020-07-10 15:06:40,247 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:40,247 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 47 states. [2020-07-10 15:06:40,247 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 47 states. [2020-07-10 15:06:40,247 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 47 states. [2020-07-10 15:06:40,250 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:40,250 INFO L93 Difference]: Finished difference Result 52 states and 54 transitions. [2020-07-10 15:06:40,251 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 54 transitions. [2020-07-10 15:06:40,252 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:40,252 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:40,252 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 52 states. [2020-07-10 15:06:40,252 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 52 states. [2020-07-10 15:06:40,261 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:40,261 INFO L93 Difference]: Finished difference Result 52 states and 54 transitions. [2020-07-10 15:06:40,261 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 54 transitions. [2020-07-10 15:06:40,262 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:40,262 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:40,262 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:40,262 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:40,262 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2020-07-10 15:06:40,263 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 48 transitions. [2020-07-10 15:06:40,264 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 48 transitions. Word has length 57 [2020-07-10 15:06:40,264 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:40,264 INFO L479 AbstractCegarLoop]: Abstraction has 47 states and 48 transitions. [2020-07-10 15:06:40,270 INFO L480 AbstractCegarLoop]: Interpolant automaton has 15 states. [2020-07-10 15:06:40,270 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 48 transitions. [2020-07-10 15:06:40,271 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-10 15:06:40,271 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:40,272 INFO L422 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:40,487 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable8,8 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:40,488 INFO L427 AbstractCegarLoop]: === Iteration 10 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:40,488 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:40,488 INFO L82 PathProgramCache]: Analyzing trace with hash 779326012, now seen corresponding path program 1 times [2020-07-10 15:06:40,488 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:40,489 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [780651908] [2020-07-10 15:06:40,489 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:40,509 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:40,572 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:40,576 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-10 15:06:40,576 INFO L280 TraceCheckUtils]: 1: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,577 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {4203#true} {4203#true} #86#return; {4203#true} is VALID [2020-07-10 15:06:40,587 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:40,594 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:40,597 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-10 15:06:40,597 INFO L280 TraceCheckUtils]: 1: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-10 15:06:40,598 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-10 15:06:40,598 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-10 15:06:40,598 INFO L280 TraceCheckUtils]: 4: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,598 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-10 15:06:40,598 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-10 15:06:40,599 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-10 15:06:40,599 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-10 15:06:40,600 INFO L280 TraceCheckUtils]: 3: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-10 15:06:40,600 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-10 15:06:40,600 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-10 15:06:40,600 INFO L280 TraceCheckUtils]: 6: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,600 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-10 15:06:40,601 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-10 15:06:40,601 INFO L280 TraceCheckUtils]: 9: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,601 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {4203#true} {4203#true} #70#return; {4203#true} is VALID [2020-07-10 15:06:40,602 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:40,612 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:40,616 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-10 15:06:40,616 INFO L280 TraceCheckUtils]: 1: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-10 15:06:40,616 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-10 15:06:40,616 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-10 15:06:40,616 INFO L280 TraceCheckUtils]: 4: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,617 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-10 15:06:40,617 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-10 15:06:40,618 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-10 15:06:40,618 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-10 15:06:40,618 INFO L280 TraceCheckUtils]: 3: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-10 15:06:40,618 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-10 15:06:40,619 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-10 15:06:40,619 INFO L280 TraceCheckUtils]: 6: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,619 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-10 15:06:40,619 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-10 15:06:40,619 INFO L280 TraceCheckUtils]: 9: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,619 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {4203#true} {4203#true} #72#return; {4203#true} is VALID [2020-07-10 15:06:40,633 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:40,666 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-10 15:06:40,667 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-10 15:06:40,667 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-10 15:06:40,668 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-10 15:06:40,669 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-10 15:06:40,670 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-10 15:06:40,672 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:40,685 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-10 15:06:40,686 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-10 15:06:40,687 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-10 15:06:40,688 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-10 15:06:40,688 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-10 15:06:40,690 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-10 15:06:40,691 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:40,733 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-10 15:06:40,734 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-10 15:06:40,735 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-10 15:06:40,736 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-10 15:06:40,737 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-10 15:06:40,737 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-10 15:06:40,738 INFO L280 TraceCheckUtils]: 2: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,738 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4203#true} {4203#true} #86#return; {4203#true} is VALID [2020-07-10 15:06:40,738 INFO L263 TraceCheckUtils]: 4: Hoare triple {4203#true} call #t~ret34 := main(); {4203#true} is VALID [2020-07-10 15:06:40,738 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-10 15:06:40,739 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-10 15:06:40,739 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-10 15:06:40,740 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-10 15:06:40,740 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-10 15:06:40,740 INFO L280 TraceCheckUtils]: 10: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-10 15:06:40,740 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-10 15:06:40,741 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-10 15:06:40,741 INFO L280 TraceCheckUtils]: 13: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,741 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-10 15:06:40,741 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-10 15:06:40,741 INFO L280 TraceCheckUtils]: 16: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,741 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {4203#true} {4203#true} #70#return; {4203#true} is VALID [2020-07-10 15:06:40,741 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-10 15:06:40,742 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-10 15:06:40,742 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-10 15:06:40,743 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-10 15:06:40,743 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-10 15:06:40,743 INFO L280 TraceCheckUtils]: 23: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-10 15:06:40,743 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-10 15:06:40,743 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-10 15:06:40,743 INFO L280 TraceCheckUtils]: 26: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,743 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-10 15:06:40,744 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-10 15:06:40,744 INFO L280 TraceCheckUtils]: 29: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:40,744 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {4203#true} {4203#true} #72#return; {4203#true} is VALID [2020-07-10 15:06:40,744 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-10 15:06:40,744 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-10 15:06:40,745 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-10 15:06:40,746 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-10 15:06:40,746 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-10 15:06:40,747 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-10 15:06:40,747 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-10 15:06:40,748 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-10 15:06:40,749 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-10 15:06:40,750 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-10 15:06:40,750 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-10 15:06:40,751 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-10 15:06:40,752 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-10 15:06:40,752 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-10 15:06:40,753 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-10 15:06:40,754 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-10 15:06:40,755 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-10 15:06:40,755 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-10 15:06:40,757 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-10 15:06:40,757 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-10 15:06:40,758 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-10 15:06:40,759 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-10 15:06:40,759 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-10 15:06:40,759 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-10 15:06:40,759 INFO L263 TraceCheckUtils]: 55: Hoare triple {4204#false} call __blast_assert(); {4204#false} is VALID [2020-07-10 15:06:40,759 INFO L280 TraceCheckUtils]: 56: Hoare triple {4204#false} assume !false; {4204#false} is VALID [2020-07-10 15:06:40,763 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 4 proven. 5 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2020-07-10 15:06:40,763 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [780651908] [2020-07-10 15:06:40,763 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [959104665] [2020-07-10 15:06:40,763 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:40,871 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:40,873 INFO L264 TraceCheckSpWp]: Trace formula consists of 314 conjuncts, 37 conjunts are in the unsatisfiable core [2020-07-10 15:06:40,887 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:40,890 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:41,036 INFO L263 TraceCheckUtils]: 0: Hoare triple {4203#true} call ULTIMATE.init(); {4203#true} is VALID [2020-07-10 15:06:41,036 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-10 15:06:41,036 INFO L280 TraceCheckUtils]: 2: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:41,036 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4203#true} {4203#true} #86#return; {4203#true} is VALID [2020-07-10 15:06:41,036 INFO L263 TraceCheckUtils]: 4: Hoare triple {4203#true} call #t~ret34 := main(); {4203#true} is VALID [2020-07-10 15:06:41,037 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-10 15:06:41,037 INFO L263 TraceCheckUtils]: 6: Hoare triple {4203#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {4203#true} is VALID [2020-07-10 15:06:41,037 INFO L280 TraceCheckUtils]: 7: Hoare triple {4203#true} ~size := #in~size; {4203#true} is VALID [2020-07-10 15:06:41,037 INFO L263 TraceCheckUtils]: 8: Hoare triple {4203#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4203#true} is VALID [2020-07-10 15:06:41,037 INFO L280 TraceCheckUtils]: 9: Hoare triple {4203#true} ~size := #in~size; {4203#true} is VALID [2020-07-10 15:06:41,037 INFO L280 TraceCheckUtils]: 10: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-10 15:06:41,037 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-10 15:06:41,037 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-10 15:06:41,038 INFO L280 TraceCheckUtils]: 13: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:41,038 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-10 15:06:41,038 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-10 15:06:41,038 INFO L280 TraceCheckUtils]: 16: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:41,038 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {4203#true} {4203#true} #70#return; {4203#true} is VALID [2020-07-10 15:06:41,038 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-10 15:06:41,038 INFO L263 TraceCheckUtils]: 19: Hoare triple {4203#true} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {4203#true} is VALID [2020-07-10 15:06:41,038 INFO L280 TraceCheckUtils]: 20: Hoare triple {4203#true} ~size := #in~size; {4203#true} is VALID [2020-07-10 15:06:41,039 INFO L263 TraceCheckUtils]: 21: Hoare triple {4203#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4203#true} is VALID [2020-07-10 15:06:41,039 INFO L280 TraceCheckUtils]: 22: Hoare triple {4203#true} ~size := #in~size; {4203#true} is VALID [2020-07-10 15:06:41,039 INFO L280 TraceCheckUtils]: 23: Hoare triple {4203#true} assume ~size > 0; {4203#true} is VALID [2020-07-10 15:06:41,039 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-10 15:06:41,039 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-10 15:06:41,039 INFO L280 TraceCheckUtils]: 26: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:41,040 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4203#true} {4203#true} #68#return; {4203#true} is VALID [2020-07-10 15:06:41,040 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-10 15:06:41,040 INFO L280 TraceCheckUtils]: 29: Hoare triple {4203#true} assume true; {4203#true} is VALID [2020-07-10 15:06:41,040 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {4203#true} {4203#true} #72#return; {4203#true} is VALID [2020-07-10 15:06:41,040 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-10 15:06:41,040 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-10 15:06:41,041 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-10 15:06:41,041 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-10 15:06:41,042 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-10 15:06:41,042 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-10 15:06:41,043 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-10 15:06:41,043 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-10 15:06:41,045 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-10 15:06:41,046 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-10 15:06:41,047 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-10 15:06:41,047 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-10 15:06:41,048 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-10 15:06:41,049 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-10 15:06:41,049 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-10 15:06:41,050 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-10 15:06:41,065 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-10 15:06:41,066 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-10 15:06:41,066 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-10 15:06:41,067 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-10 15:06:41,067 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-10 15:06:41,068 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-10 15:06:41,068 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-10 15:06:41,068 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-10 15:06:41,068 INFO L263 TraceCheckUtils]: 55: Hoare triple {4204#false} call __blast_assert(); {4204#false} is VALID [2020-07-10 15:06:41,068 INFO L280 TraceCheckUtils]: 56: Hoare triple {4204#false} assume !false; {4204#false} is VALID [2020-07-10 15:06:41,071 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 11 trivial. 0 not checked. [2020-07-10 15:06:41,071 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:06:41,071 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 8] total 11 [2020-07-10 15:06:41,071 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1511489791] [2020-07-10 15:06:41,072 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 57 [2020-07-10 15:06:41,075 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:41,075 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2020-07-10 15:06:41,133 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:41,133 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2020-07-10 15:06:41,133 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:41,134 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2020-07-10 15:06:41,134 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=86, Unknown=0, NotChecked=0, Total=110 [2020-07-10 15:06:41,134 INFO L87 Difference]: Start difference. First operand 47 states and 48 transitions. Second operand 11 states. [2020-07-10 15:06:42,141 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:42,141 INFO L93 Difference]: Finished difference Result 47 states and 48 transitions. [2020-07-10 15:06:42,141 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-10 15:06:42,141 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 57 [2020-07-10 15:06:42,142 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:42,142 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2020-07-10 15:06:42,143 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 44 transitions. [2020-07-10 15:06:42,143 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2020-07-10 15:06:42,144 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 44 transitions. [2020-07-10 15:06:42,144 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 44 transitions. [2020-07-10 15:06:42,218 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-10 15:06:42,218 INFO L225 Difference]: With dead ends: 47 [2020-07-10 15:06:42,218 INFO L226 Difference]: Without dead ends: 0 [2020-07-10 15:06:42,219 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-10 15:06:42,219 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2020-07-10 15:06:42,220 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2020-07-10 15:06:42,220 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:42,220 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand 0 states. [2020-07-10 15:06:42,220 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2020-07-10 15:06:42,220 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2020-07-10 15:06:42,221 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:42,221 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2020-07-10 15:06:42,221 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2020-07-10 15:06:42,221 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:42,221 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:42,221 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2020-07-10 15:06:42,222 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2020-07-10 15:06:42,222 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:42,222 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2020-07-10 15:06:42,222 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2020-07-10 15:06:42,222 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:42,222 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:42,222 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:42,223 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:42,223 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 0 states. [2020-07-10 15:06:42,223 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2020-07-10 15:06:42,223 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 57 [2020-07-10 15:06:42,223 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:42,223 INFO L479 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2020-07-10 15:06:42,223 INFO L480 AbstractCegarLoop]: Interpolant automaton has 11 states. [2020-07-10 15:06:42,224 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2020-07-10 15:06:42,224 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:42,427 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 9 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable9 [2020-07-10 15:06:42,432 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2020-07-10 15:06:42,874 WARN L193 SmtUtils]: Spent 102.00 ms on a formula simplification. DAG size of input: 39 DAG size of output: 30 [2020-07-10 15:06:43,631 WARN L193 SmtUtils]: Spent 104.00 ms on a formula simplification. DAG size of input: 33 DAG size of output: 30 [2020-07-10 15:06:43,688 INFO L268 CegarLoopResult]: For program point my_mallocFINAL(lines 878 880) no Hoare annotation was computed. [2020-07-10 15:06:43,689 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-10 15:06:43,689 INFO L268 CegarLoopResult]: For program point L879-1(line 879) no Hoare annotation was computed. [2020-07-10 15:06:43,689 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-10 15:06:43,689 INFO L268 CegarLoopResult]: For program point my_mallocEXIT(lines 878 880) no Hoare annotation was computed. [2020-07-10 15:06:43,689 INFO L268 CegarLoopResult]: For program point ULTIMATE.initFINAL(line -1) no Hoare annotation was computed. [2020-07-10 15:06:43,689 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-10 15:06:43,689 INFO L268 CegarLoopResult]: For program point ULTIMATE.initEXIT(line -1) no Hoare annotation was computed. [2020-07-10 15:06:43,689 INFO L268 CegarLoopResult]: For program point L896(lines 896 897) no Hoare annotation was computed. [2020-07-10 15:06:43,690 INFO L268 CegarLoopResult]: For program point L896-2(lines 895 898) no Hoare annotation was computed. [2020-07-10 15:06:43,690 INFO L268 CegarLoopResult]: For program point list_delEXIT(lines 895 898) no Hoare annotation was computed. [2020-07-10 15:06:43,690 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-10 15:06:43,690 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-10 15:06:43,690 INFO L268 CegarLoopResult]: For program point L891(lines 891 892) no Hoare annotation was computed. [2020-07-10 15:06:43,690 INFO L268 CegarLoopResult]: For program point L890(line 890) no Hoare annotation was computed. [2020-07-10 15:06:43,690 INFO L268 CegarLoopResult]: For program point L891-2(lines 889 893) no Hoare annotation was computed. [2020-07-10 15:06:43,691 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-10 15:06:43,691 INFO L268 CegarLoopResult]: For program point L890-3(line 890) no Hoare annotation was computed. [2020-07-10 15:06:43,691 INFO L268 CegarLoopResult]: For program point list_addEXIT(lines 889 893) no Hoare annotation was computed. [2020-07-10 15:06:43,691 INFO L268 CegarLoopResult]: For program point __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION(line 6) no Hoare annotation was computed. [2020-07-10 15:06:43,691 INFO L268 CegarLoopResult]: For program point __blast_assertEXIT(lines 4 7) no Hoare annotation was computed. [2020-07-10 15:06:43,691 INFO L268 CegarLoopResult]: For program point __blast_assertFINAL(lines 4 7) no Hoare annotation was computed. [2020-07-10 15:06:43,691 INFO L271 CegarLoopResult]: At program point __blast_assertENTRY(lines 4 7) the Hoare annotation is: true [2020-07-10 15:06:43,691 INFO L268 CegarLoopResult]: For program point ULTIMATE.startEXIT(line -1) no Hoare annotation was computed. [2020-07-10 15:06:43,691 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-10 15:06:43,692 INFO L271 CegarLoopResult]: At program point ULTIMATE.startENTRY(line -1) the Hoare annotation is: true [2020-07-10 15:06:43,692 INFO L268 CegarLoopResult]: For program point ULTIMATE.startFINAL(line -1) no Hoare annotation was computed. [2020-07-10 15:06:43,692 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-10 15:06:43,692 INFO L268 CegarLoopResult]: For program point mainEXIT(lines 902 917) no Hoare annotation was computed. [2020-07-10 15:06:43,692 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-10 15:06:43,692 INFO L268 CegarLoopResult]: For program point mainFINAL(lines 902 917) no Hoare annotation was computed. [2020-07-10 15:06:43,692 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-10 15:06:43,693 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-10 15:06:43,693 INFO L268 CegarLoopResult]: For program point L906(lines 906 915) no Hoare annotation was computed. [2020-07-10 15:06:43,693 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-10 15:06:43,693 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-10 15:06:43,693 INFO L268 CegarLoopResult]: For program point L906-1(lines 906 915) no Hoare annotation was computed. [2020-07-10 15:06:43,693 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-10 15:06:43,693 INFO L268 CegarLoopResult]: For program point L905-1(line 905) no Hoare annotation was computed. [2020-07-10 15:06:43,694 INFO L268 CegarLoopResult]: For program point L904-1(line 904) no Hoare annotation was computed. [2020-07-10 15:06:43,694 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-10 15:06:43,694 INFO L268 CegarLoopResult]: For program point __getMemoryEXIT(lines 869 876) no Hoare annotation was computed. [2020-07-10 15:06:43,694 INFO L268 CegarLoopResult]: For program point __getMemoryFINAL(lines 869 876) no Hoare annotation was computed. [2020-07-10 15:06:43,694 INFO L268 CegarLoopResult]: For program point L873(lines 873 874) no Hoare annotation was computed. [2020-07-10 15:06:43,694 INFO L268 CegarLoopResult]: For program point L871(line 871) no Hoare annotation was computed. [2020-07-10 15:06:43,694 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-10 15:06:43,694 INFO L268 CegarLoopResult]: For program point L871-3(line 871) no Hoare annotation was computed. [2020-07-10 15:06:43,701 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2020-07-10 15:06:43,701 WARN L170 areAnnotationChecker]: L896 has no Hoare annotation [2020-07-10 15:06:43,702 WARN L170 areAnnotationChecker]: __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION has no Hoare annotation [2020-07-10 15:06:43,702 WARN L170 areAnnotationChecker]: __blast_assertFINAL has no Hoare annotation [2020-07-10 15:06:43,702 WARN L170 areAnnotationChecker]: L890 has no Hoare annotation [2020-07-10 15:06:43,702 WARN L170 areAnnotationChecker]: L871 has no Hoare annotation [2020-07-10 15:06:43,703 WARN L170 areAnnotationChecker]: L879-1 has no Hoare annotation [2020-07-10 15:06:43,703 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2020-07-10 15:06:43,703 WARN L170 areAnnotationChecker]: L896 has no Hoare annotation [2020-07-10 15:06:43,704 WARN L170 areAnnotationChecker]: L896 has no Hoare annotation [2020-07-10 15:06:43,704 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2020-07-10 15:06:43,704 WARN L170 areAnnotationChecker]: __blast_assertFINAL has no Hoare annotation [2020-07-10 15:06:43,704 WARN L170 areAnnotationChecker]: L890 has no Hoare annotation [2020-07-10 15:06:43,704 WARN L170 areAnnotationChecker]: L890 has no Hoare annotation [2020-07-10 15:06:43,704 WARN L170 areAnnotationChecker]: L904-1 has no Hoare annotation [2020-07-10 15:06:43,705 WARN L170 areAnnotationChecker]: L871 has no Hoare annotation [2020-07-10 15:06:43,705 WARN L170 areAnnotationChecker]: L871 has no Hoare annotation [2020-07-10 15:06:43,705 WARN L170 areAnnotationChecker]: L879-1 has no Hoare annotation [2020-07-10 15:06:43,705 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2020-07-10 15:06:43,705 WARN L170 areAnnotationChecker]: L896-2 has no Hoare annotation [2020-07-10 15:06:43,705 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: __blast_assertEXIT has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: __blast_assertEXIT has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: L890-3 has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: L890-3 has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: L904-1 has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: L871-3 has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: L871-3 has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: my_mallocFINAL has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: list_delEXIT has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: L891 has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: L891 has no Hoare annotation [2020-07-10 15:06:43,706 WARN L170 areAnnotationChecker]: L905-1 has no Hoare annotation [2020-07-10 15:06:43,707 WARN L170 areAnnotationChecker]: L873 has no Hoare annotation [2020-07-10 15:06:43,707 WARN L170 areAnnotationChecker]: L873 has no Hoare annotation [2020-07-10 15:06:43,708 WARN L170 areAnnotationChecker]: my_mallocEXIT has no Hoare annotation [2020-07-10 15:06:43,708 WARN L170 areAnnotationChecker]: my_mallocEXIT has no Hoare annotation [2020-07-10 15:06:43,708 WARN L170 areAnnotationChecker]: L906-1 has no Hoare annotation [2020-07-10 15:06:43,709 WARN L170 areAnnotationChecker]: L891-2 has no Hoare annotation [2020-07-10 15:06:43,709 WARN L170 areAnnotationChecker]: L905-1 has no Hoare annotation [2020-07-10 15:06:43,710 WARN L170 areAnnotationChecker]: __getMemoryFINAL has no Hoare annotation [2020-07-10 15:06:43,710 WARN L170 areAnnotationChecker]: L906-1 has no Hoare annotation [2020-07-10 15:06:43,710 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2020-07-10 15:06:43,710 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2020-07-10 15:06:43,710 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2020-07-10 15:06:43,710 WARN L170 areAnnotationChecker]: L906 has no Hoare annotation [2020-07-10 15:06:43,710 WARN L170 areAnnotationChecker]: L906 has no Hoare annotation [2020-07-10 15:06:43,710 WARN L170 areAnnotationChecker]: __getMemoryEXIT has no Hoare annotation [2020-07-10 15:06:43,710 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2020-07-10 15:06:43,713 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2020-07-10 15:06:43,713 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-10 15:06:43,715 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 10.07 03:06:43 BoogieIcfgContainer [2020-07-10 15:06:43,715 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2020-07-10 15:06:43,717 INFO L168 Benchmark]: Toolchain (without parser) took 40808.40 ms. Allocated memory was 138.4 MB in the beginning and 565.7 MB in the end (delta: 427.3 MB). Free memory was 102.5 MB in the beginning and 508.3 MB in the end (delta: -405.8 MB). Peak memory consumption was 21.5 MB. Max. memory is 7.1 GB. [2020-07-10 15:06:43,718 INFO L168 Benchmark]: CDTParser took 0.20 ms. Allocated memory is still 138.4 MB. Free memory was 121.5 MB in the beginning and 121.3 MB in the end (delta: 210.1 kB). Peak memory consumption was 210.1 kB. Max. memory is 7.1 GB. [2020-07-10 15:06:43,719 INFO L168 Benchmark]: CACSL2BoogieTranslator took 591.19 ms. Allocated memory was 138.4 MB in the beginning and 202.9 MB in the end (delta: 64.5 MB). Free memory was 102.3 MB in the beginning and 167.6 MB in the end (delta: -65.3 MB). Peak memory consumption was 27.6 MB. Max. memory is 7.1 GB. [2020-07-10 15:06:43,719 INFO L168 Benchmark]: Boogie Preprocessor took 65.39 ms. Allocated memory is still 202.9 MB. Free memory was 167.6 MB in the beginning and 164.2 MB in the end (delta: 3.4 MB). Peak memory consumption was 3.4 MB. Max. memory is 7.1 GB. [2020-07-10 15:06:43,720 INFO L168 Benchmark]: RCFGBuilder took 683.23 ms. Allocated memory is still 202.9 MB. Free memory was 164.2 MB in the beginning and 108.9 MB in the end (delta: 55.3 MB). Peak memory consumption was 55.3 MB. Max. memory is 7.1 GB. [2020-07-10 15:06:43,720 INFO L168 Benchmark]: TraceAbstraction took 39463.60 ms. Allocated memory was 202.9 MB in the beginning and 565.7 MB in the end (delta: 362.8 MB). Free memory was 108.9 MB in the beginning and 508.3 MB in the end (delta: -399.4 MB). There was no memory consumed. Max. memory is 7.1 GB. [2020-07-10 15:06:43,723 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.20 ms. Allocated memory is still 138.4 MB. Free memory was 121.5 MB in the beginning and 121.3 MB in the end (delta: 210.1 kB). Peak memory consumption was 210.1 kB. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 591.19 ms. Allocated memory was 138.4 MB in the beginning and 202.9 MB in the end (delta: 64.5 MB). Free memory was 102.3 MB in the beginning and 167.6 MB in the end (delta: -65.3 MB). Peak memory consumption was 27.6 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 65.39 ms. Allocated memory is still 202.9 MB. Free memory was 167.6 MB in the beginning and 164.2 MB in the end (delta: 3.4 MB). Peak memory consumption was 3.4 MB. Max. memory is 7.1 GB. * RCFGBuilder took 683.23 ms. Allocated memory is still 202.9 MB. Free memory was 164.2 MB in the beginning and 108.9 MB in the end (delta: 55.3 MB). Peak memory consumption was 55.3 MB. Max. memory is 7.1 GB. * TraceAbstraction took 39463.60 ms. Allocated memory was 202.9 MB in the beginning and 565.7 MB in the end (delta: 362.8 MB). Free memory was 108.9 MB in the beginning and 508.3 MB in the end (delta: -399.4 MB). There was no memory consumed. 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: 38.1s, OverallIterations: 10, TraceHistogramMax: 3, AutomataDifference: 24.7s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 1.2s, InitialAbstractionConstructionTime: 0.0s, HoareTripleCheckerStatistics: 351 SDtfs, 466 SDslu, 1099 SDs, 0 SdLazy, 4786 SolverSat, 451 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 8.5s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 721 GetRequests, 437 SyntacticMatches, 6 SemanticMatches, 278 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1340 ImplicationChecksByTransitivity, 7.4s 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.0s AutomataMinimizationTime, 10 MinimizatonAttempts, 44 StatesRemovedByMinimization, 9 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 18 LocationsWithAnnotation, 73 PreInvPairs, 84 NumberOfFragments, 426 HoareAnnotationTreeSize, 73 FomulaSimplifications, 2261 FormulaSimplificationTreeSizeReduction, 0.2s HoareSimplificationTime, 18 FomulaSimplificationsInter, 1252 FormulaSimplificationTreeSizeReductionInter, 0.9s HoareSimplificationTimeInter, RefinementEngineStatistics: TRACE_CHECK: 0.1s SsaConstructionTime, 0.5s SatisfiabilityAnalysisTime, 8.2s 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...