/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-sets/test_mutex_double_lock.i -------------------------------------------------------------------------------- This is Ultimate 0.1.25-8fc6572 [2020-07-10 15:09:20,521 INFO L177 SettingsManager]: Resetting all preferences to default values... [2020-07-10 15:09:20,523 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2020-07-10 15:09:20,541 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2020-07-10 15:09:20,542 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2020-07-10 15:09:20,543 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2020-07-10 15:09:20,545 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2020-07-10 15:09:20,559 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2020-07-10 15:09:20,561 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2020-07-10 15:09:20,562 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2020-07-10 15:09:20,564 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2020-07-10 15:09:20,567 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2020-07-10 15:09:20,567 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2020-07-10 15:09:20,570 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2020-07-10 15:09:20,571 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2020-07-10 15:09:20,574 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2020-07-10 15:09:20,577 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2020-07-10 15:09:20,578 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2020-07-10 15:09:20,580 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2020-07-10 15:09:20,586 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2020-07-10 15:09:20,590 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2020-07-10 15:09:20,593 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2020-07-10 15:09:20,594 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2020-07-10 15:09:20,595 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2020-07-10 15:09:20,598 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2020-07-10 15:09:20,598 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2020-07-10 15:09:20,598 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2020-07-10 15:09:20,601 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2020-07-10 15:09:20,602 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2020-07-10 15:09:20,603 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2020-07-10 15:09:20,603 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2020-07-10 15:09:20,604 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2020-07-10 15:09:20,605 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2020-07-10 15:09:20,606 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2020-07-10 15:09:20,608 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2020-07-10 15:09:20,608 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2020-07-10 15:09:20,611 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2020-07-10 15:09:20,611 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2020-07-10 15:09:20,611 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2020-07-10 15:09:20,612 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2020-07-10 15:09:20,614 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2020-07-10 15:09:20,615 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:09:20,638 INFO L113 SettingsManager]: Loading preferences was successful [2020-07-10 15:09:20,639 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2020-07-10 15:09:20,641 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2020-07-10 15:09:20,641 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2020-07-10 15:09:20,642 INFO L138 SettingsManager]: * Use SBE=true [2020-07-10 15:09:20,642 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2020-07-10 15:09:20,642 INFO L138 SettingsManager]: * sizeof long=4 [2020-07-10 15:09:20,642 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2020-07-10 15:09:20,642 INFO L138 SettingsManager]: * sizeof POINTER=4 [2020-07-10 15:09:20,643 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2020-07-10 15:09:20,644 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2020-07-10 15:09:20,644 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2020-07-10 15:09:20,644 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2020-07-10 15:09:20,645 INFO L138 SettingsManager]: * sizeof long double=12 [2020-07-10 15:09:20,645 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2020-07-10 15:09:20,645 INFO L138 SettingsManager]: * Use constant arrays=true [2020-07-10 15:09:20,645 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2020-07-10 15:09:20,645 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2020-07-10 15:09:20,646 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2020-07-10 15:09:20,646 INFO L138 SettingsManager]: * To the following directory=./dump/ [2020-07-10 15:09:20,646 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2020-07-10 15:09:20,646 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-10 15:09:20,646 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2020-07-10 15:09:20,647 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2020-07-10 15:09:20,647 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2020-07-10 15:09:20,647 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2020-07-10 15:09:20,647 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2020-07-10 15:09:20,647 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2020-07-10 15:09:20,647 INFO L138 SettingsManager]: * Trace refinement exception blacklist=NONE [2020-07-10 15:09:20,648 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2020-07-10 15:09:20,916 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2020-07-10 15:09:20,929 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2020-07-10 15:09:20,932 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2020-07-10 15:09:20,934 INFO L271 PluginConnector]: Initializing CDTParser... [2020-07-10 15:09:20,934 INFO L275 PluginConnector]: CDTParser initialized [2020-07-10 15:09:20,935 INFO L429 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/ldv-sets/test_mutex_double_lock.i [2020-07-10 15:09:21,009 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/f2e71f54c/f01e47691caf4531b142067217928fee/FLAGf735c9c40 [2020-07-10 15:09:21,547 INFO L306 CDTParser]: Found 1 translation units. [2020-07-10 15:09:21,548 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/ldv-sets/test_mutex_double_lock.i [2020-07-10 15:09:21,564 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/f2e71f54c/f01e47691caf4531b142067217928fee/FLAGf735c9c40 [2020-07-10 15:09:21,837 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/f2e71f54c/f01e47691caf4531b142067217928fee [2020-07-10 15:09:21,847 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2020-07-10 15:09:21,849 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2020-07-10 15:09:21,850 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2020-07-10 15:09:21,850 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2020-07-10 15:09:21,853 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2020-07-10 15:09:21,855 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.07 03:09:21" (1/1) ... [2020-07-10 15:09:21,858 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@2fdaa858 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:09:21, skipping insertion in model container [2020-07-10 15:09:21,859 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.07 03:09:21" (1/1) ... [2020-07-10 15:09:21,866 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2020-07-10 15:09:21,919 INFO L178 MainTranslator]: Built tables and reachable declarations [2020-07-10 15:09:22,415 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-10 15:09:22,425 INFO L203 MainTranslator]: Completed pre-run [2020-07-10 15:09:22,492 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-10 15:09:22,570 INFO L208 MainTranslator]: Completed translation [2020-07-10 15:09:22,571 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:09:22 WrapperNode [2020-07-10 15:09:22,571 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2020-07-10 15:09:22,572 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2020-07-10 15:09:22,572 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2020-07-10 15:09:22,572 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2020-07-10 15:09:22,587 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:09:22" (1/1) ... [2020-07-10 15:09:22,589 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:09:22" (1/1) ... [2020-07-10 15:09:22,619 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:09:22" (1/1) ... [2020-07-10 15:09:22,620 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:09:22" (1/1) ... [2020-07-10 15:09:22,657 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:09:22" (1/1) ... [2020-07-10 15:09:22,663 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:09:22" (1/1) ... [2020-07-10 15:09:22,668 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:09:22" (1/1) ... [2020-07-10 15:09:22,679 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2020-07-10 15:09:22,682 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2020-07-10 15:09:22,683 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2020-07-10 15:09:22,683 INFO L275 PluginConnector]: RCFGBuilder initialized [2020-07-10 15:09:22,684 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:09:22" (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:09:22,746 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2020-07-10 15:09:22,746 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2020-07-10 15:09:22,746 INFO L138 BoogieDeclarations]: Found implementation of procedure __bswap_32 [2020-07-10 15:09:22,746 INFO L138 BoogieDeclarations]: Found implementation of procedure __bswap_64 [2020-07-10 15:09:22,746 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2020-07-10 15:09:22,746 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_malloc [2020-07-10 15:09:22,747 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_successful_malloc [2020-07-10 15:09:22,747 INFO L138 BoogieDeclarations]: Found implementation of procedure LDV_INIT_LIST_HEAD [2020-07-10 15:09:22,747 INFO L138 BoogieDeclarations]: Found implementation of procedure __ldv_list_add [2020-07-10 15:09:22,747 INFO L138 BoogieDeclarations]: Found implementation of procedure __ldv_list_del [2020-07-10 15:09:22,747 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_list_add [2020-07-10 15:09:22,747 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_list_add_tail [2020-07-10 15:09:22,748 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_list_del [2020-07-10 15:09:22,748 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_list_empty [2020-07-10 15:09:22,748 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_init_set [2020-07-10 15:09:22,748 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_set_add [2020-07-10 15:09:22,748 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_set_del [2020-07-10 15:09:22,748 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_is_in_set [2020-07-10 15:09:22,749 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_set_empty [2020-07-10 15:09:22,749 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_initialize [2020-07-10 15:09:22,749 INFO L138 BoogieDeclarations]: Found implementation of procedure mutex_lock [2020-07-10 15:09:22,749 INFO L138 BoogieDeclarations]: Found implementation of procedure mutex_unlock [2020-07-10 15:09:22,749 INFO L138 BoogieDeclarations]: Found implementation of procedure ldv_check_final_state [2020-07-10 15:09:22,749 INFO L138 BoogieDeclarations]: Found implementation of procedure foo [2020-07-10 15:09:22,750 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2020-07-10 15:09:22,750 INFO L130 BoogieDeclarations]: Found specification of procedure __bswap_32 [2020-07-10 15:09:22,750 INFO L130 BoogieDeclarations]: Found specification of procedure __bswap_64 [2020-07-10 15:09:22,750 INFO L130 BoogieDeclarations]: Found specification of procedure __ctype_get_mb_cur_max [2020-07-10 15:09:22,750 INFO L130 BoogieDeclarations]: Found specification of procedure atof [2020-07-10 15:09:22,750 INFO L130 BoogieDeclarations]: Found specification of procedure atoi [2020-07-10 15:09:22,751 INFO L130 BoogieDeclarations]: Found specification of procedure atol [2020-07-10 15:09:22,751 INFO L130 BoogieDeclarations]: Found specification of procedure atoll [2020-07-10 15:09:22,751 INFO L130 BoogieDeclarations]: Found specification of procedure strtod [2020-07-10 15:09:22,751 INFO L130 BoogieDeclarations]: Found specification of procedure strtof [2020-07-10 15:09:22,751 INFO L130 BoogieDeclarations]: Found specification of procedure strtold [2020-07-10 15:09:22,751 INFO L130 BoogieDeclarations]: Found specification of procedure strtol [2020-07-10 15:09:22,751 INFO L130 BoogieDeclarations]: Found specification of procedure strtoul [2020-07-10 15:09:22,752 INFO L130 BoogieDeclarations]: Found specification of procedure strtoq [2020-07-10 15:09:22,752 INFO L130 BoogieDeclarations]: Found specification of procedure strtouq [2020-07-10 15:09:22,752 INFO L130 BoogieDeclarations]: Found specification of procedure strtoll [2020-07-10 15:09:22,752 INFO L130 BoogieDeclarations]: Found specification of procedure strtoull [2020-07-10 15:09:22,752 INFO L130 BoogieDeclarations]: Found specification of procedure l64a [2020-07-10 15:09:22,752 INFO L130 BoogieDeclarations]: Found specification of procedure a64l [2020-07-10 15:09:22,753 INFO L130 BoogieDeclarations]: Found specification of procedure select [2020-07-10 15:09:22,753 INFO L130 BoogieDeclarations]: Found specification of procedure pselect [2020-07-10 15:09:22,753 INFO L130 BoogieDeclarations]: Found specification of procedure gnu_dev_major [2020-07-10 15:09:22,753 INFO L130 BoogieDeclarations]: Found specification of procedure gnu_dev_minor [2020-07-10 15:09:22,753 INFO L130 BoogieDeclarations]: Found specification of procedure gnu_dev_makedev [2020-07-10 15:09:22,753 INFO L130 BoogieDeclarations]: Found specification of procedure random [2020-07-10 15:09:22,753 INFO L130 BoogieDeclarations]: Found specification of procedure srandom [2020-07-10 15:09:22,754 INFO L130 BoogieDeclarations]: Found specification of procedure initstate [2020-07-10 15:09:22,754 INFO L130 BoogieDeclarations]: Found specification of procedure setstate [2020-07-10 15:09:22,754 INFO L130 BoogieDeclarations]: Found specification of procedure random_r [2020-07-10 15:09:22,754 INFO L130 BoogieDeclarations]: Found specification of procedure srandom_r [2020-07-10 15:09:22,754 INFO L130 BoogieDeclarations]: Found specification of procedure initstate_r [2020-07-10 15:09:22,754 INFO L130 BoogieDeclarations]: Found specification of procedure setstate_r [2020-07-10 15:09:22,754 INFO L130 BoogieDeclarations]: Found specification of procedure rand [2020-07-10 15:09:22,755 INFO L130 BoogieDeclarations]: Found specification of procedure srand [2020-07-10 15:09:22,755 INFO L130 BoogieDeclarations]: Found specification of procedure rand_r [2020-07-10 15:09:22,755 INFO L130 BoogieDeclarations]: Found specification of procedure drand48 [2020-07-10 15:09:22,755 INFO L130 BoogieDeclarations]: Found specification of procedure erand48 [2020-07-10 15:09:22,755 INFO L130 BoogieDeclarations]: Found specification of procedure lrand48 [2020-07-10 15:09:22,755 INFO L130 BoogieDeclarations]: Found specification of procedure nrand48 [2020-07-10 15:09:22,756 INFO L130 BoogieDeclarations]: Found specification of procedure mrand48 [2020-07-10 15:09:22,756 INFO L130 BoogieDeclarations]: Found specification of procedure jrand48 [2020-07-10 15:09:22,756 INFO L130 BoogieDeclarations]: Found specification of procedure srand48 [2020-07-10 15:09:22,756 INFO L130 BoogieDeclarations]: Found specification of procedure seed48 [2020-07-10 15:09:22,756 INFO L130 BoogieDeclarations]: Found specification of procedure lcong48 [2020-07-10 15:09:22,756 INFO L130 BoogieDeclarations]: Found specification of procedure drand48_r [2020-07-10 15:09:22,757 INFO L130 BoogieDeclarations]: Found specification of procedure erand48_r [2020-07-10 15:09:22,757 INFO L130 BoogieDeclarations]: Found specification of procedure lrand48_r [2020-07-10 15:09:22,757 INFO L130 BoogieDeclarations]: Found specification of procedure nrand48_r [2020-07-10 15:09:22,757 INFO L130 BoogieDeclarations]: Found specification of procedure mrand48_r [2020-07-10 15:09:22,757 INFO L130 BoogieDeclarations]: Found specification of procedure jrand48_r [2020-07-10 15:09:22,757 INFO L130 BoogieDeclarations]: Found specification of procedure srand48_r [2020-07-10 15:09:22,757 INFO L130 BoogieDeclarations]: Found specification of procedure seed48_r [2020-07-10 15:09:22,758 INFO L130 BoogieDeclarations]: Found specification of procedure lcong48_r [2020-07-10 15:09:22,758 INFO L130 BoogieDeclarations]: Found specification of procedure malloc [2020-07-10 15:09:22,758 INFO L130 BoogieDeclarations]: Found specification of procedure calloc [2020-07-10 15:09:22,758 INFO L130 BoogieDeclarations]: Found specification of procedure realloc [2020-07-10 15:09:22,758 INFO L130 BoogieDeclarations]: Found specification of procedure free [2020-07-10 15:09:22,758 INFO L130 BoogieDeclarations]: Found specification of procedure cfree [2020-07-10 15:09:22,759 INFO L130 BoogieDeclarations]: Found specification of procedure alloca [2020-07-10 15:09:22,759 INFO L130 BoogieDeclarations]: Found specification of procedure valloc [2020-07-10 15:09:22,759 INFO L130 BoogieDeclarations]: Found specification of procedure posix_memalign [2020-07-10 15:09:22,759 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2020-07-10 15:09:22,759 INFO L130 BoogieDeclarations]: Found specification of procedure atexit [2020-07-10 15:09:22,759 INFO L130 BoogieDeclarations]: Found specification of procedure on_exit [2020-07-10 15:09:22,760 INFO L130 BoogieDeclarations]: Found specification of procedure exit [2020-07-10 15:09:22,760 INFO L130 BoogieDeclarations]: Found specification of procedure _Exit [2020-07-10 15:09:22,760 INFO L130 BoogieDeclarations]: Found specification of procedure getenv [2020-07-10 15:09:22,760 INFO L130 BoogieDeclarations]: Found specification of procedure putenv [2020-07-10 15:09:22,760 INFO L130 BoogieDeclarations]: Found specification of procedure setenv [2020-07-10 15:09:22,760 INFO L130 BoogieDeclarations]: Found specification of procedure unsetenv [2020-07-10 15:09:22,760 INFO L130 BoogieDeclarations]: Found specification of procedure clearenv [2020-07-10 15:09:22,761 INFO L130 BoogieDeclarations]: Found specification of procedure mktemp [2020-07-10 15:09:22,761 INFO L130 BoogieDeclarations]: Found specification of procedure mkstemp [2020-07-10 15:09:22,761 INFO L130 BoogieDeclarations]: Found specification of procedure mkstemps [2020-07-10 15:09:22,761 INFO L130 BoogieDeclarations]: Found specification of procedure mkdtemp [2020-07-10 15:09:22,761 INFO L130 BoogieDeclarations]: Found specification of procedure system [2020-07-10 15:09:22,761 INFO L130 BoogieDeclarations]: Found specification of procedure realpath [2020-07-10 15:09:22,762 INFO L130 BoogieDeclarations]: Found specification of procedure bsearch [2020-07-10 15:09:22,762 INFO L130 BoogieDeclarations]: Found specification of procedure qsort [2020-07-10 15:09:22,762 INFO L130 BoogieDeclarations]: Found specification of procedure abs [2020-07-10 15:09:22,762 INFO L130 BoogieDeclarations]: Found specification of procedure labs [2020-07-10 15:09:22,762 INFO L130 BoogieDeclarations]: Found specification of procedure llabs [2020-07-10 15:09:22,762 INFO L130 BoogieDeclarations]: Found specification of procedure div [2020-07-10 15:09:22,762 INFO L130 BoogieDeclarations]: Found specification of procedure ldiv [2020-07-10 15:09:22,763 INFO L130 BoogieDeclarations]: Found specification of procedure lldiv [2020-07-10 15:09:22,763 INFO L130 BoogieDeclarations]: Found specification of procedure ecvt [2020-07-10 15:09:22,763 INFO L130 BoogieDeclarations]: Found specification of procedure fcvt [2020-07-10 15:09:22,763 INFO L130 BoogieDeclarations]: Found specification of procedure gcvt [2020-07-10 15:09:22,763 INFO L130 BoogieDeclarations]: Found specification of procedure qecvt [2020-07-10 15:09:22,763 INFO L130 BoogieDeclarations]: Found specification of procedure qfcvt [2020-07-10 15:09:22,763 INFO L130 BoogieDeclarations]: Found specification of procedure qgcvt [2020-07-10 15:09:22,763 INFO L130 BoogieDeclarations]: Found specification of procedure ecvt_r [2020-07-10 15:09:22,764 INFO L130 BoogieDeclarations]: Found specification of procedure fcvt_r [2020-07-10 15:09:22,764 INFO L130 BoogieDeclarations]: Found specification of procedure qecvt_r [2020-07-10 15:09:22,764 INFO L130 BoogieDeclarations]: Found specification of procedure qfcvt_r [2020-07-10 15:09:22,764 INFO L130 BoogieDeclarations]: Found specification of procedure mblen [2020-07-10 15:09:22,764 INFO L130 BoogieDeclarations]: Found specification of procedure mbtowc [2020-07-10 15:09:22,764 INFO L130 BoogieDeclarations]: Found specification of procedure wctomb [2020-07-10 15:09:22,765 INFO L130 BoogieDeclarations]: Found specification of procedure mbstowcs [2020-07-10 15:09:22,765 INFO L130 BoogieDeclarations]: Found specification of procedure wcstombs [2020-07-10 15:09:22,765 INFO L130 BoogieDeclarations]: Found specification of procedure rpmatch [2020-07-10 15:09:22,765 INFO L130 BoogieDeclarations]: Found specification of procedure getsubopt [2020-07-10 15:09:22,765 INFO L130 BoogieDeclarations]: Found specification of procedure getloadavg [2020-07-10 15:09:22,765 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_error [2020-07-10 15:09:22,765 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2020-07-10 15:09:22,766 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2020-07-10 15:09:22,766 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_malloc [2020-07-10 15:09:22,766 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2020-07-10 15:09:22,766 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_successful_malloc [2020-07-10 15:09:22,766 INFO L130 BoogieDeclarations]: Found specification of procedure LDV_INIT_LIST_HEAD [2020-07-10 15:09:22,766 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2020-07-10 15:09:22,767 INFO L130 BoogieDeclarations]: Found specification of procedure __ldv_list_add [2020-07-10 15:09:22,767 INFO L130 BoogieDeclarations]: Found specification of procedure __ldv_list_del [2020-07-10 15:09:22,767 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_list_add [2020-07-10 15:09:22,767 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2020-07-10 15:09:22,767 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_list_add_tail [2020-07-10 15:09:22,767 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_list_del [2020-07-10 15:09:22,768 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_list_empty [2020-07-10 15:09:22,768 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_init_set [2020-07-10 15:09:22,768 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_set_add [2020-07-10 15:09:22,768 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_set_del [2020-07-10 15:09:22,768 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_is_in_set [2020-07-10 15:09:22,768 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_set_empty [2020-07-10 15:09:22,768 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2020-07-10 15:09:22,769 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_initialize [2020-07-10 15:09:22,769 INFO L130 BoogieDeclarations]: Found specification of procedure mutex_lock [2020-07-10 15:09:22,769 INFO L130 BoogieDeclarations]: Found specification of procedure mutex_unlock [2020-07-10 15:09:22,769 INFO L130 BoogieDeclarations]: Found specification of procedure ldv_check_final_state [2020-07-10 15:09:22,769 INFO L130 BoogieDeclarations]: Found specification of procedure foo [2020-07-10 15:09:22,769 INFO L130 BoogieDeclarations]: Found specification of procedure main [2020-07-10 15:09:22,769 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2020-07-10 15:09:22,770 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2020-07-10 15:09:22,770 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2020-07-10 15:09:22,770 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2020-07-10 15:09:23,680 INFO L290 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2020-07-10 15:09:23,680 INFO L295 CfgBuilder]: Removed 2 assume(true) statements. [2020-07-10 15:09:23,685 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.07 03:09:23 BoogieIcfgContainer [2020-07-10 15:09:23,685 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2020-07-10 15:09:23,686 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2020-07-10 15:09:23,686 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2020-07-10 15:09:23,690 INFO L275 PluginConnector]: TraceAbstraction initialized [2020-07-10 15:09:23,690 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 10.07 03:09:21" (1/3) ... [2020-07-10 15:09:23,691 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@1588fe92 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 10.07 03:09:23, skipping insertion in model container [2020-07-10 15:09:23,692 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:09:22" (2/3) ... [2020-07-10 15:09:23,692 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@1588fe92 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 10.07 03:09:23, skipping insertion in model container [2020-07-10 15:09:23,692 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.07 03:09:23" (3/3) ... [2020-07-10 15:09:23,694 INFO L109 eAbstractionObserver]: Analyzing ICFG test_mutex_double_lock.i [2020-07-10 15:09:23,705 INFO L157 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2020-07-10 15:09:23,712 INFO L169 ceAbstractionStarter]: Appying trace abstraction to program that has 3 error locations. [2020-07-10 15:09:23,727 INFO L251 AbstractCegarLoop]: Starting to check reachability of 3 error locations. [2020-07-10 15:09:23,753 INFO L375 AbstractCegarLoop]: Interprodecural is true [2020-07-10 15:09:23,753 INFO L376 AbstractCegarLoop]: Hoare is true [2020-07-10 15:09:23,753 INFO L377 AbstractCegarLoop]: Compute interpolants for FPandBP [2020-07-10 15:09:23,753 INFO L378 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2020-07-10 15:09:23,754 INFO L379 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2020-07-10 15:09:23,754 INFO L380 AbstractCegarLoop]: Difference is false [2020-07-10 15:09:23,754 INFO L381 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2020-07-10 15:09:23,754 INFO L385 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2020-07-10 15:09:23,777 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states. [2020-07-10 15:09:23,785 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2020-07-10 15:09:23,785 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:09:23,787 INFO L422 BasicCegarLoop]: trace histogram [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:09:23,787 INFO L427 AbstractCegarLoop]: === Iteration 1 === [mutex_unlockErr0ASSERT_VIOLATIONERROR_FUNCTION, ldv_check_final_stateErr0ASSERT_VIOLATIONERROR_FUNCTION, mutex_lockErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:09:23,794 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:09:23,794 INFO L82 PathProgramCache]: Analyzing trace with hash -326397870, now seen corresponding path program 1 times [2020-07-10 15:09:23,805 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:09:23,806 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [788497474] [2020-07-10 15:09:23,806 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:09:23,950 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:24,060 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:24,086 INFO L280 TraceCheckUtils]: 0: Hoare triple {143#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {113#true} is VALID [2020-07-10 15:09:24,086 INFO L280 TraceCheckUtils]: 1: Hoare triple {113#true} assume true; {113#true} is VALID [2020-07-10 15:09:24,087 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {113#true} {113#true} #210#return; {113#true} is VALID [2020-07-10 15:09:24,105 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:24,117 INFO L280 TraceCheckUtils]: 0: Hoare triple {113#true} assume true; {113#true} is VALID [2020-07-10 15:09:24,117 INFO L275 TraceCheckUtils]: 1: Hoare quadruple {113#true} {113#true} #184#return; {113#true} is VALID [2020-07-10 15:09:24,139 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:24,170 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:24,180 INFO L280 TraceCheckUtils]: 0: Hoare triple {113#true} ~cond := #in~cond; {113#true} is VALID [2020-07-10 15:09:24,181 INFO L280 TraceCheckUtils]: 1: Hoare triple {113#true} assume 0 == ~cond;assume false; {114#false} is VALID [2020-07-10 15:09:24,182 INFO L280 TraceCheckUtils]: 2: Hoare triple {114#false} assume true; {114#false} is VALID [2020-07-10 15:09:24,182 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {114#false} {113#true} #204#return; {114#false} is VALID [2020-07-10 15:09:24,183 INFO L280 TraceCheckUtils]: 0: Hoare triple {144#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {113#true} is VALID [2020-07-10 15:09:24,184 INFO L263 TraceCheckUtils]: 1: Hoare triple {113#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {113#true} is VALID [2020-07-10 15:09:24,187 INFO L280 TraceCheckUtils]: 2: Hoare triple {113#true} ~cond := #in~cond; {113#true} is VALID [2020-07-10 15:09:24,189 INFO L280 TraceCheckUtils]: 3: Hoare triple {113#true} assume 0 == ~cond;assume false; {114#false} is VALID [2020-07-10 15:09:24,189 INFO L280 TraceCheckUtils]: 4: Hoare triple {114#false} assume true; {114#false} is VALID [2020-07-10 15:09:24,190 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {114#false} {113#true} #204#return; {114#false} is VALID [2020-07-10 15:09:24,190 INFO L280 TraceCheckUtils]: 6: Hoare triple {114#false} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {114#false} is VALID [2020-07-10 15:09:24,190 INFO L280 TraceCheckUtils]: 7: Hoare triple {114#false} assume true; {114#false} is VALID [2020-07-10 15:09:24,191 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {114#false} {113#true} #186#return; {114#false} is VALID [2020-07-10 15:09:24,201 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:24,225 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:24,233 INFO L280 TraceCheckUtils]: 0: Hoare triple {113#true} ~cond := #in~cond; {113#true} is VALID [2020-07-10 15:09:24,234 INFO L280 TraceCheckUtils]: 1: Hoare triple {113#true} assume 0 == ~cond;assume false; {114#false} is VALID [2020-07-10 15:09:24,235 INFO L280 TraceCheckUtils]: 2: Hoare triple {114#false} assume true; {114#false} is VALID [2020-07-10 15:09:24,235 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {114#false} {113#true} #204#return; {114#false} is VALID [2020-07-10 15:09:24,235 INFO L280 TraceCheckUtils]: 0: Hoare triple {144#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {113#true} is VALID [2020-07-10 15:09:24,236 INFO L263 TraceCheckUtils]: 1: Hoare triple {113#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {113#true} is VALID [2020-07-10 15:09:24,236 INFO L280 TraceCheckUtils]: 2: Hoare triple {113#true} ~cond := #in~cond; {113#true} is VALID [2020-07-10 15:09:24,237 INFO L280 TraceCheckUtils]: 3: Hoare triple {113#true} assume 0 == ~cond;assume false; {114#false} is VALID [2020-07-10 15:09:24,238 INFO L280 TraceCheckUtils]: 4: Hoare triple {114#false} assume true; {114#false} is VALID [2020-07-10 15:09:24,238 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {114#false} {113#true} #204#return; {114#false} is VALID [2020-07-10 15:09:24,238 INFO L280 TraceCheckUtils]: 6: Hoare triple {114#false} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {114#false} is VALID [2020-07-10 15:09:24,239 INFO L280 TraceCheckUtils]: 7: Hoare triple {114#false} assume true; {114#false} is VALID [2020-07-10 15:09:24,239 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {114#false} {114#false} #188#return; {114#false} is VALID [2020-07-10 15:09:24,244 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:24,262 INFO L280 TraceCheckUtils]: 0: Hoare triple {113#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {113#true} is VALID [2020-07-10 15:09:24,263 INFO L280 TraceCheckUtils]: 1: Hoare triple {113#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {113#true} is VALID [2020-07-10 15:09:24,263 INFO L280 TraceCheckUtils]: 2: Hoare triple {113#true} #res := 0; {113#true} is VALID [2020-07-10 15:09:24,264 INFO L280 TraceCheckUtils]: 3: Hoare triple {113#true} assume true; {113#true} is VALID [2020-07-10 15:09:24,264 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {113#true} {114#false} #172#return; {114#false} is VALID [2020-07-10 15:09:24,266 INFO L263 TraceCheckUtils]: 0: Hoare triple {113#true} call ULTIMATE.init(); {143#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:24,266 INFO L280 TraceCheckUtils]: 1: Hoare triple {143#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {113#true} is VALID [2020-07-10 15:09:24,267 INFO L280 TraceCheckUtils]: 2: Hoare triple {113#true} assume true; {113#true} is VALID [2020-07-10 15:09:24,267 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {113#true} {113#true} #210#return; {113#true} is VALID [2020-07-10 15:09:24,267 INFO L263 TraceCheckUtils]: 4: Hoare triple {113#true} call #t~ret31 := main(); {113#true} is VALID [2020-07-10 15:09:24,268 INFO L263 TraceCheckUtils]: 5: Hoare triple {113#true} call foo(); {113#true} is VALID [2020-07-10 15:09:24,268 INFO L263 TraceCheckUtils]: 6: Hoare triple {113#true} call ldv_initialize(); {113#true} is VALID [2020-07-10 15:09:24,268 INFO L280 TraceCheckUtils]: 7: Hoare triple {113#true} assume true; {113#true} is VALID [2020-07-10 15:09:24,268 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {113#true} {113#true} #184#return; {113#true} is VALID [2020-07-10 15:09:24,271 INFO L263 TraceCheckUtils]: 9: Hoare triple {113#true} call #t~ret29.base, #t~ret29.offset := ldv_successful_malloc(8); {144#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:24,271 INFO L280 TraceCheckUtils]: 10: Hoare triple {144#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {113#true} is VALID [2020-07-10 15:09:24,272 INFO L263 TraceCheckUtils]: 11: Hoare triple {113#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {113#true} is VALID [2020-07-10 15:09:24,272 INFO L280 TraceCheckUtils]: 12: Hoare triple {113#true} ~cond := #in~cond; {113#true} is VALID [2020-07-10 15:09:24,277 INFO L280 TraceCheckUtils]: 13: Hoare triple {113#true} assume 0 == ~cond;assume false; {114#false} is VALID [2020-07-10 15:09:24,277 INFO L280 TraceCheckUtils]: 14: Hoare triple {114#false} assume true; {114#false} is VALID [2020-07-10 15:09:24,277 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {114#false} {113#true} #204#return; {114#false} is VALID [2020-07-10 15:09:24,278 INFO L280 TraceCheckUtils]: 16: Hoare triple {114#false} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {114#false} is VALID [2020-07-10 15:09:24,278 INFO L280 TraceCheckUtils]: 17: Hoare triple {114#false} assume true; {114#false} is VALID [2020-07-10 15:09:24,278 INFO L275 TraceCheckUtils]: 18: Hoare quadruple {114#false} {113#true} #186#return; {114#false} is VALID [2020-07-10 15:09:24,279 INFO L280 TraceCheckUtils]: 19: Hoare triple {114#false} ~m1~0.base, ~m1~0.offset := #t~ret29.base, #t~ret29.offset;havoc #t~ret29.base, #t~ret29.offset; {114#false} is VALID [2020-07-10 15:09:24,279 INFO L263 TraceCheckUtils]: 20: Hoare triple {114#false} call #t~ret30.base, #t~ret30.offset := ldv_successful_malloc(8); {144#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:24,279 INFO L280 TraceCheckUtils]: 21: Hoare triple {144#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {113#true} is VALID [2020-07-10 15:09:24,279 INFO L263 TraceCheckUtils]: 22: Hoare triple {113#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {113#true} is VALID [2020-07-10 15:09:24,280 INFO L280 TraceCheckUtils]: 23: Hoare triple {113#true} ~cond := #in~cond; {113#true} is VALID [2020-07-10 15:09:24,281 INFO L280 TraceCheckUtils]: 24: Hoare triple {113#true} assume 0 == ~cond;assume false; {114#false} is VALID [2020-07-10 15:09:24,282 INFO L280 TraceCheckUtils]: 25: Hoare triple {114#false} assume true; {114#false} is VALID [2020-07-10 15:09:24,282 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {114#false} {113#true} #204#return; {114#false} is VALID [2020-07-10 15:09:24,284 INFO L280 TraceCheckUtils]: 27: Hoare triple {114#false} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {114#false} is VALID [2020-07-10 15:09:24,285 INFO L280 TraceCheckUtils]: 28: Hoare triple {114#false} assume true; {114#false} is VALID [2020-07-10 15:09:24,285 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {114#false} {114#false} #188#return; {114#false} is VALID [2020-07-10 15:09:24,285 INFO L280 TraceCheckUtils]: 30: Hoare triple {114#false} ~m2~0.base, ~m2~0.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {114#false} is VALID [2020-07-10 15:09:24,286 INFO L263 TraceCheckUtils]: 31: Hoare triple {114#false} call mutex_lock(~m1~0.base, ~m1~0.offset); {114#false} is VALID [2020-07-10 15:09:24,286 INFO L280 TraceCheckUtils]: 32: Hoare triple {114#false} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {114#false} is VALID [2020-07-10 15:09:24,288 INFO L263 TraceCheckUtils]: 33: Hoare triple {114#false} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {113#true} is VALID [2020-07-10 15:09:24,291 INFO L280 TraceCheckUtils]: 34: Hoare triple {113#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {113#true} is VALID [2020-07-10 15:09:24,291 INFO L280 TraceCheckUtils]: 35: Hoare triple {113#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {113#true} is VALID [2020-07-10 15:09:24,292 INFO L280 TraceCheckUtils]: 36: Hoare triple {113#true} #res := 0; {113#true} is VALID [2020-07-10 15:09:24,292 INFO L280 TraceCheckUtils]: 37: Hoare triple {113#true} assume true; {113#true} is VALID [2020-07-10 15:09:24,292 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {113#true} {114#false} #172#return; {114#false} is VALID [2020-07-10 15:09:24,292 INFO L280 TraceCheckUtils]: 39: Hoare triple {114#false} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {114#false} is VALID [2020-07-10 15:09:24,293 INFO L280 TraceCheckUtils]: 40: Hoare triple {114#false} assume 0 != #t~ret26;havoc #t~ret26; {114#false} is VALID [2020-07-10 15:09:24,293 INFO L280 TraceCheckUtils]: 41: Hoare triple {114#false} assume !false; {114#false} is VALID [2020-07-10 15:09:24,302 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2020-07-10 15:09:24,303 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [788497474] [2020-07-10 15:09:24,304 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-10 15:09:24,305 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2020-07-10 15:09:24,305 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1053829278] [2020-07-10 15:09:24,312 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 42 [2020-07-10 15:09:24,315 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:09:24,319 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2020-07-10 15:09:24,376 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:09:24,376 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2020-07-10 15:09:24,376 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:09:24,386 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2020-07-10 15:09:24,387 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2020-07-10 15:09:24,389 INFO L87 Difference]: Start difference. First operand 110 states. Second operand 4 states. [2020-07-10 15:09:25,271 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:25,272 INFO L93 Difference]: Finished difference Result 217 states and 268 transitions. [2020-07-10 15:09:25,272 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2020-07-10 15:09:25,272 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 42 [2020-07-10 15:09:25,272 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:09:25,274 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2020-07-10 15:09:25,296 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 268 transitions. [2020-07-10 15:09:25,296 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2020-07-10 15:09:25,309 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 268 transitions. [2020-07-10 15:09:25,310 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 268 transitions. [2020-07-10 15:09:25,728 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 268 edges. 268 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:09:25,747 INFO L225 Difference]: With dead ends: 217 [2020-07-10 15:09:25,747 INFO L226 Difference]: Without dead ends: 111 [2020-07-10 15:09:25,753 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 18 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2020-07-10 15:09:25,772 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 111 states. [2020-07-10 15:09:25,881 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 111 to 98. [2020-07-10 15:09:25,881 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:09:25,882 INFO L82 GeneralOperation]: Start isEquivalent. First operand 111 states. Second operand 98 states. [2020-07-10 15:09:25,882 INFO L74 IsIncluded]: Start isIncluded. First operand 111 states. Second operand 98 states. [2020-07-10 15:09:25,882 INFO L87 Difference]: Start difference. First operand 111 states. Second operand 98 states. [2020-07-10 15:09:25,894 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:25,894 INFO L93 Difference]: Finished difference Result 111 states and 126 transitions. [2020-07-10 15:09:25,894 INFO L276 IsEmpty]: Start isEmpty. Operand 111 states and 126 transitions. [2020-07-10 15:09:25,897 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:09:25,897 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:09:25,897 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand 111 states. [2020-07-10 15:09:25,897 INFO L87 Difference]: Start difference. First operand 98 states. Second operand 111 states. [2020-07-10 15:09:25,906 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:25,907 INFO L93 Difference]: Finished difference Result 111 states and 126 transitions. [2020-07-10 15:09:25,907 INFO L276 IsEmpty]: Start isEmpty. Operand 111 states and 126 transitions. [2020-07-10 15:09:25,909 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:09:25,909 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:09:25,909 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:09:25,910 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:09:25,910 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 98 states. [2020-07-10 15:09:25,915 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 98 states to 98 states and 108 transitions. [2020-07-10 15:09:25,919 INFO L78 Accepts]: Start accepts. Automaton has 98 states and 108 transitions. Word has length 42 [2020-07-10 15:09:25,920 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:09:25,920 INFO L479 AbstractCegarLoop]: Abstraction has 98 states and 108 transitions. [2020-07-10 15:09:25,920 INFO L480 AbstractCegarLoop]: Interpolant automaton has 4 states. [2020-07-10 15:09:25,920 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 108 transitions. [2020-07-10 15:09:25,922 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2020-07-10 15:09:25,922 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:09:25,922 INFO L422 BasicCegarLoop]: trace histogram [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:09:25,923 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2020-07-10 15:09:25,923 INFO L427 AbstractCegarLoop]: === Iteration 2 === [mutex_unlockErr0ASSERT_VIOLATIONERROR_FUNCTION, ldv_check_final_stateErr0ASSERT_VIOLATIONERROR_FUNCTION, mutex_lockErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:09:25,923 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:09:25,923 INFO L82 PathProgramCache]: Analyzing trace with hash -934339182, now seen corresponding path program 1 times [2020-07-10 15:09:25,924 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:09:25,924 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1356222160] [2020-07-10 15:09:25,924 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:09:25,958 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:26,044 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:26,051 INFO L280 TraceCheckUtils]: 0: Hoare triple {841#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {810#true} is VALID [2020-07-10 15:09:26,052 INFO L280 TraceCheckUtils]: 1: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,052 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {810#true} {810#true} #210#return; {810#true} is VALID [2020-07-10 15:09:26,053 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:26,056 INFO L280 TraceCheckUtils]: 0: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,057 INFO L275 TraceCheckUtils]: 1: Hoare quadruple {810#true} {810#true} #184#return; {810#true} is VALID [2020-07-10 15:09:26,070 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:26,078 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:26,086 INFO L280 TraceCheckUtils]: 0: Hoare triple {810#true} ~cond := #in~cond; {810#true} is VALID [2020-07-10 15:09:26,086 INFO L280 TraceCheckUtils]: 1: Hoare triple {810#true} assume !(0 == ~cond); {810#true} is VALID [2020-07-10 15:09:26,087 INFO L280 TraceCheckUtils]: 2: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,087 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {810#true} {810#true} #204#return; {810#true} is VALID [2020-07-10 15:09:26,087 INFO L280 TraceCheckUtils]: 0: Hoare triple {842#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {810#true} is VALID [2020-07-10 15:09:26,088 INFO L263 TraceCheckUtils]: 1: Hoare triple {810#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {810#true} is VALID [2020-07-10 15:09:26,088 INFO L280 TraceCheckUtils]: 2: Hoare triple {810#true} ~cond := #in~cond; {810#true} is VALID [2020-07-10 15:09:26,088 INFO L280 TraceCheckUtils]: 3: Hoare triple {810#true} assume !(0 == ~cond); {810#true} is VALID [2020-07-10 15:09:26,088 INFO L280 TraceCheckUtils]: 4: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,089 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {810#true} {810#true} #204#return; {810#true} is VALID [2020-07-10 15:09:26,089 INFO L280 TraceCheckUtils]: 6: Hoare triple {810#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {810#true} is VALID [2020-07-10 15:09:26,089 INFO L280 TraceCheckUtils]: 7: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,090 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {810#true} {810#true} #186#return; {810#true} is VALID [2020-07-10 15:09:26,091 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:26,099 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:26,103 INFO L280 TraceCheckUtils]: 0: Hoare triple {810#true} ~cond := #in~cond; {810#true} is VALID [2020-07-10 15:09:26,103 INFO L280 TraceCheckUtils]: 1: Hoare triple {810#true} assume !(0 == ~cond); {810#true} is VALID [2020-07-10 15:09:26,103 INFO L280 TraceCheckUtils]: 2: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,104 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {810#true} {810#true} #204#return; {810#true} is VALID [2020-07-10 15:09:26,104 INFO L280 TraceCheckUtils]: 0: Hoare triple {842#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {810#true} is VALID [2020-07-10 15:09:26,104 INFO L263 TraceCheckUtils]: 1: Hoare triple {810#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {810#true} is VALID [2020-07-10 15:09:26,105 INFO L280 TraceCheckUtils]: 2: Hoare triple {810#true} ~cond := #in~cond; {810#true} is VALID [2020-07-10 15:09:26,105 INFO L280 TraceCheckUtils]: 3: Hoare triple {810#true} assume !(0 == ~cond); {810#true} is VALID [2020-07-10 15:09:26,105 INFO L280 TraceCheckUtils]: 4: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,106 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {810#true} {810#true} #204#return; {810#true} is VALID [2020-07-10 15:09:26,106 INFO L280 TraceCheckUtils]: 6: Hoare triple {810#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {810#true} is VALID [2020-07-10 15:09:26,106 INFO L280 TraceCheckUtils]: 7: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,106 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {810#true} {810#true} #188#return; {810#true} is VALID [2020-07-10 15:09:26,111 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:26,137 INFO L280 TraceCheckUtils]: 0: Hoare triple {810#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {810#true} is VALID [2020-07-10 15:09:26,137 INFO L280 TraceCheckUtils]: 1: Hoare triple {810#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {810#true} is VALID [2020-07-10 15:09:26,138 INFO L280 TraceCheckUtils]: 2: Hoare triple {810#true} #res := 0; {851#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:26,139 INFO L280 TraceCheckUtils]: 3: Hoare triple {851#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} assume true; {851#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:26,141 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {851#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} {810#true} #172#return; {840#(= |mutex_lock_#t~ret26| 0)} is VALID [2020-07-10 15:09:26,142 INFO L263 TraceCheckUtils]: 0: Hoare triple {810#true} call ULTIMATE.init(); {841#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:26,142 INFO L280 TraceCheckUtils]: 1: Hoare triple {841#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {810#true} is VALID [2020-07-10 15:09:26,142 INFO L280 TraceCheckUtils]: 2: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,143 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {810#true} {810#true} #210#return; {810#true} is VALID [2020-07-10 15:09:26,143 INFO L263 TraceCheckUtils]: 4: Hoare triple {810#true} call #t~ret31 := main(); {810#true} is VALID [2020-07-10 15:09:26,143 INFO L263 TraceCheckUtils]: 5: Hoare triple {810#true} call foo(); {810#true} is VALID [2020-07-10 15:09:26,144 INFO L263 TraceCheckUtils]: 6: Hoare triple {810#true} call ldv_initialize(); {810#true} is VALID [2020-07-10 15:09:26,144 INFO L280 TraceCheckUtils]: 7: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,144 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {810#true} {810#true} #184#return; {810#true} is VALID [2020-07-10 15:09:26,145 INFO L263 TraceCheckUtils]: 9: Hoare triple {810#true} call #t~ret29.base, #t~ret29.offset := ldv_successful_malloc(8); {842#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:26,146 INFO L280 TraceCheckUtils]: 10: Hoare triple {842#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {810#true} is VALID [2020-07-10 15:09:26,146 INFO L263 TraceCheckUtils]: 11: Hoare triple {810#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {810#true} is VALID [2020-07-10 15:09:26,146 INFO L280 TraceCheckUtils]: 12: Hoare triple {810#true} ~cond := #in~cond; {810#true} is VALID [2020-07-10 15:09:26,147 INFO L280 TraceCheckUtils]: 13: Hoare triple {810#true} assume !(0 == ~cond); {810#true} is VALID [2020-07-10 15:09:26,147 INFO L280 TraceCheckUtils]: 14: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,147 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {810#true} {810#true} #204#return; {810#true} is VALID [2020-07-10 15:09:26,148 INFO L280 TraceCheckUtils]: 16: Hoare triple {810#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {810#true} is VALID [2020-07-10 15:09:26,148 INFO L280 TraceCheckUtils]: 17: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,148 INFO L275 TraceCheckUtils]: 18: Hoare quadruple {810#true} {810#true} #186#return; {810#true} is VALID [2020-07-10 15:09:26,148 INFO L280 TraceCheckUtils]: 19: Hoare triple {810#true} ~m1~0.base, ~m1~0.offset := #t~ret29.base, #t~ret29.offset;havoc #t~ret29.base, #t~ret29.offset; {810#true} is VALID [2020-07-10 15:09:26,150 INFO L263 TraceCheckUtils]: 20: Hoare triple {810#true} call #t~ret30.base, #t~ret30.offset := ldv_successful_malloc(8); {842#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:26,150 INFO L280 TraceCheckUtils]: 21: Hoare triple {842#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {810#true} is VALID [2020-07-10 15:09:26,150 INFO L263 TraceCheckUtils]: 22: Hoare triple {810#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {810#true} is VALID [2020-07-10 15:09:26,150 INFO L280 TraceCheckUtils]: 23: Hoare triple {810#true} ~cond := #in~cond; {810#true} is VALID [2020-07-10 15:09:26,151 INFO L280 TraceCheckUtils]: 24: Hoare triple {810#true} assume !(0 == ~cond); {810#true} is VALID [2020-07-10 15:09:26,151 INFO L280 TraceCheckUtils]: 25: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,151 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {810#true} {810#true} #204#return; {810#true} is VALID [2020-07-10 15:09:26,152 INFO L280 TraceCheckUtils]: 27: Hoare triple {810#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {810#true} is VALID [2020-07-10 15:09:26,152 INFO L280 TraceCheckUtils]: 28: Hoare triple {810#true} assume true; {810#true} is VALID [2020-07-10 15:09:26,152 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {810#true} {810#true} #188#return; {810#true} is VALID [2020-07-10 15:09:26,152 INFO L280 TraceCheckUtils]: 30: Hoare triple {810#true} ~m2~0.base, ~m2~0.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {810#true} is VALID [2020-07-10 15:09:26,153 INFO L263 TraceCheckUtils]: 31: Hoare triple {810#true} call mutex_lock(~m1~0.base, ~m1~0.offset); {810#true} is VALID [2020-07-10 15:09:26,153 INFO L280 TraceCheckUtils]: 32: Hoare triple {810#true} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {810#true} is VALID [2020-07-10 15:09:26,153 INFO L263 TraceCheckUtils]: 33: Hoare triple {810#true} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {810#true} is VALID [2020-07-10 15:09:26,153 INFO L280 TraceCheckUtils]: 34: Hoare triple {810#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {810#true} is VALID [2020-07-10 15:09:26,154 INFO L280 TraceCheckUtils]: 35: Hoare triple {810#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {810#true} is VALID [2020-07-10 15:09:26,155 INFO L280 TraceCheckUtils]: 36: Hoare triple {810#true} #res := 0; {851#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:26,155 INFO L280 TraceCheckUtils]: 37: Hoare triple {851#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} assume true; {851#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:26,157 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {851#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} {810#true} #172#return; {840#(= |mutex_lock_#t~ret26| 0)} is VALID [2020-07-10 15:09:26,158 INFO L280 TraceCheckUtils]: 39: Hoare triple {840#(= |mutex_lock_#t~ret26| 0)} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {840#(= |mutex_lock_#t~ret26| 0)} is VALID [2020-07-10 15:09:26,158 INFO L280 TraceCheckUtils]: 40: Hoare triple {840#(= |mutex_lock_#t~ret26| 0)} assume 0 != #t~ret26;havoc #t~ret26; {811#false} is VALID [2020-07-10 15:09:26,159 INFO L280 TraceCheckUtils]: 41: Hoare triple {811#false} assume !false; {811#false} is VALID [2020-07-10 15:09:26,161 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2020-07-10 15:09:26,162 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1356222160] [2020-07-10 15:09:26,162 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-10 15:09:26,162 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2020-07-10 15:09:26,163 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [860755124] [2020-07-10 15:09:26,164 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 42 [2020-07-10 15:09:26,165 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:09:26,165 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2020-07-10 15:09:26,202 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:09:26,203 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2020-07-10 15:09:26,203 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:09:26,203 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2020-07-10 15:09:26,203 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=10, Invalid=20, Unknown=0, NotChecked=0, Total=30 [2020-07-10 15:09:26,204 INFO L87 Difference]: Start difference. First operand 98 states and 108 transitions. Second operand 6 states. [2020-07-10 15:09:27,379 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:27,380 INFO L93 Difference]: Finished difference Result 117 states and 134 transitions. [2020-07-10 15:09:27,380 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2020-07-10 15:09:27,380 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 42 [2020-07-10 15:09:27,382 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:09:27,382 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2020-07-10 15:09:27,396 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 134 transitions. [2020-07-10 15:09:27,397 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2020-07-10 15:09:27,403 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 134 transitions. [2020-07-10 15:09:27,404 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 134 transitions. [2020-07-10 15:09:27,617 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 134 edges. 134 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:09:27,622 INFO L225 Difference]: With dead ends: 117 [2020-07-10 15:09:27,622 INFO L226 Difference]: Without dead ends: 115 [2020-07-10 15:09:27,623 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 14 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=20, Invalid=36, Unknown=0, NotChecked=0, Total=56 [2020-07-10 15:09:27,624 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 115 states. [2020-07-10 15:09:27,712 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 115 to 102. [2020-07-10 15:09:27,712 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:09:27,712 INFO L82 GeneralOperation]: Start isEquivalent. First operand 115 states. Second operand 102 states. [2020-07-10 15:09:27,712 INFO L74 IsIncluded]: Start isIncluded. First operand 115 states. Second operand 102 states. [2020-07-10 15:09:27,713 INFO L87 Difference]: Start difference. First operand 115 states. Second operand 102 states. [2020-07-10 15:09:27,721 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:27,722 INFO L93 Difference]: Finished difference Result 115 states and 132 transitions. [2020-07-10 15:09:27,722 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 132 transitions. [2020-07-10 15:09:27,724 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:09:27,724 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:09:27,724 INFO L74 IsIncluded]: Start isIncluded. First operand 102 states. Second operand 115 states. [2020-07-10 15:09:27,725 INFO L87 Difference]: Start difference. First operand 102 states. Second operand 115 states. [2020-07-10 15:09:27,732 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:27,733 INFO L93 Difference]: Finished difference Result 115 states and 132 transitions. [2020-07-10 15:09:27,733 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 132 transitions. [2020-07-10 15:09:27,734 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:09:27,734 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:09:27,735 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:09:27,735 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:09:27,735 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 102 states. [2020-07-10 15:09:27,741 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 102 states to 102 states and 114 transitions. [2020-07-10 15:09:27,741 INFO L78 Accepts]: Start accepts. Automaton has 102 states and 114 transitions. Word has length 42 [2020-07-10 15:09:27,742 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:09:27,742 INFO L479 AbstractCegarLoop]: Abstraction has 102 states and 114 transitions. [2020-07-10 15:09:27,742 INFO L480 AbstractCegarLoop]: Interpolant automaton has 6 states. [2020-07-10 15:09:27,742 INFO L276 IsEmpty]: Start isEmpty. Operand 102 states and 114 transitions. [2020-07-10 15:09:27,743 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2020-07-10 15:09:27,743 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:09:27,744 INFO L422 BasicCegarLoop]: trace histogram [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:09:27,744 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1 [2020-07-10 15:09:27,744 INFO L427 AbstractCegarLoop]: === Iteration 3 === [mutex_unlockErr0ASSERT_VIOLATIONERROR_FUNCTION, ldv_check_final_stateErr0ASSERT_VIOLATIONERROR_FUNCTION, mutex_lockErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:09:27,744 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:09:27,744 INFO L82 PathProgramCache]: Analyzing trace with hash 640264123, now seen corresponding path program 1 times [2020-07-10 15:09:27,745 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:09:27,745 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1407865919] [2020-07-10 15:09:27,745 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:09:27,771 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:27,885 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:27,899 INFO L280 TraceCheckUtils]: 0: Hoare triple {1422#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:27,901 INFO L280 TraceCheckUtils]: 1: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} assume true; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:27,902 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} {1391#true} #210#return; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:27,903 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:27,906 INFO L280 TraceCheckUtils]: 0: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:27,907 INFO L275 TraceCheckUtils]: 1: Hoare quadruple {1391#true} {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #184#return; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:27,926 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:27,954 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:27,976 INFO L280 TraceCheckUtils]: 0: Hoare triple {1391#true} ~cond := #in~cond; {1391#true} is VALID [2020-07-10 15:09:27,977 INFO L280 TraceCheckUtils]: 1: Hoare triple {1391#true} assume !(0 == ~cond); {1391#true} is VALID [2020-07-10 15:09:27,980 INFO L280 TraceCheckUtils]: 2: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:27,981 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1391#true} {1391#true} #204#return; {1391#true} is VALID [2020-07-10 15:09:27,981 INFO L280 TraceCheckUtils]: 0: Hoare triple {1423#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {1391#true} is VALID [2020-07-10 15:09:27,982 INFO L263 TraceCheckUtils]: 1: Hoare triple {1391#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {1391#true} is VALID [2020-07-10 15:09:27,982 INFO L280 TraceCheckUtils]: 2: Hoare triple {1391#true} ~cond := #in~cond; {1391#true} is VALID [2020-07-10 15:09:27,982 INFO L280 TraceCheckUtils]: 3: Hoare triple {1391#true} assume !(0 == ~cond); {1391#true} is VALID [2020-07-10 15:09:27,982 INFO L280 TraceCheckUtils]: 4: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:27,983 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1391#true} {1391#true} #204#return; {1391#true} is VALID [2020-07-10 15:09:27,983 INFO L280 TraceCheckUtils]: 6: Hoare triple {1391#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {1391#true} is VALID [2020-07-10 15:09:27,985 INFO L280 TraceCheckUtils]: 7: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:28,001 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {1391#true} {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #186#return; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,005 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:28,015 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:28,020 INFO L280 TraceCheckUtils]: 0: Hoare triple {1391#true} ~cond := #in~cond; {1391#true} is VALID [2020-07-10 15:09:28,021 INFO L280 TraceCheckUtils]: 1: Hoare triple {1391#true} assume !(0 == ~cond); {1391#true} is VALID [2020-07-10 15:09:28,021 INFO L280 TraceCheckUtils]: 2: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:28,022 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1391#true} {1391#true} #204#return; {1391#true} is VALID [2020-07-10 15:09:28,022 INFO L280 TraceCheckUtils]: 0: Hoare triple {1423#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {1391#true} is VALID [2020-07-10 15:09:28,022 INFO L263 TraceCheckUtils]: 1: Hoare triple {1391#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {1391#true} is VALID [2020-07-10 15:09:28,023 INFO L280 TraceCheckUtils]: 2: Hoare triple {1391#true} ~cond := #in~cond; {1391#true} is VALID [2020-07-10 15:09:28,023 INFO L280 TraceCheckUtils]: 3: Hoare triple {1391#true} assume !(0 == ~cond); {1391#true} is VALID [2020-07-10 15:09:28,023 INFO L280 TraceCheckUtils]: 4: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:28,023 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1391#true} {1391#true} #204#return; {1391#true} is VALID [2020-07-10 15:09:28,024 INFO L280 TraceCheckUtils]: 6: Hoare triple {1391#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {1391#true} is VALID [2020-07-10 15:09:28,024 INFO L280 TraceCheckUtils]: 7: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:28,025 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {1391#true} {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #188#return; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,031 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:28,115 INFO L280 TraceCheckUtils]: 0: Hoare triple {1391#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {1432#(or (and (not (= 0 (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset))) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base)) (and (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= 0 (+ ldv_is_in_set_~m~1.offset 4))))} is VALID [2020-07-10 15:09:28,117 INFO L280 TraceCheckUtils]: 1: Hoare triple {1432#(or (and (not (= 0 (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset))) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base)) (and (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= 0 (+ ldv_is_in_set_~m~1.offset 4))))} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:28,118 INFO L280 TraceCheckUtils]: 2: Hoare triple {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:28,119 INFO L280 TraceCheckUtils]: 3: Hoare triple {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume true; {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:28,120 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #172#return; {1392#false} is VALID [2020-07-10 15:09:28,122 INFO L263 TraceCheckUtils]: 0: Hoare triple {1391#true} call ULTIMATE.init(); {1422#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:28,123 INFO L280 TraceCheckUtils]: 1: Hoare triple {1422#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,124 INFO L280 TraceCheckUtils]: 2: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} assume true; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,125 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} {1391#true} #210#return; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,126 INFO L263 TraceCheckUtils]: 4: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call #t~ret31 := main(); {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,127 INFO L263 TraceCheckUtils]: 5: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call foo(); {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,128 INFO L263 TraceCheckUtils]: 6: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call ldv_initialize(); {1391#true} is VALID [2020-07-10 15:09:28,128 INFO L280 TraceCheckUtils]: 7: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:28,129 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {1391#true} {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #184#return; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,131 INFO L263 TraceCheckUtils]: 9: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call #t~ret29.base, #t~ret29.offset := ldv_successful_malloc(8); {1423#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:28,131 INFO L280 TraceCheckUtils]: 10: Hoare triple {1423#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {1391#true} is VALID [2020-07-10 15:09:28,131 INFO L263 TraceCheckUtils]: 11: Hoare triple {1391#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {1391#true} is VALID [2020-07-10 15:09:28,132 INFO L280 TraceCheckUtils]: 12: Hoare triple {1391#true} ~cond := #in~cond; {1391#true} is VALID [2020-07-10 15:09:28,132 INFO L280 TraceCheckUtils]: 13: Hoare triple {1391#true} assume !(0 == ~cond); {1391#true} is VALID [2020-07-10 15:09:28,132 INFO L280 TraceCheckUtils]: 14: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:28,133 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1391#true} {1391#true} #204#return; {1391#true} is VALID [2020-07-10 15:09:28,133 INFO L280 TraceCheckUtils]: 16: Hoare triple {1391#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {1391#true} is VALID [2020-07-10 15:09:28,133 INFO L280 TraceCheckUtils]: 17: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:28,135 INFO L275 TraceCheckUtils]: 18: Hoare quadruple {1391#true} {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #186#return; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,136 INFO L280 TraceCheckUtils]: 19: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} ~m1~0.base, ~m1~0.offset := #t~ret29.base, #t~ret29.offset;havoc #t~ret29.base, #t~ret29.offset; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,137 INFO L263 TraceCheckUtils]: 20: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call #t~ret30.base, #t~ret30.offset := ldv_successful_malloc(8); {1423#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:28,137 INFO L280 TraceCheckUtils]: 21: Hoare triple {1423#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {1391#true} is VALID [2020-07-10 15:09:28,138 INFO L263 TraceCheckUtils]: 22: Hoare triple {1391#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {1391#true} is VALID [2020-07-10 15:09:28,138 INFO L280 TraceCheckUtils]: 23: Hoare triple {1391#true} ~cond := #in~cond; {1391#true} is VALID [2020-07-10 15:09:28,138 INFO L280 TraceCheckUtils]: 24: Hoare triple {1391#true} assume !(0 == ~cond); {1391#true} is VALID [2020-07-10 15:09:28,138 INFO L280 TraceCheckUtils]: 25: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:28,139 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {1391#true} {1391#true} #204#return; {1391#true} is VALID [2020-07-10 15:09:28,139 INFO L280 TraceCheckUtils]: 27: Hoare triple {1391#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {1391#true} is VALID [2020-07-10 15:09:28,139 INFO L280 TraceCheckUtils]: 28: Hoare triple {1391#true} assume true; {1391#true} is VALID [2020-07-10 15:09:28,141 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {1391#true} {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #188#return; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,142 INFO L280 TraceCheckUtils]: 30: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} ~m2~0.base, ~m2~0.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,143 INFO L263 TraceCheckUtils]: 31: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call mutex_lock(~m1~0.base, ~m1~0.offset); {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,145 INFO L280 TraceCheckUtils]: 32: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:28,145 INFO L263 TraceCheckUtils]: 33: Hoare triple {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {1391#true} is VALID [2020-07-10 15:09:28,146 INFO L280 TraceCheckUtils]: 34: Hoare triple {1391#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {1432#(or (and (not (= 0 (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset))) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base)) (and (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= 0 (+ ldv_is_in_set_~m~1.offset 4))))} is VALID [2020-07-10 15:09:28,148 INFO L280 TraceCheckUtils]: 35: Hoare triple {1432#(or (and (not (= 0 (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset))) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base)) (and (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= 0 (+ ldv_is_in_set_~m~1.offset 4))))} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:28,149 INFO L280 TraceCheckUtils]: 36: Hoare triple {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:28,150 INFO L280 TraceCheckUtils]: 37: Hoare triple {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume true; {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:28,152 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {1433#(or (not (= 0 |ldv_is_in_set_#in~s.offset|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} {1396#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #172#return; {1392#false} is VALID [2020-07-10 15:09:28,152 INFO L280 TraceCheckUtils]: 39: Hoare triple {1392#false} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {1392#false} is VALID [2020-07-10 15:09:28,153 INFO L280 TraceCheckUtils]: 40: Hoare triple {1392#false} assume 0 != #t~ret26;havoc #t~ret26; {1392#false} is VALID [2020-07-10 15:09:28,153 INFO L280 TraceCheckUtils]: 41: Hoare triple {1392#false} assume !false; {1392#false} is VALID [2020-07-10 15:09:28,159 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2020-07-10 15:09:28,159 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1407865919] [2020-07-10 15:09:28,160 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-10 15:09:28,160 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2020-07-10 15:09:28,160 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [562029655] [2020-07-10 15:09:28,160 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 42 [2020-07-10 15:09:28,161 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:09:28,161 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2020-07-10 15:09:28,209 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:09:28,209 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2020-07-10 15:09:28,209 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:09:28,210 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2020-07-10 15:09:28,210 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2020-07-10 15:09:28,210 INFO L87 Difference]: Start difference. First operand 102 states and 114 transitions. Second operand 7 states. [2020-07-10 15:09:31,652 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:31,652 INFO L93 Difference]: Finished difference Result 288 states and 346 transitions. [2020-07-10 15:09:31,653 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2020-07-10 15:09:31,653 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 42 [2020-07-10 15:09:31,653 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:09:31,653 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-10 15:09:31,662 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 330 transitions. [2020-07-10 15:09:31,662 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-10 15:09:31,671 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 330 transitions. [2020-07-10 15:09:31,671 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 330 transitions. [2020-07-10 15:09:32,295 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 330 edges. 330 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:09:32,306 INFO L225 Difference]: With dead ends: 288 [2020-07-10 15:09:32,306 INFO L226 Difference]: Without dead ends: 200 [2020-07-10 15:09:32,311 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 28 GetRequests, 16 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 19 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=64, Invalid=118, Unknown=0, NotChecked=0, Total=182 [2020-07-10 15:09:32,312 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 200 states. [2020-07-10 15:09:32,528 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 200 to 163. [2020-07-10 15:09:32,528 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:09:32,528 INFO L82 GeneralOperation]: Start isEquivalent. First operand 200 states. Second operand 163 states. [2020-07-10 15:09:32,528 INFO L74 IsIncluded]: Start isIncluded. First operand 200 states. Second operand 163 states. [2020-07-10 15:09:32,529 INFO L87 Difference]: Start difference. First operand 200 states. Second operand 163 states. [2020-07-10 15:09:32,541 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:32,541 INFO L93 Difference]: Finished difference Result 200 states and 239 transitions. [2020-07-10 15:09:32,541 INFO L276 IsEmpty]: Start isEmpty. Operand 200 states and 239 transitions. [2020-07-10 15:09:32,543 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:09:32,543 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:09:32,544 INFO L74 IsIncluded]: Start isIncluded. First operand 163 states. Second operand 200 states. [2020-07-10 15:09:32,544 INFO L87 Difference]: Start difference. First operand 163 states. Second operand 200 states. [2020-07-10 15:09:32,555 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:32,555 INFO L93 Difference]: Finished difference Result 200 states and 239 transitions. [2020-07-10 15:09:32,555 INFO L276 IsEmpty]: Start isEmpty. Operand 200 states and 239 transitions. [2020-07-10 15:09:32,556 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:09:32,557 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:09:32,557 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:09:32,557 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:09:32,557 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 163 states. [2020-07-10 15:09:32,566 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 163 states to 163 states and 194 transitions. [2020-07-10 15:09:32,566 INFO L78 Accepts]: Start accepts. Automaton has 163 states and 194 transitions. Word has length 42 [2020-07-10 15:09:32,566 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:09:32,566 INFO L479 AbstractCegarLoop]: Abstraction has 163 states and 194 transitions. [2020-07-10 15:09:32,567 INFO L480 AbstractCegarLoop]: Interpolant automaton has 7 states. [2020-07-10 15:09:32,567 INFO L276 IsEmpty]: Start isEmpty. Operand 163 states and 194 transitions. [2020-07-10 15:09:32,569 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 91 [2020-07-10 15:09:32,570 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:09:32,570 INFO L422 BasicCegarLoop]: trace histogram [5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 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:09:32,570 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2020-07-10 15:09:32,570 INFO L427 AbstractCegarLoop]: === Iteration 4 === [mutex_unlockErr0ASSERT_VIOLATIONERROR_FUNCTION, ldv_check_final_stateErr0ASSERT_VIOLATIONERROR_FUNCTION, mutex_lockErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:09:32,571 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:09:32,571 INFO L82 PathProgramCache]: Analyzing trace with hash -1149911364, now seen corresponding path program 1 times [2020-07-10 15:09:32,571 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:09:32,571 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [774354338] [2020-07-10 15:09:32,572 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:09:32,607 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,681 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,696 INFO L280 TraceCheckUtils]: 0: Hoare triple {2545#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {2469#true} is VALID [2020-07-10 15:09:32,697 INFO L280 TraceCheckUtils]: 1: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:32,697 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {2469#true} {2469#true} #210#return; {2469#true} is VALID [2020-07-10 15:09:32,698 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,702 INFO L280 TraceCheckUtils]: 0: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:32,703 INFO L275 TraceCheckUtils]: 1: Hoare quadruple {2469#true} {2469#true} #184#return; {2469#true} is VALID [2020-07-10 15:09:32,711 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,725 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,735 INFO L280 TraceCheckUtils]: 0: Hoare triple {2469#true} ~cond := #in~cond; {2469#true} is VALID [2020-07-10 15:09:32,736 INFO L280 TraceCheckUtils]: 1: Hoare triple {2469#true} assume !(0 == ~cond); {2469#true} is VALID [2020-07-10 15:09:32,736 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:32,737 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2469#true} {2469#true} #204#return; {2469#true} is VALID [2020-07-10 15:09:32,737 INFO L280 TraceCheckUtils]: 0: Hoare triple {2546#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {2469#true} is VALID [2020-07-10 15:09:32,737 INFO L263 TraceCheckUtils]: 1: Hoare triple {2469#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {2469#true} is VALID [2020-07-10 15:09:32,738 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} ~cond := #in~cond; {2469#true} is VALID [2020-07-10 15:09:32,738 INFO L280 TraceCheckUtils]: 3: Hoare triple {2469#true} assume !(0 == ~cond); {2469#true} is VALID [2020-07-10 15:09:32,738 INFO L280 TraceCheckUtils]: 4: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:32,738 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2469#true} {2469#true} #204#return; {2469#true} is VALID [2020-07-10 15:09:32,739 INFO L280 TraceCheckUtils]: 6: Hoare triple {2469#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {2469#true} is VALID [2020-07-10 15:09:32,739 INFO L280 TraceCheckUtils]: 7: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:32,739 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {2469#true} {2469#true} #186#return; {2469#true} is VALID [2020-07-10 15:09:32,741 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,755 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,759 INFO L280 TraceCheckUtils]: 0: Hoare triple {2469#true} ~cond := #in~cond; {2469#true} is VALID [2020-07-10 15:09:32,761 INFO L280 TraceCheckUtils]: 1: Hoare triple {2469#true} assume !(0 == ~cond); {2469#true} is VALID [2020-07-10 15:09:32,761 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:32,762 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2469#true} {2469#true} #204#return; {2469#true} is VALID [2020-07-10 15:09:32,762 INFO L280 TraceCheckUtils]: 0: Hoare triple {2546#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {2469#true} is VALID [2020-07-10 15:09:32,766 INFO L263 TraceCheckUtils]: 1: Hoare triple {2469#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {2469#true} is VALID [2020-07-10 15:09:32,766 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} ~cond := #in~cond; {2469#true} is VALID [2020-07-10 15:09:32,767 INFO L280 TraceCheckUtils]: 3: Hoare triple {2469#true} assume !(0 == ~cond); {2469#true} is VALID [2020-07-10 15:09:32,767 INFO L280 TraceCheckUtils]: 4: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:32,768 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2469#true} {2469#true} #204#return; {2469#true} is VALID [2020-07-10 15:09:32,769 INFO L280 TraceCheckUtils]: 6: Hoare triple {2469#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {2469#true} is VALID [2020-07-10 15:09:32,769 INFO L280 TraceCheckUtils]: 7: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:32,769 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {2469#true} {2469#true} #188#return; {2469#true} is VALID [2020-07-10 15:09:32,805 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,836 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,843 INFO L280 TraceCheckUtils]: 0: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:32,844 INFO L280 TraceCheckUtils]: 1: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:32,844 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:32,844 INFO L280 TraceCheckUtils]: 3: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:32,844 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {2469#true} {2469#true} #172#return; {2469#true} is VALID [2020-07-10 15:09:32,854 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,908 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,933 INFO L280 TraceCheckUtils]: 0: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:32,934 INFO L280 TraceCheckUtils]: 1: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:32,935 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} #res := 0; {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:32,936 INFO L280 TraceCheckUtils]: 3: Hoare triple {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} assume true; {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:32,937 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} {2469#true} #178#return; {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} is VALID [2020-07-10 15:09:32,938 INFO L280 TraceCheckUtils]: 0: Hoare triple {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {2469#true} is VALID [2020-07-10 15:09:32,938 INFO L263 TraceCheckUtils]: 1: Hoare triple {2469#true} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {2469#true} is VALID [2020-07-10 15:09:32,939 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:32,939 INFO L280 TraceCheckUtils]: 3: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:32,940 INFO L280 TraceCheckUtils]: 4: Hoare triple {2469#true} #res := 0; {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:32,941 INFO L280 TraceCheckUtils]: 5: Hoare triple {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} assume true; {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:32,942 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} {2469#true} #178#return; {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} is VALID [2020-07-10 15:09:32,943 INFO L280 TraceCheckUtils]: 7: Hoare triple {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} is VALID [2020-07-10 15:09:32,944 INFO L280 TraceCheckUtils]: 8: Hoare triple {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} assume !(0 == #t~ret16);havoc #t~ret16; {2470#false} is VALID [2020-07-10 15:09:32,944 INFO L280 TraceCheckUtils]: 9: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:32,944 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {2470#false} {2469#true} #174#return; {2470#false} is VALID [2020-07-10 15:09:32,945 INFO L280 TraceCheckUtils]: 0: Hoare triple {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {2469#true} is VALID [2020-07-10 15:09:32,945 INFO L263 TraceCheckUtils]: 1: Hoare triple {2469#true} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2469#true} is VALID [2020-07-10 15:09:32,946 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:32,946 INFO L280 TraceCheckUtils]: 3: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:32,946 INFO L280 TraceCheckUtils]: 4: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:32,946 INFO L280 TraceCheckUtils]: 5: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:32,947 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {2469#true} {2469#true} #172#return; {2469#true} is VALID [2020-07-10 15:09:32,947 INFO L280 TraceCheckUtils]: 7: Hoare triple {2469#true} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {2469#true} is VALID [2020-07-10 15:09:32,947 INFO L280 TraceCheckUtils]: 8: Hoare triple {2469#true} assume !(0 != #t~ret26);havoc #t~ret26; {2469#true} is VALID [2020-07-10 15:09:32,949 INFO L263 TraceCheckUtils]: 9: Hoare triple {2469#true} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:32,950 INFO L280 TraceCheckUtils]: 10: Hoare triple {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {2469#true} is VALID [2020-07-10 15:09:32,950 INFO L263 TraceCheckUtils]: 11: Hoare triple {2469#true} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {2469#true} is VALID [2020-07-10 15:09:32,950 INFO L280 TraceCheckUtils]: 12: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:32,950 INFO L280 TraceCheckUtils]: 13: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:32,951 INFO L280 TraceCheckUtils]: 14: Hoare triple {2469#true} #res := 0; {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:32,953 INFO L280 TraceCheckUtils]: 15: Hoare triple {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} assume true; {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:32,955 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} {2469#true} #178#return; {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} is VALID [2020-07-10 15:09:32,956 INFO L280 TraceCheckUtils]: 17: Hoare triple {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} is VALID [2020-07-10 15:09:32,956 INFO L280 TraceCheckUtils]: 18: Hoare triple {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} assume !(0 == #t~ret16);havoc #t~ret16; {2470#false} is VALID [2020-07-10 15:09:32,957 INFO L280 TraceCheckUtils]: 19: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:32,957 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {2470#false} {2469#true} #174#return; {2470#false} is VALID [2020-07-10 15:09:32,957 INFO L280 TraceCheckUtils]: 21: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:32,957 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {2470#false} {2469#true} #190#return; {2470#false} is VALID [2020-07-10 15:09:32,967 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,983 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,987 INFO L280 TraceCheckUtils]: 0: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:32,988 INFO L280 TraceCheckUtils]: 1: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:32,988 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:32,988 INFO L280 TraceCheckUtils]: 3: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:32,988 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {2469#true} {2469#true} #172#return; {2469#true} is VALID [2020-07-10 15:09:32,990 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:32,999 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:33,008 INFO L280 TraceCheckUtils]: 0: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,009 INFO L280 TraceCheckUtils]: 1: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,009 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:33,009 INFO L280 TraceCheckUtils]: 3: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,009 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {2469#true} {2469#true} #178#return; {2469#true} is VALID [2020-07-10 15:09:33,010 INFO L280 TraceCheckUtils]: 0: Hoare triple {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {2469#true} is VALID [2020-07-10 15:09:33,010 INFO L263 TraceCheckUtils]: 1: Hoare triple {2469#true} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,010 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,010 INFO L280 TraceCheckUtils]: 3: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,011 INFO L280 TraceCheckUtils]: 4: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:33,011 INFO L280 TraceCheckUtils]: 5: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,011 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {2469#true} {2469#true} #178#return; {2469#true} is VALID [2020-07-10 15:09:33,011 INFO L280 TraceCheckUtils]: 7: Hoare triple {2469#true} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {2469#true} is VALID [2020-07-10 15:09:33,012 INFO L280 TraceCheckUtils]: 8: Hoare triple {2469#true} assume !(0 == #t~ret16);havoc #t~ret16; {2469#true} is VALID [2020-07-10 15:09:33,012 INFO L280 TraceCheckUtils]: 9: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,012 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {2469#true} {2469#true} #174#return; {2469#true} is VALID [2020-07-10 15:09:33,012 INFO L280 TraceCheckUtils]: 0: Hoare triple {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {2469#true} is VALID [2020-07-10 15:09:33,013 INFO L263 TraceCheckUtils]: 1: Hoare triple {2469#true} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2469#true} is VALID [2020-07-10 15:09:33,013 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,013 INFO L280 TraceCheckUtils]: 3: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,013 INFO L280 TraceCheckUtils]: 4: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:33,014 INFO L280 TraceCheckUtils]: 5: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,014 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {2469#true} {2469#true} #172#return; {2469#true} is VALID [2020-07-10 15:09:33,016 INFO L280 TraceCheckUtils]: 7: Hoare triple {2469#true} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {2469#true} is VALID [2020-07-10 15:09:33,016 INFO L280 TraceCheckUtils]: 8: Hoare triple {2469#true} assume !(0 != #t~ret26);havoc #t~ret26; {2469#true} is VALID [2020-07-10 15:09:33,018 INFO L263 TraceCheckUtils]: 9: Hoare triple {2469#true} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:33,018 INFO L280 TraceCheckUtils]: 10: Hoare triple {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {2469#true} is VALID [2020-07-10 15:09:33,018 INFO L263 TraceCheckUtils]: 11: Hoare triple {2469#true} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,019 INFO L280 TraceCheckUtils]: 12: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,019 INFO L280 TraceCheckUtils]: 13: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,019 INFO L280 TraceCheckUtils]: 14: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:33,019 INFO L280 TraceCheckUtils]: 15: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,019 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {2469#true} {2469#true} #178#return; {2469#true} is VALID [2020-07-10 15:09:33,020 INFO L280 TraceCheckUtils]: 17: Hoare triple {2469#true} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {2469#true} is VALID [2020-07-10 15:09:33,020 INFO L280 TraceCheckUtils]: 18: Hoare triple {2469#true} assume !(0 == #t~ret16);havoc #t~ret16; {2469#true} is VALID [2020-07-10 15:09:33,020 INFO L280 TraceCheckUtils]: 19: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,020 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {2469#true} {2469#true} #174#return; {2469#true} is VALID [2020-07-10 15:09:33,021 INFO L280 TraceCheckUtils]: 21: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,021 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {2469#true} {2470#false} #192#return; {2470#false} is VALID [2020-07-10 15:09:33,023 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:33,034 INFO L280 TraceCheckUtils]: 0: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,035 INFO L280 TraceCheckUtils]: 1: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,035 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:33,035 INFO L280 TraceCheckUtils]: 3: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,036 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {2469#true} {2470#false} #164#return; {2470#false} is VALID [2020-07-10 15:09:33,037 INFO L263 TraceCheckUtils]: 0: Hoare triple {2469#true} call ULTIMATE.init(); {2545#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:33,037 INFO L280 TraceCheckUtils]: 1: Hoare triple {2545#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {2469#true} is VALID [2020-07-10 15:09:33,037 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,038 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2469#true} {2469#true} #210#return; {2469#true} is VALID [2020-07-10 15:09:33,038 INFO L263 TraceCheckUtils]: 4: Hoare triple {2469#true} call #t~ret31 := main(); {2469#true} is VALID [2020-07-10 15:09:33,038 INFO L263 TraceCheckUtils]: 5: Hoare triple {2469#true} call foo(); {2469#true} is VALID [2020-07-10 15:09:33,038 INFO L263 TraceCheckUtils]: 6: Hoare triple {2469#true} call ldv_initialize(); {2469#true} is VALID [2020-07-10 15:09:33,039 INFO L280 TraceCheckUtils]: 7: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,039 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {2469#true} {2469#true} #184#return; {2469#true} is VALID [2020-07-10 15:09:33,040 INFO L263 TraceCheckUtils]: 9: Hoare triple {2469#true} call #t~ret29.base, #t~ret29.offset := ldv_successful_malloc(8); {2546#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:33,040 INFO L280 TraceCheckUtils]: 10: Hoare triple {2546#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {2469#true} is VALID [2020-07-10 15:09:33,040 INFO L263 TraceCheckUtils]: 11: Hoare triple {2469#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {2469#true} is VALID [2020-07-10 15:09:33,041 INFO L280 TraceCheckUtils]: 12: Hoare triple {2469#true} ~cond := #in~cond; {2469#true} is VALID [2020-07-10 15:09:33,041 INFO L280 TraceCheckUtils]: 13: Hoare triple {2469#true} assume !(0 == ~cond); {2469#true} is VALID [2020-07-10 15:09:33,041 INFO L280 TraceCheckUtils]: 14: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,041 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {2469#true} {2469#true} #204#return; {2469#true} is VALID [2020-07-10 15:09:33,041 INFO L280 TraceCheckUtils]: 16: Hoare triple {2469#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {2469#true} is VALID [2020-07-10 15:09:33,042 INFO L280 TraceCheckUtils]: 17: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,042 INFO L275 TraceCheckUtils]: 18: Hoare quadruple {2469#true} {2469#true} #186#return; {2469#true} is VALID [2020-07-10 15:09:33,042 INFO L280 TraceCheckUtils]: 19: Hoare triple {2469#true} ~m1~0.base, ~m1~0.offset := #t~ret29.base, #t~ret29.offset;havoc #t~ret29.base, #t~ret29.offset; {2469#true} is VALID [2020-07-10 15:09:33,043 INFO L263 TraceCheckUtils]: 20: Hoare triple {2469#true} call #t~ret30.base, #t~ret30.offset := ldv_successful_malloc(8); {2546#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:33,043 INFO L280 TraceCheckUtils]: 21: Hoare triple {2546#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {2469#true} is VALID [2020-07-10 15:09:33,043 INFO L263 TraceCheckUtils]: 22: Hoare triple {2469#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {2469#true} is VALID [2020-07-10 15:09:33,044 INFO L280 TraceCheckUtils]: 23: Hoare triple {2469#true} ~cond := #in~cond; {2469#true} is VALID [2020-07-10 15:09:33,044 INFO L280 TraceCheckUtils]: 24: Hoare triple {2469#true} assume !(0 == ~cond); {2469#true} is VALID [2020-07-10 15:09:33,044 INFO L280 TraceCheckUtils]: 25: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,044 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {2469#true} {2469#true} #204#return; {2469#true} is VALID [2020-07-10 15:09:33,045 INFO L280 TraceCheckUtils]: 27: Hoare triple {2469#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {2469#true} is VALID [2020-07-10 15:09:33,045 INFO L280 TraceCheckUtils]: 28: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,045 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {2469#true} {2469#true} #188#return; {2469#true} is VALID [2020-07-10 15:09:33,048 INFO L280 TraceCheckUtils]: 30: Hoare triple {2469#true} ~m2~0.base, ~m2~0.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2469#true} is VALID [2020-07-10 15:09:33,052 INFO L263 TraceCheckUtils]: 31: Hoare triple {2469#true} call mutex_lock(~m1~0.base, ~m1~0.offset); {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:33,053 INFO L280 TraceCheckUtils]: 32: Hoare triple {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {2469#true} is VALID [2020-07-10 15:09:33,053 INFO L263 TraceCheckUtils]: 33: Hoare triple {2469#true} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2469#true} is VALID [2020-07-10 15:09:33,053 INFO L280 TraceCheckUtils]: 34: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,054 INFO L280 TraceCheckUtils]: 35: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,054 INFO L280 TraceCheckUtils]: 36: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:33,054 INFO L280 TraceCheckUtils]: 37: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,057 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {2469#true} {2469#true} #172#return; {2469#true} is VALID [2020-07-10 15:09:33,058 INFO L280 TraceCheckUtils]: 39: Hoare triple {2469#true} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {2469#true} is VALID [2020-07-10 15:09:33,058 INFO L280 TraceCheckUtils]: 40: Hoare triple {2469#true} assume !(0 != #t~ret26);havoc #t~ret26; {2469#true} is VALID [2020-07-10 15:09:33,061 INFO L263 TraceCheckUtils]: 41: Hoare triple {2469#true} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:33,061 INFO L280 TraceCheckUtils]: 42: Hoare triple {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {2469#true} is VALID [2020-07-10 15:09:33,062 INFO L263 TraceCheckUtils]: 43: Hoare triple {2469#true} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,062 INFO L280 TraceCheckUtils]: 44: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,062 INFO L280 TraceCheckUtils]: 45: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,063 INFO L280 TraceCheckUtils]: 46: Hoare triple {2469#true} #res := 0; {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:33,063 INFO L280 TraceCheckUtils]: 47: Hoare triple {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} assume true; {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:33,065 INFO L275 TraceCheckUtils]: 48: Hoare quadruple {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} {2469#true} #178#return; {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} is VALID [2020-07-10 15:09:33,066 INFO L280 TraceCheckUtils]: 49: Hoare triple {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} is VALID [2020-07-10 15:09:33,067 INFO L280 TraceCheckUtils]: 50: Hoare triple {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} assume !(0 == #t~ret16);havoc #t~ret16; {2470#false} is VALID [2020-07-10 15:09:33,067 INFO L280 TraceCheckUtils]: 51: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:33,067 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {2470#false} {2469#true} #174#return; {2470#false} is VALID [2020-07-10 15:09:33,067 INFO L280 TraceCheckUtils]: 53: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:33,068 INFO L275 TraceCheckUtils]: 54: Hoare quadruple {2470#false} {2469#true} #190#return; {2470#false} is VALID [2020-07-10 15:09:33,068 INFO L263 TraceCheckUtils]: 55: Hoare triple {2470#false} call mutex_lock(~m1~0.base, ~m1~0.offset); {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:33,068 INFO L280 TraceCheckUtils]: 56: Hoare triple {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {2469#true} is VALID [2020-07-10 15:09:33,068 INFO L263 TraceCheckUtils]: 57: Hoare triple {2469#true} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2469#true} is VALID [2020-07-10 15:09:33,068 INFO L280 TraceCheckUtils]: 58: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,069 INFO L280 TraceCheckUtils]: 59: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,069 INFO L280 TraceCheckUtils]: 60: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:33,069 INFO L280 TraceCheckUtils]: 61: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,069 INFO L275 TraceCheckUtils]: 62: Hoare quadruple {2469#true} {2469#true} #172#return; {2469#true} is VALID [2020-07-10 15:09:33,069 INFO L280 TraceCheckUtils]: 63: Hoare triple {2469#true} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {2469#true} is VALID [2020-07-10 15:09:33,070 INFO L280 TraceCheckUtils]: 64: Hoare triple {2469#true} assume !(0 != #t~ret26);havoc #t~ret26; {2469#true} is VALID [2020-07-10 15:09:33,073 INFO L263 TraceCheckUtils]: 65: Hoare triple {2469#true} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:33,074 INFO L280 TraceCheckUtils]: 66: Hoare triple {2555#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {2469#true} is VALID [2020-07-10 15:09:33,074 INFO L263 TraceCheckUtils]: 67: Hoare triple {2469#true} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,074 INFO L280 TraceCheckUtils]: 68: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,075 INFO L280 TraceCheckUtils]: 69: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,075 INFO L280 TraceCheckUtils]: 70: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:33,075 INFO L280 TraceCheckUtils]: 71: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,075 INFO L275 TraceCheckUtils]: 72: Hoare quadruple {2469#true} {2469#true} #178#return; {2469#true} is VALID [2020-07-10 15:09:33,075 INFO L280 TraceCheckUtils]: 73: Hoare triple {2469#true} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {2469#true} is VALID [2020-07-10 15:09:33,076 INFO L280 TraceCheckUtils]: 74: Hoare triple {2469#true} assume !(0 == #t~ret16);havoc #t~ret16; {2469#true} is VALID [2020-07-10 15:09:33,076 INFO L280 TraceCheckUtils]: 75: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,076 INFO L275 TraceCheckUtils]: 76: Hoare quadruple {2469#true} {2469#true} #174#return; {2469#true} is VALID [2020-07-10 15:09:33,076 INFO L280 TraceCheckUtils]: 77: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,076 INFO L275 TraceCheckUtils]: 78: Hoare quadruple {2469#true} {2470#false} #192#return; {2470#false} is VALID [2020-07-10 15:09:33,077 INFO L263 TraceCheckUtils]: 79: Hoare triple {2470#false} call mutex_unlock(~m2~0.base, ~m2~0.offset); {2470#false} is VALID [2020-07-10 15:09:33,077 INFO L280 TraceCheckUtils]: 80: Hoare triple {2470#false} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {2470#false} is VALID [2020-07-10 15:09:33,079 INFO L263 TraceCheckUtils]: 81: Hoare triple {2470#false} call #t~ret27 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2469#true} is VALID [2020-07-10 15:09:33,080 INFO L280 TraceCheckUtils]: 82: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,080 INFO L280 TraceCheckUtils]: 83: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,080 INFO L280 TraceCheckUtils]: 84: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:33,080 INFO L280 TraceCheckUtils]: 85: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,081 INFO L275 TraceCheckUtils]: 86: Hoare quadruple {2469#true} {2470#false} #164#return; {2470#false} is VALID [2020-07-10 15:09:33,081 INFO L280 TraceCheckUtils]: 87: Hoare triple {2470#false} assume -2147483648 <= #t~ret27 && #t~ret27 <= 2147483647; {2470#false} is VALID [2020-07-10 15:09:33,081 INFO L280 TraceCheckUtils]: 88: Hoare triple {2470#false} assume 0 == #t~ret27;havoc #t~ret27; {2470#false} is VALID [2020-07-10 15:09:33,081 INFO L280 TraceCheckUtils]: 89: Hoare triple {2470#false} assume !false; {2470#false} is VALID [2020-07-10 15:09:33,089 INFO L134 CoverageAnalysis]: Checked inductivity of 72 backedges. 2 proven. 12 refuted. 0 times theorem prover too weak. 58 trivial. 0 not checked. [2020-07-10 15:09:33,090 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [774354338] [2020-07-10 15:09:33,090 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2045525707] [2020-07-10 15:09:33,090 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:09:33,269 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:33,272 INFO L264 TraceCheckSpWp]: Trace formula consists of 449 conjuncts, 5 conjunts are in the unsatisfiable core [2020-07-10 15:09:33,300 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:33,308 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:09:33,443 INFO L263 TraceCheckUtils]: 0: Hoare triple {2469#true} call ULTIMATE.init(); {2469#true} is VALID [2020-07-10 15:09:33,443 INFO L280 TraceCheckUtils]: 1: Hoare triple {2469#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {2469#true} is VALID [2020-07-10 15:09:33,444 INFO L280 TraceCheckUtils]: 2: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,444 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2469#true} {2469#true} #210#return; {2469#true} is VALID [2020-07-10 15:09:33,444 INFO L263 TraceCheckUtils]: 4: Hoare triple {2469#true} call #t~ret31 := main(); {2469#true} is VALID [2020-07-10 15:09:33,444 INFO L263 TraceCheckUtils]: 5: Hoare triple {2469#true} call foo(); {2469#true} is VALID [2020-07-10 15:09:33,444 INFO L263 TraceCheckUtils]: 6: Hoare triple {2469#true} call ldv_initialize(); {2469#true} is VALID [2020-07-10 15:09:33,444 INFO L280 TraceCheckUtils]: 7: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,444 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {2469#true} {2469#true} #184#return; {2469#true} is VALID [2020-07-10 15:09:33,445 INFO L263 TraceCheckUtils]: 9: Hoare triple {2469#true} call #t~ret29.base, #t~ret29.offset := ldv_successful_malloc(8); {2469#true} is VALID [2020-07-10 15:09:33,445 INFO L280 TraceCheckUtils]: 10: Hoare triple {2469#true} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {2469#true} is VALID [2020-07-10 15:09:33,445 INFO L263 TraceCheckUtils]: 11: Hoare triple {2469#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {2469#true} is VALID [2020-07-10 15:09:33,445 INFO L280 TraceCheckUtils]: 12: Hoare triple {2469#true} ~cond := #in~cond; {2469#true} is VALID [2020-07-10 15:09:33,445 INFO L280 TraceCheckUtils]: 13: Hoare triple {2469#true} assume !(0 == ~cond); {2469#true} is VALID [2020-07-10 15:09:33,446 INFO L280 TraceCheckUtils]: 14: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,446 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {2469#true} {2469#true} #204#return; {2469#true} is VALID [2020-07-10 15:09:33,446 INFO L280 TraceCheckUtils]: 16: Hoare triple {2469#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {2469#true} is VALID [2020-07-10 15:09:33,446 INFO L280 TraceCheckUtils]: 17: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,446 INFO L275 TraceCheckUtils]: 18: Hoare quadruple {2469#true} {2469#true} #186#return; {2469#true} is VALID [2020-07-10 15:09:33,447 INFO L280 TraceCheckUtils]: 19: Hoare triple {2469#true} ~m1~0.base, ~m1~0.offset := #t~ret29.base, #t~ret29.offset;havoc #t~ret29.base, #t~ret29.offset; {2469#true} is VALID [2020-07-10 15:09:33,447 INFO L263 TraceCheckUtils]: 20: Hoare triple {2469#true} call #t~ret30.base, #t~ret30.offset := ldv_successful_malloc(8); {2469#true} is VALID [2020-07-10 15:09:33,447 INFO L280 TraceCheckUtils]: 21: Hoare triple {2469#true} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {2469#true} is VALID [2020-07-10 15:09:33,447 INFO L263 TraceCheckUtils]: 22: Hoare triple {2469#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {2469#true} is VALID [2020-07-10 15:09:33,447 INFO L280 TraceCheckUtils]: 23: Hoare triple {2469#true} ~cond := #in~cond; {2469#true} is VALID [2020-07-10 15:09:33,448 INFO L280 TraceCheckUtils]: 24: Hoare triple {2469#true} assume !(0 == ~cond); {2469#true} is VALID [2020-07-10 15:09:33,448 INFO L280 TraceCheckUtils]: 25: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,448 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {2469#true} {2469#true} #204#return; {2469#true} is VALID [2020-07-10 15:09:33,448 INFO L280 TraceCheckUtils]: 27: Hoare triple {2469#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {2469#true} is VALID [2020-07-10 15:09:33,449 INFO L280 TraceCheckUtils]: 28: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,449 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {2469#true} {2469#true} #188#return; {2469#true} is VALID [2020-07-10 15:09:33,449 INFO L280 TraceCheckUtils]: 30: Hoare triple {2469#true} ~m2~0.base, ~m2~0.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2469#true} is VALID [2020-07-10 15:09:33,449 INFO L263 TraceCheckUtils]: 31: Hoare triple {2469#true} call mutex_lock(~m1~0.base, ~m1~0.offset); {2469#true} is VALID [2020-07-10 15:09:33,449 INFO L280 TraceCheckUtils]: 32: Hoare triple {2469#true} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {2469#true} is VALID [2020-07-10 15:09:33,450 INFO L263 TraceCheckUtils]: 33: Hoare triple {2469#true} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2469#true} is VALID [2020-07-10 15:09:33,450 INFO L280 TraceCheckUtils]: 34: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,450 INFO L280 TraceCheckUtils]: 35: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,450 INFO L280 TraceCheckUtils]: 36: Hoare triple {2469#true} #res := 0; {2469#true} is VALID [2020-07-10 15:09:33,450 INFO L280 TraceCheckUtils]: 37: Hoare triple {2469#true} assume true; {2469#true} is VALID [2020-07-10 15:09:33,451 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {2469#true} {2469#true} #172#return; {2469#true} is VALID [2020-07-10 15:09:33,451 INFO L280 TraceCheckUtils]: 39: Hoare triple {2469#true} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {2469#true} is VALID [2020-07-10 15:09:33,451 INFO L280 TraceCheckUtils]: 40: Hoare triple {2469#true} assume !(0 != #t~ret26);havoc #t~ret26; {2469#true} is VALID [2020-07-10 15:09:33,451 INFO L263 TraceCheckUtils]: 41: Hoare triple {2469#true} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2469#true} is VALID [2020-07-10 15:09:33,451 INFO L280 TraceCheckUtils]: 42: Hoare triple {2469#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {2469#true} is VALID [2020-07-10 15:09:33,452 INFO L263 TraceCheckUtils]: 43: Hoare triple {2469#true} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,452 INFO L280 TraceCheckUtils]: 44: Hoare triple {2469#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2469#true} is VALID [2020-07-10 15:09:33,452 INFO L280 TraceCheckUtils]: 45: Hoare triple {2469#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2469#true} is VALID [2020-07-10 15:09:33,456 INFO L280 TraceCheckUtils]: 46: Hoare triple {2469#true} #res := 0; {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:33,460 INFO L280 TraceCheckUtils]: 47: Hoare triple {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} assume true; {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} is VALID [2020-07-10 15:09:33,461 INFO L275 TraceCheckUtils]: 48: Hoare quadruple {2578#(and (<= |ldv_is_in_set_#res| 0) (<= 0 |ldv_is_in_set_#res|))} {2469#true} #178#return; {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} is VALID [2020-07-10 15:09:33,469 INFO L280 TraceCheckUtils]: 49: Hoare triple {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} is VALID [2020-07-10 15:09:33,470 INFO L280 TraceCheckUtils]: 50: Hoare triple {2577#(and (<= 0 |ldv_set_add_#t~ret16|) (<= |ldv_set_add_#t~ret16| 0))} assume !(0 == #t~ret16);havoc #t~ret16; {2470#false} is VALID [2020-07-10 15:09:33,470 INFO L280 TraceCheckUtils]: 51: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:33,470 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {2470#false} {2469#true} #174#return; {2470#false} is VALID [2020-07-10 15:09:33,470 INFO L280 TraceCheckUtils]: 53: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:33,471 INFO L275 TraceCheckUtils]: 54: Hoare quadruple {2470#false} {2469#true} #190#return; {2470#false} is VALID [2020-07-10 15:09:33,471 INFO L263 TraceCheckUtils]: 55: Hoare triple {2470#false} call mutex_lock(~m1~0.base, ~m1~0.offset); {2470#false} is VALID [2020-07-10 15:09:33,471 INFO L280 TraceCheckUtils]: 56: Hoare triple {2470#false} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {2470#false} is VALID [2020-07-10 15:09:33,471 INFO L263 TraceCheckUtils]: 57: Hoare triple {2470#false} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2470#false} is VALID [2020-07-10 15:09:33,471 INFO L280 TraceCheckUtils]: 58: Hoare triple {2470#false} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2470#false} is VALID [2020-07-10 15:09:33,472 INFO L280 TraceCheckUtils]: 59: Hoare triple {2470#false} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2470#false} is VALID [2020-07-10 15:09:33,472 INFO L280 TraceCheckUtils]: 60: Hoare triple {2470#false} #res := 0; {2470#false} is VALID [2020-07-10 15:09:33,472 INFO L280 TraceCheckUtils]: 61: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:33,472 INFO L275 TraceCheckUtils]: 62: Hoare quadruple {2470#false} {2470#false} #172#return; {2470#false} is VALID [2020-07-10 15:09:33,473 INFO L280 TraceCheckUtils]: 63: Hoare triple {2470#false} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {2470#false} is VALID [2020-07-10 15:09:33,473 INFO L280 TraceCheckUtils]: 64: Hoare triple {2470#false} assume !(0 != #t~ret26);havoc #t~ret26; {2470#false} is VALID [2020-07-10 15:09:33,473 INFO L263 TraceCheckUtils]: 65: Hoare triple {2470#false} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2470#false} is VALID [2020-07-10 15:09:33,473 INFO L280 TraceCheckUtils]: 66: Hoare triple {2470#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {2470#false} is VALID [2020-07-10 15:09:33,473 INFO L263 TraceCheckUtils]: 67: Hoare triple {2470#false} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {2470#false} is VALID [2020-07-10 15:09:33,474 INFO L280 TraceCheckUtils]: 68: Hoare triple {2470#false} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2470#false} is VALID [2020-07-10 15:09:33,474 INFO L280 TraceCheckUtils]: 69: Hoare triple {2470#false} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2470#false} is VALID [2020-07-10 15:09:33,474 INFO L280 TraceCheckUtils]: 70: Hoare triple {2470#false} #res := 0; {2470#false} is VALID [2020-07-10 15:09:33,477 INFO L280 TraceCheckUtils]: 71: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:33,478 INFO L275 TraceCheckUtils]: 72: Hoare quadruple {2470#false} {2470#false} #178#return; {2470#false} is VALID [2020-07-10 15:09:33,478 INFO L280 TraceCheckUtils]: 73: Hoare triple {2470#false} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {2470#false} is VALID [2020-07-10 15:09:33,478 INFO L280 TraceCheckUtils]: 74: Hoare triple {2470#false} assume !(0 == #t~ret16);havoc #t~ret16; {2470#false} is VALID [2020-07-10 15:09:33,478 INFO L280 TraceCheckUtils]: 75: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:33,479 INFO L275 TraceCheckUtils]: 76: Hoare quadruple {2470#false} {2470#false} #174#return; {2470#false} is VALID [2020-07-10 15:09:33,479 INFO L280 TraceCheckUtils]: 77: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:33,479 INFO L275 TraceCheckUtils]: 78: Hoare quadruple {2470#false} {2470#false} #192#return; {2470#false} is VALID [2020-07-10 15:09:33,479 INFO L263 TraceCheckUtils]: 79: Hoare triple {2470#false} call mutex_unlock(~m2~0.base, ~m2~0.offset); {2470#false} is VALID [2020-07-10 15:09:33,479 INFO L280 TraceCheckUtils]: 80: Hoare triple {2470#false} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {2470#false} is VALID [2020-07-10 15:09:33,480 INFO L263 TraceCheckUtils]: 81: Hoare triple {2470#false} call #t~ret27 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {2470#false} is VALID [2020-07-10 15:09:33,480 INFO L280 TraceCheckUtils]: 82: Hoare triple {2470#false} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {2470#false} is VALID [2020-07-10 15:09:33,480 INFO L280 TraceCheckUtils]: 83: Hoare triple {2470#false} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {2470#false} is VALID [2020-07-10 15:09:33,480 INFO L280 TraceCheckUtils]: 84: Hoare triple {2470#false} #res := 0; {2470#false} is VALID [2020-07-10 15:09:33,480 INFO L280 TraceCheckUtils]: 85: Hoare triple {2470#false} assume true; {2470#false} is VALID [2020-07-10 15:09:33,481 INFO L275 TraceCheckUtils]: 86: Hoare quadruple {2470#false} {2470#false} #164#return; {2470#false} is VALID [2020-07-10 15:09:33,481 INFO L280 TraceCheckUtils]: 87: Hoare triple {2470#false} assume -2147483648 <= #t~ret27 && #t~ret27 <= 2147483647; {2470#false} is VALID [2020-07-10 15:09:33,481 INFO L280 TraceCheckUtils]: 88: Hoare triple {2470#false} assume 0 == #t~ret27;havoc #t~ret27; {2470#false} is VALID [2020-07-10 15:09:33,481 INFO L280 TraceCheckUtils]: 89: Hoare triple {2470#false} assume !false; {2470#false} is VALID [2020-07-10 15:09:33,490 INFO L134 CoverageAnalysis]: Checked inductivity of 72 backedges. 41 proven. 0 refuted. 0 times theorem prover too weak. 31 trivial. 0 not checked. [2020-07-10 15:09:33,491 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2020-07-10 15:09:33,491 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [7] total 7 [2020-07-10 15:09:33,491 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1087707232] [2020-07-10 15:09:33,492 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 90 [2020-07-10 15:09:33,492 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:09:33,492 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2020-07-10 15:09:33,580 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 70 edges. 70 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:09:33,580 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2020-07-10 15:09:33,581 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:09:33,581 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2020-07-10 15:09:33,581 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=29, Unknown=0, NotChecked=0, Total=42 [2020-07-10 15:09:33,581 INFO L87 Difference]: Start difference. First operand 163 states and 194 transitions. Second operand 4 states. [2020-07-10 15:09:34,118 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:34,118 INFO L93 Difference]: Finished difference Result 294 states and 350 transitions. [2020-07-10 15:09:34,118 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2020-07-10 15:09:34,118 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 90 [2020-07-10 15:09:34,119 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:09:34,119 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2020-07-10 15:09:34,130 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 207 transitions. [2020-07-10 15:09:34,131 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2020-07-10 15:09:34,135 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 207 transitions. [2020-07-10 15:09:34,135 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 207 transitions. [2020-07-10 15:09:34,386 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 207 edges. 207 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:09:34,399 INFO L225 Difference]: With dead ends: 294 [2020-07-10 15:09:34,399 INFO L226 Difference]: Without dead ends: 169 [2020-07-10 15:09:34,402 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 125 GetRequests, 119 SyntacticMatches, 1 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 7 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=13, Invalid=29, Unknown=0, NotChecked=0, Total=42 [2020-07-10 15:09:34,406 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 169 states. [2020-07-10 15:09:34,651 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 169 to 169. [2020-07-10 15:09:34,651 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:09:34,651 INFO L82 GeneralOperation]: Start isEquivalent. First operand 169 states. Second operand 169 states. [2020-07-10 15:09:34,651 INFO L74 IsIncluded]: Start isIncluded. First operand 169 states. Second operand 169 states. [2020-07-10 15:09:34,652 INFO L87 Difference]: Start difference. First operand 169 states. Second operand 169 states. [2020-07-10 15:09:34,660 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:34,661 INFO L93 Difference]: Finished difference Result 169 states and 200 transitions. [2020-07-10 15:09:34,661 INFO L276 IsEmpty]: Start isEmpty. Operand 169 states and 200 transitions. [2020-07-10 15:09:34,662 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:09:34,662 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:09:34,662 INFO L74 IsIncluded]: Start isIncluded. First operand 169 states. Second operand 169 states. [2020-07-10 15:09:34,662 INFO L87 Difference]: Start difference. First operand 169 states. Second operand 169 states. [2020-07-10 15:09:34,671 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:34,671 INFO L93 Difference]: Finished difference Result 169 states and 200 transitions. [2020-07-10 15:09:34,671 INFO L276 IsEmpty]: Start isEmpty. Operand 169 states and 200 transitions. [2020-07-10 15:09:34,672 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:09:34,672 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:09:34,673 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:09:34,673 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:09:34,673 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 169 states. [2020-07-10 15:09:34,681 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 169 states to 169 states and 200 transitions. [2020-07-10 15:09:34,681 INFO L78 Accepts]: Start accepts. Automaton has 169 states and 200 transitions. Word has length 90 [2020-07-10 15:09:34,681 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:09:34,682 INFO L479 AbstractCegarLoop]: Abstraction has 169 states and 200 transitions. [2020-07-10 15:09:34,682 INFO L480 AbstractCegarLoop]: Interpolant automaton has 4 states. [2020-07-10 15:09:34,682 INFO L276 IsEmpty]: Start isEmpty. Operand 169 states and 200 transitions. [2020-07-10 15:09:34,683 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 91 [2020-07-10 15:09:34,683 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:09:34,684 INFO L422 BasicCegarLoop]: trace histogram [5, 5, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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:09:34,899 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,2 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:09:34,900 INFO L427 AbstractCegarLoop]: === Iteration 5 === [mutex_unlockErr0ASSERT_VIOLATIONERROR_FUNCTION, ldv_check_final_stateErr0ASSERT_VIOLATIONERROR_FUNCTION, mutex_lockErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:09:34,900 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:09:34,901 INFO L82 PathProgramCache]: Analyzing trace with hash 1610969230, now seen corresponding path program 1 times [2020-07-10 15:09:34,901 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:09:34,901 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [18507946] [2020-07-10 15:09:34,902 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:09:34,940 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,050 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,058 INFO L280 TraceCheckUtils]: 0: Hoare triple {3915#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,059 INFO L280 TraceCheckUtils]: 1: Hoare triple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} assume true; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,060 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} {3837#true} #210#return; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,061 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,064 INFO L280 TraceCheckUtils]: 0: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,065 INFO L275 TraceCheckUtils]: 1: Hoare quadruple {3837#true} {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #184#return; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,078 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,084 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,087 INFO L280 TraceCheckUtils]: 0: Hoare triple {3837#true} ~cond := #in~cond; {3837#true} is VALID [2020-07-10 15:09:35,088 INFO L280 TraceCheckUtils]: 1: Hoare triple {3837#true} assume !(0 == ~cond); {3837#true} is VALID [2020-07-10 15:09:35,088 INFO L280 TraceCheckUtils]: 2: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,088 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3837#true} {3837#true} #204#return; {3837#true} is VALID [2020-07-10 15:09:35,089 INFO L280 TraceCheckUtils]: 0: Hoare triple {3916#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {3837#true} is VALID [2020-07-10 15:09:35,089 INFO L263 TraceCheckUtils]: 1: Hoare triple {3837#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {3837#true} is VALID [2020-07-10 15:09:35,089 INFO L280 TraceCheckUtils]: 2: Hoare triple {3837#true} ~cond := #in~cond; {3837#true} is VALID [2020-07-10 15:09:35,089 INFO L280 TraceCheckUtils]: 3: Hoare triple {3837#true} assume !(0 == ~cond); {3837#true} is VALID [2020-07-10 15:09:35,089 INFO L280 TraceCheckUtils]: 4: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,090 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3837#true} {3837#true} #204#return; {3837#true} is VALID [2020-07-10 15:09:35,090 INFO L280 TraceCheckUtils]: 6: Hoare triple {3837#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {3837#true} is VALID [2020-07-10 15:09:35,090 INFO L280 TraceCheckUtils]: 7: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,091 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {3837#true} {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #186#return; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,094 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,099 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,102 INFO L280 TraceCheckUtils]: 0: Hoare triple {3837#true} ~cond := #in~cond; {3837#true} is VALID [2020-07-10 15:09:35,103 INFO L280 TraceCheckUtils]: 1: Hoare triple {3837#true} assume !(0 == ~cond); {3837#true} is VALID [2020-07-10 15:09:35,103 INFO L280 TraceCheckUtils]: 2: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,103 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3837#true} {3837#true} #204#return; {3837#true} is VALID [2020-07-10 15:09:35,103 INFO L280 TraceCheckUtils]: 0: Hoare triple {3916#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {3837#true} is VALID [2020-07-10 15:09:35,104 INFO L263 TraceCheckUtils]: 1: Hoare triple {3837#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {3837#true} is VALID [2020-07-10 15:09:35,104 INFO L280 TraceCheckUtils]: 2: Hoare triple {3837#true} ~cond := #in~cond; {3837#true} is VALID [2020-07-10 15:09:35,104 INFO L280 TraceCheckUtils]: 3: Hoare triple {3837#true} assume !(0 == ~cond); {3837#true} is VALID [2020-07-10 15:09:35,104 INFO L280 TraceCheckUtils]: 4: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,104 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3837#true} {3837#true} #204#return; {3837#true} is VALID [2020-07-10 15:09:35,105 INFO L280 TraceCheckUtils]: 6: Hoare triple {3837#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {3837#true} is VALID [2020-07-10 15:09:35,105 INFO L280 TraceCheckUtils]: 7: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,106 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {3837#true} {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #188#return; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,130 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,174 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,211 INFO L280 TraceCheckUtils]: 0: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} is VALID [2020-07-10 15:09:35,212 INFO L280 TraceCheckUtils]: 1: Hoare triple {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,212 INFO L280 TraceCheckUtils]: 2: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} #res := 0; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,213 INFO L280 TraceCheckUtils]: 3: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} assume true; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,215 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} #172#return; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,218 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,245 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,250 INFO L280 TraceCheckUtils]: 0: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3837#true} is VALID [2020-07-10 15:09:35,251 INFO L280 TraceCheckUtils]: 1: Hoare triple {3837#true} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {3837#true} is VALID [2020-07-10 15:09:35,251 INFO L280 TraceCheckUtils]: 2: Hoare triple {3837#true} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {3837#true} is VALID [2020-07-10 15:09:35,251 INFO L280 TraceCheckUtils]: 3: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,253 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {3837#true} {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #178#return; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,254 INFO L280 TraceCheckUtils]: 0: Hoare triple {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,254 INFO L263 TraceCheckUtils]: 1: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {3837#true} is VALID [2020-07-10 15:09:35,255 INFO L280 TraceCheckUtils]: 2: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3837#true} is VALID [2020-07-10 15:09:35,255 INFO L280 TraceCheckUtils]: 3: Hoare triple {3837#true} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {3837#true} is VALID [2020-07-10 15:09:35,255 INFO L280 TraceCheckUtils]: 4: Hoare triple {3837#true} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {3837#true} is VALID [2020-07-10 15:09:35,255 INFO L280 TraceCheckUtils]: 5: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,257 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {3837#true} {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #178#return; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,258 INFO L280 TraceCheckUtils]: 7: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,259 INFO L280 TraceCheckUtils]: 8: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 == #t~ret16);havoc #t~ret16; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,260 INFO L280 TraceCheckUtils]: 9: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume true; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,261 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #174#return; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,262 INFO L280 TraceCheckUtils]: 0: Hoare triple {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} is VALID [2020-07-10 15:09:35,262 INFO L263 TraceCheckUtils]: 1: Hoare triple {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3837#true} is VALID [2020-07-10 15:09:35,263 INFO L280 TraceCheckUtils]: 2: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} is VALID [2020-07-10 15:09:35,264 INFO L280 TraceCheckUtils]: 3: Hoare triple {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,265 INFO L280 TraceCheckUtils]: 4: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} #res := 0; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,265 INFO L280 TraceCheckUtils]: 5: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} assume true; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,267 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} #172#return; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,268 INFO L280 TraceCheckUtils]: 7: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,268 INFO L280 TraceCheckUtils]: 8: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 != #t~ret26);havoc #t~ret26; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,270 INFO L263 TraceCheckUtils]: 9: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,271 INFO L280 TraceCheckUtils]: 10: Hoare triple {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,271 INFO L263 TraceCheckUtils]: 11: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {3837#true} is VALID [2020-07-10 15:09:35,271 INFO L280 TraceCheckUtils]: 12: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3837#true} is VALID [2020-07-10 15:09:35,272 INFO L280 TraceCheckUtils]: 13: Hoare triple {3837#true} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {3837#true} is VALID [2020-07-10 15:09:35,272 INFO L280 TraceCheckUtils]: 14: Hoare triple {3837#true} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {3837#true} is VALID [2020-07-10 15:09:35,272 INFO L280 TraceCheckUtils]: 15: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,273 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {3837#true} {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #178#return; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,274 INFO L280 TraceCheckUtils]: 17: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,275 INFO L280 TraceCheckUtils]: 18: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 == #t~ret16);havoc #t~ret16; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,276 INFO L280 TraceCheckUtils]: 19: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume true; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,278 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #174#return; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,279 INFO L280 TraceCheckUtils]: 21: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume true; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,280 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #190#return; {3886#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,288 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,326 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,340 INFO L280 TraceCheckUtils]: 0: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} is VALID [2020-07-10 15:09:35,341 INFO L280 TraceCheckUtils]: 1: Hoare triple {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,341 INFO L280 TraceCheckUtils]: 2: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} #res := 0; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,342 INFO L280 TraceCheckUtils]: 3: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} assume true; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,344 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} #172#return; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,348 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,409 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,480 INFO L280 TraceCheckUtils]: 0: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3976#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)))} is VALID [2020-07-10 15:09:35,481 INFO L280 TraceCheckUtils]: 1: Hoare triple {3976#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)))} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,482 INFO L280 TraceCheckUtils]: 2: Hoare triple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,483 INFO L280 TraceCheckUtils]: 3: Hoare triple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume true; {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,484 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} {3969#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #178#return; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,486 INFO L280 TraceCheckUtils]: 0: Hoare triple {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {3969#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,486 INFO L263 TraceCheckUtils]: 1: Hoare triple {3969#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {3837#true} is VALID [2020-07-10 15:09:35,487 INFO L280 TraceCheckUtils]: 2: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3976#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)))} is VALID [2020-07-10 15:09:35,488 INFO L280 TraceCheckUtils]: 3: Hoare triple {3976#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)))} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,489 INFO L280 TraceCheckUtils]: 4: Hoare triple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,490 INFO L280 TraceCheckUtils]: 5: Hoare triple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume true; {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,492 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} {3969#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #178#return; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,493 INFO L280 TraceCheckUtils]: 7: Hoare triple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,493 INFO L280 TraceCheckUtils]: 8: Hoare triple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} assume !(0 == #t~ret16);havoc #t~ret16; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,494 INFO L280 TraceCheckUtils]: 9: Hoare triple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} assume true; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,496 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #174#return; {3968#(not (= |~#mutexes~0.offset| (select (select |old(#memory_$Pointer$.offset)| |~#mutexes~0.base|) |~#mutexes~0.offset|)))} is VALID [2020-07-10 15:09:35,497 INFO L280 TraceCheckUtils]: 0: Hoare triple {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} is VALID [2020-07-10 15:09:35,497 INFO L263 TraceCheckUtils]: 1: Hoare triple {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3837#true} is VALID [2020-07-10 15:09:35,498 INFO L280 TraceCheckUtils]: 2: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} is VALID [2020-07-10 15:09:35,499 INFO L280 TraceCheckUtils]: 3: Hoare triple {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,500 INFO L280 TraceCheckUtils]: 4: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} #res := 0; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,500 INFO L280 TraceCheckUtils]: 5: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} assume true; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,502 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} #172#return; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,503 INFO L280 TraceCheckUtils]: 7: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,503 INFO L280 TraceCheckUtils]: 8: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 != #t~ret26);havoc #t~ret26; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,505 INFO L263 TraceCheckUtils]: 9: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,506 INFO L280 TraceCheckUtils]: 10: Hoare triple {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {3969#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,506 INFO L263 TraceCheckUtils]: 11: Hoare triple {3969#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {3837#true} is VALID [2020-07-10 15:09:35,507 INFO L280 TraceCheckUtils]: 12: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3976#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)))} is VALID [2020-07-10 15:09:35,508 INFO L280 TraceCheckUtils]: 13: Hoare triple {3976#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)))} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,509 INFO L280 TraceCheckUtils]: 14: Hoare triple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,509 INFO L280 TraceCheckUtils]: 15: Hoare triple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume true; {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,511 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} {3969#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #178#return; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,512 INFO L280 TraceCheckUtils]: 17: Hoare triple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,512 INFO L280 TraceCheckUtils]: 18: Hoare triple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} assume !(0 == #t~ret16);havoc #t~ret16; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,513 INFO L280 TraceCheckUtils]: 19: Hoare triple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} assume true; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,515 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #174#return; {3968#(not (= |~#mutexes~0.offset| (select (select |old(#memory_$Pointer$.offset)| |~#mutexes~0.base|) |~#mutexes~0.offset|)))} is VALID [2020-07-10 15:09:35,515 INFO L280 TraceCheckUtils]: 21: Hoare triple {3968#(not (= |~#mutexes~0.offset| (select (select |old(#memory_$Pointer$.offset)| |~#mutexes~0.base|) |~#mutexes~0.offset|)))} assume true; {3968#(not (= |~#mutexes~0.offset| (select (select |old(#memory_$Pointer$.offset)| |~#mutexes~0.base|) |~#mutexes~0.offset|)))} is VALID [2020-07-10 15:09:35,517 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {3968#(not (= |~#mutexes~0.offset| (select (select |old(#memory_$Pointer$.offset)| |~#mutexes~0.base|) |~#mutexes~0.offset|)))} {3886#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #192#return; {3838#false} is VALID [2020-07-10 15:09:35,520 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,524 INFO L280 TraceCheckUtils]: 0: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3837#true} is VALID [2020-07-10 15:09:35,524 INFO L280 TraceCheckUtils]: 1: Hoare triple {3837#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {3837#true} is VALID [2020-07-10 15:09:35,525 INFO L280 TraceCheckUtils]: 2: Hoare triple {3837#true} #res := 0; {3837#true} is VALID [2020-07-10 15:09:35,525 INFO L280 TraceCheckUtils]: 3: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,525 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {3837#true} {3838#false} #164#return; {3838#false} is VALID [2020-07-10 15:09:35,526 INFO L263 TraceCheckUtils]: 0: Hoare triple {3837#true} call ULTIMATE.init(); {3915#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:35,527 INFO L280 TraceCheckUtils]: 1: Hoare triple {3915#(and (= |~#mutexes~0.offset| |old(~#mutexes~0.offset)|) (= |#valid| |old(#valid)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#mutexes~0.base| |old(~#mutexes~0.base)|) (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#length)| |#length|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,528 INFO L280 TraceCheckUtils]: 2: Hoare triple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} assume true; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,529 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} {3837#true} #210#return; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,529 INFO L263 TraceCheckUtils]: 4: Hoare triple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call #t~ret31 := main(); {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,530 INFO L263 TraceCheckUtils]: 5: Hoare triple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call foo(); {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,530 INFO L263 TraceCheckUtils]: 6: Hoare triple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call ldv_initialize(); {3837#true} is VALID [2020-07-10 15:09:35,530 INFO L280 TraceCheckUtils]: 7: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,531 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {3837#true} {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #184#return; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,532 INFO L263 TraceCheckUtils]: 9: Hoare triple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call #t~ret29.base, #t~ret29.offset := ldv_successful_malloc(8); {3916#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:35,532 INFO L280 TraceCheckUtils]: 10: Hoare triple {3916#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {3837#true} is VALID [2020-07-10 15:09:35,532 INFO L263 TraceCheckUtils]: 11: Hoare triple {3837#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {3837#true} is VALID [2020-07-10 15:09:35,533 INFO L280 TraceCheckUtils]: 12: Hoare triple {3837#true} ~cond := #in~cond; {3837#true} is VALID [2020-07-10 15:09:35,533 INFO L280 TraceCheckUtils]: 13: Hoare triple {3837#true} assume !(0 == ~cond); {3837#true} is VALID [2020-07-10 15:09:35,533 INFO L280 TraceCheckUtils]: 14: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,533 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {3837#true} {3837#true} #204#return; {3837#true} is VALID [2020-07-10 15:09:35,533 INFO L280 TraceCheckUtils]: 16: Hoare triple {3837#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {3837#true} is VALID [2020-07-10 15:09:35,533 INFO L280 TraceCheckUtils]: 17: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,534 INFO L275 TraceCheckUtils]: 18: Hoare quadruple {3837#true} {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #186#return; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,535 INFO L280 TraceCheckUtils]: 19: Hoare triple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} ~m1~0.base, ~m1~0.offset := #t~ret29.base, #t~ret29.offset;havoc #t~ret29.base, #t~ret29.offset; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,536 INFO L263 TraceCheckUtils]: 20: Hoare triple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call #t~ret30.base, #t~ret30.offset := ldv_successful_malloc(8); {3916#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} is VALID [2020-07-10 15:09:35,536 INFO L280 TraceCheckUtils]: 21: Hoare triple {3916#(and (= |#valid| |old(#valid)|) (= |old(#length)| |#length|))} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {3837#true} is VALID [2020-07-10 15:09:35,537 INFO L263 TraceCheckUtils]: 22: Hoare triple {3837#true} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {3837#true} is VALID [2020-07-10 15:09:35,537 INFO L280 TraceCheckUtils]: 23: Hoare triple {3837#true} ~cond := #in~cond; {3837#true} is VALID [2020-07-10 15:09:35,537 INFO L280 TraceCheckUtils]: 24: Hoare triple {3837#true} assume !(0 == ~cond); {3837#true} is VALID [2020-07-10 15:09:35,537 INFO L280 TraceCheckUtils]: 25: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,537 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {3837#true} {3837#true} #204#return; {3837#true} is VALID [2020-07-10 15:09:35,538 INFO L280 TraceCheckUtils]: 27: Hoare triple {3837#true} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {3837#true} is VALID [2020-07-10 15:09:35,538 INFO L280 TraceCheckUtils]: 28: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,539 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {3837#true} {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #188#return; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,540 INFO L280 TraceCheckUtils]: 30: Hoare triple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} ~m2~0.base, ~m2~0.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,541 INFO L263 TraceCheckUtils]: 31: Hoare triple {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call mutex_lock(~m1~0.base, ~m1~0.offset); {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,542 INFO L280 TraceCheckUtils]: 32: Hoare triple {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} is VALID [2020-07-10 15:09:35,542 INFO L263 TraceCheckUtils]: 33: Hoare triple {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3837#true} is VALID [2020-07-10 15:09:35,543 INFO L280 TraceCheckUtils]: 34: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} is VALID [2020-07-10 15:09:35,544 INFO L280 TraceCheckUtils]: 35: Hoare triple {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,544 INFO L280 TraceCheckUtils]: 36: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} #res := 0; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,545 INFO L280 TraceCheckUtils]: 37: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} assume true; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,546 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} #172#return; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,547 INFO L280 TraceCheckUtils]: 39: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,548 INFO L280 TraceCheckUtils]: 40: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 != #t~ret26);havoc #t~ret26; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,549 INFO L263 TraceCheckUtils]: 41: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,550 INFO L280 TraceCheckUtils]: 42: Hoare triple {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,550 INFO L263 TraceCheckUtils]: 43: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {3837#true} is VALID [2020-07-10 15:09:35,550 INFO L280 TraceCheckUtils]: 44: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3837#true} is VALID [2020-07-10 15:09:35,551 INFO L280 TraceCheckUtils]: 45: Hoare triple {3837#true} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {3837#true} is VALID [2020-07-10 15:09:35,551 INFO L280 TraceCheckUtils]: 46: Hoare triple {3837#true} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {3837#true} is VALID [2020-07-10 15:09:35,551 INFO L280 TraceCheckUtils]: 47: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,552 INFO L275 TraceCheckUtils]: 48: Hoare quadruple {3837#true} {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #178#return; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,553 INFO L280 TraceCheckUtils]: 49: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,554 INFO L280 TraceCheckUtils]: 50: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 == #t~ret16);havoc #t~ret16; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,554 INFO L280 TraceCheckUtils]: 51: Hoare triple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume true; {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,556 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {3946#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #174#return; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,557 INFO L280 TraceCheckUtils]: 53: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume true; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,559 INFO L275 TraceCheckUtils]: 54: Hoare quadruple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} {3842#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #190#return; {3886#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:35,560 INFO L263 TraceCheckUtils]: 55: Hoare triple {3886#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} call mutex_lock(~m1~0.base, ~m1~0.offset); {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,561 INFO L280 TraceCheckUtils]: 56: Hoare triple {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} is VALID [2020-07-10 15:09:35,561 INFO L263 TraceCheckUtils]: 57: Hoare triple {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3837#true} is VALID [2020-07-10 15:09:35,562 INFO L280 TraceCheckUtils]: 58: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} is VALID [2020-07-10 15:09:35,563 INFO L280 TraceCheckUtils]: 59: Hoare triple {3944#(and (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) |ldv_is_in_set_#in~s.offset|)) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base))} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,564 INFO L280 TraceCheckUtils]: 60: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} #res := 0; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,564 INFO L280 TraceCheckUtils]: 61: Hoare triple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} assume true; {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} is VALID [2020-07-10 15:09:35,566 INFO L275 TraceCheckUtils]: 62: Hoare quadruple {3945#(= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))} {3926#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} #172#return; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,567 INFO L280 TraceCheckUtils]: 63: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,567 INFO L280 TraceCheckUtils]: 64: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 != #t~ret26);havoc #t~ret26; {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,569 INFO L263 TraceCheckUtils]: 65: Hoare triple {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,570 INFO L280 TraceCheckUtils]: 66: Hoare triple {3925#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {3969#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:35,570 INFO L263 TraceCheckUtils]: 67: Hoare triple {3969#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {3837#true} is VALID [2020-07-10 15:09:35,571 INFO L280 TraceCheckUtils]: 68: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3976#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)))} is VALID [2020-07-10 15:09:35,572 INFO L280 TraceCheckUtils]: 69: Hoare triple {3976#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)))} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,573 INFO L280 TraceCheckUtils]: 70: Hoare triple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,573 INFO L280 TraceCheckUtils]: 71: Hoare triple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} assume true; {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} is VALID [2020-07-10 15:09:35,575 INFO L275 TraceCheckUtils]: 72: Hoare quadruple {3977#(or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|))))} {3969#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #178#return; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,576 INFO L280 TraceCheckUtils]: 73: Hoare triple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,576 INFO L280 TraceCheckUtils]: 74: Hoare triple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} assume !(0 == #t~ret16);havoc #t~ret16; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,577 INFO L280 TraceCheckUtils]: 75: Hoare triple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} assume true; {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} is VALID [2020-07-10 15:09:35,579 INFO L275 TraceCheckUtils]: 76: Hoare quadruple {3975#(or (not (= (select (select |old(#memory_$Pointer$.base)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.base|)) (not (= (select (select |old(#memory_$Pointer$.offset)| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|)))} {3932#(and (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #174#return; {3968#(not (= |~#mutexes~0.offset| (select (select |old(#memory_$Pointer$.offset)| |~#mutexes~0.base|) |~#mutexes~0.offset|)))} is VALID [2020-07-10 15:09:35,579 INFO L280 TraceCheckUtils]: 77: Hoare triple {3968#(not (= |~#mutexes~0.offset| (select (select |old(#memory_$Pointer$.offset)| |~#mutexes~0.base|) |~#mutexes~0.offset|)))} assume true; {3968#(not (= |~#mutexes~0.offset| (select (select |old(#memory_$Pointer$.offset)| |~#mutexes~0.base|) |~#mutexes~0.offset|)))} is VALID [2020-07-10 15:09:35,580 INFO L275 TraceCheckUtils]: 78: Hoare quadruple {3968#(not (= |~#mutexes~0.offset| (select (select |old(#memory_$Pointer$.offset)| |~#mutexes~0.base|) |~#mutexes~0.offset|)))} {3886#(and (= 0 (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)) (= 0 |~#mutexes~0.offset|))} #192#return; {3838#false} is VALID [2020-07-10 15:09:35,581 INFO L263 TraceCheckUtils]: 79: Hoare triple {3838#false} call mutex_unlock(~m2~0.base, ~m2~0.offset); {3838#false} is VALID [2020-07-10 15:09:35,581 INFO L280 TraceCheckUtils]: 80: Hoare triple {3838#false} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {3838#false} is VALID [2020-07-10 15:09:35,581 INFO L263 TraceCheckUtils]: 81: Hoare triple {3838#false} call #t~ret27 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3837#true} is VALID [2020-07-10 15:09:35,581 INFO L280 TraceCheckUtils]: 82: Hoare triple {3837#true} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3837#true} is VALID [2020-07-10 15:09:35,582 INFO L280 TraceCheckUtils]: 83: Hoare triple {3837#true} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {3837#true} is VALID [2020-07-10 15:09:35,582 INFO L280 TraceCheckUtils]: 84: Hoare triple {3837#true} #res := 0; {3837#true} is VALID [2020-07-10 15:09:35,582 INFO L280 TraceCheckUtils]: 85: Hoare triple {3837#true} assume true; {3837#true} is VALID [2020-07-10 15:09:35,582 INFO L275 TraceCheckUtils]: 86: Hoare quadruple {3837#true} {3838#false} #164#return; {3838#false} is VALID [2020-07-10 15:09:35,582 INFO L280 TraceCheckUtils]: 87: Hoare triple {3838#false} assume -2147483648 <= #t~ret27 && #t~ret27 <= 2147483647; {3838#false} is VALID [2020-07-10 15:09:35,583 INFO L280 TraceCheckUtils]: 88: Hoare triple {3838#false} assume 0 == #t~ret27;havoc #t~ret27; {3838#false} is VALID [2020-07-10 15:09:35,583 INFO L280 TraceCheckUtils]: 89: Hoare triple {3838#false} assume !false; {3838#false} is VALID [2020-07-10 15:09:35,603 INFO L134 CoverageAnalysis]: Checked inductivity of 66 backedges. 10 proven. 24 refuted. 0 times theorem prover too weak. 32 trivial. 0 not checked. [2020-07-10 15:09:35,604 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [18507946] [2020-07-10 15:09:35,604 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1730048538] [2020-07-10 15:09:35,604 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:09:35,753 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,757 INFO L264 TraceCheckSpWp]: Trace formula consists of 459 conjuncts, 71 conjunts are in the unsatisfiable core [2020-07-10 15:09:35,790 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:09:35,796 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:09:36,036 INFO L384 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 3 [2020-07-10 15:09:36,037 INFO L544 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2020-07-10 15:09:36,041 INFO L624 ElimStorePlain]: treesize reduction 0, result has 100.0 percent of original size [2020-07-10 15:09:36,042 INFO L544 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2020-07-10 15:09:36,042 INFO L244 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:11, output treesize:3 [2020-07-10 15:09:36,044 WARN L406 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2020-07-10 15:09:36,045 WARN L407 uantifierElimination]: Input elimination task: ∃ [|#memory_$Pointer$.base|, ldv_is_in_set_~s.offset]. (and (= 0 |~#mutexes~0.offset|) (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) ldv_is_in_set_~s.offset))) [2020-07-10 15:09:36,045 WARN L408 uantifierElimination]: ElimStorePlain result: ∃ []. (= 0 |~#mutexes~0.offset|) [2020-07-10 15:09:36,294 INFO L384 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 4 [2020-07-10 15:09:36,296 INFO L544 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2020-07-10 15:09:36,313 INFO L624 ElimStorePlain]: treesize reduction 19, result has 34.5 percent of original size [2020-07-10 15:09:36,314 INFO L512 ElimStorePlain]: Eliminatee |v_#memory_$Pointer$.base_BEFORE_CALL_1| vanished before elimination [2020-07-10 15:09:36,314 INFO L544 ElimStorePlain]: Start of recursive call 1: 2 dim-2 vars, End of recursive call: and 1 xjuncts. [2020-07-10 15:09:36,315 INFO L244 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:37, output treesize:10 [2020-07-10 15:09:36,318 WARN L406 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2020-07-10 15:09:36,318 WARN L407 uantifierElimination]: Input elimination task: ∃ [|v_#memory_$Pointer$.offset_BEFORE_CALL_1|, |v_#memory_$Pointer$.base_BEFORE_CALL_1|]. (let ((.cse0 (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (.cse1 (= 0 |~#mutexes~0.offset|)) (.cse2 (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))) (or (and .cse0 .cse1 (not (= (select (select |v_#memory_$Pointer$.offset_BEFORE_CALL_1| |~#mutexes~0.base|) |~#mutexes~0.offset|) |~#mutexes~0.offset|)) .cse2) (and (not (= |~#mutexes~0.base| (select (select |v_#memory_$Pointer$.base_BEFORE_CALL_1| |~#mutexes~0.base|) |~#mutexes~0.offset|))) .cse0 .cse1 .cse2))) [2020-07-10 15:09:36,318 WARN L408 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) [2020-07-10 15:09:36,596 INFO L501 QuantifierPusher]: Distributing 2 conjuncts over 2 disjuncts [2020-07-10 15:09:36,603 INFO L263 TraceCheckUtils]: 0: Hoare triple {3837#true} call ULTIMATE.init(); {3837#true} is VALID [2020-07-10 15:09:36,603 INFO L280 TraceCheckUtils]: 1: Hoare triple {3837#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#mutexes~0.base, ~#mutexes~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, ~#mutexes~0.offset, 4);call write~init~$Pointer$(~#mutexes~0.base, ~#mutexes~0.offset, ~#mutexes~0.base, 4 + ~#mutexes~0.offset, 4); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,604 INFO L280 TraceCheckUtils]: 2: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume true; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,605 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3984#(= 0 |~#mutexes~0.offset|)} {3837#true} #210#return; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,605 INFO L263 TraceCheckUtils]: 4: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} call #t~ret31 := main(); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,607 INFO L263 TraceCheckUtils]: 5: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} call foo(); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,607 INFO L263 TraceCheckUtils]: 6: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} call ldv_initialize(); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,608 INFO L280 TraceCheckUtils]: 7: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume true; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,608 INFO L275 TraceCheckUtils]: 8: Hoare quadruple {3984#(= 0 |~#mutexes~0.offset|)} {3984#(= 0 |~#mutexes~0.offset|)} #184#return; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,609 INFO L263 TraceCheckUtils]: 9: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} call #t~ret29.base, #t~ret29.offset := ldv_successful_malloc(8); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,609 INFO L280 TraceCheckUtils]: 10: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,610 INFO L263 TraceCheckUtils]: 11: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,611 INFO L280 TraceCheckUtils]: 12: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~cond := #in~cond; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,611 INFO L280 TraceCheckUtils]: 13: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume !(0 == ~cond); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,612 INFO L280 TraceCheckUtils]: 14: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume true; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,612 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {3984#(= 0 |~#mutexes~0.offset|)} {3984#(= 0 |~#mutexes~0.offset|)} #204#return; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,613 INFO L280 TraceCheckUtils]: 16: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,614 INFO L280 TraceCheckUtils]: 17: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume true; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,614 INFO L275 TraceCheckUtils]: 18: Hoare quadruple {3984#(= 0 |~#mutexes~0.offset|)} {3984#(= 0 |~#mutexes~0.offset|)} #186#return; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,615 INFO L280 TraceCheckUtils]: 19: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~m1~0.base, ~m1~0.offset := #t~ret29.base, #t~ret29.offset;havoc #t~ret29.base, #t~ret29.offset; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,615 INFO L263 TraceCheckUtils]: 20: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} call #t~ret30.base, #t~ret30.offset := ldv_successful_malloc(8); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,616 INFO L280 TraceCheckUtils]: 21: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~size := #in~size;call #t~malloc4.base, #t~malloc4.offset := #Ultimate.allocOnHeap(~size);~ptr~0.base, ~ptr~0.offset := #t~malloc4.base, #t~malloc4.offset; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,617 INFO L263 TraceCheckUtils]: 22: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} call assume_abort_if_not((if ~ptr~0.base != 0 || ~ptr~0.offset != 0 then 1 else 0)); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,617 INFO L280 TraceCheckUtils]: 23: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~cond := #in~cond; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,618 INFO L280 TraceCheckUtils]: 24: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume !(0 == ~cond); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,618 INFO L280 TraceCheckUtils]: 25: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume true; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,619 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {3984#(= 0 |~#mutexes~0.offset|)} {3984#(= 0 |~#mutexes~0.offset|)} #204#return; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,619 INFO L280 TraceCheckUtils]: 27: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,620 INFO L280 TraceCheckUtils]: 28: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume true; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,621 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {3984#(= 0 |~#mutexes~0.offset|)} {3984#(= 0 |~#mutexes~0.offset|)} #188#return; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,621 INFO L280 TraceCheckUtils]: 30: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~m2~0.base, ~m2~0.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,622 INFO L263 TraceCheckUtils]: 31: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} call mutex_lock(~m1~0.base, ~m1~0.offset); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,622 INFO L280 TraceCheckUtils]: 32: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,623 INFO L263 TraceCheckUtils]: 33: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,624 INFO L280 TraceCheckUtils]: 34: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {4084#(and (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (exists ((ldv_is_in_set_~s.offset Int)) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,625 INFO L280 TraceCheckUtils]: 35: Hoare triple {4084#(and (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (exists ((ldv_is_in_set_~s.offset Int)) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset))) (= 0 |~#mutexes~0.offset|))} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {4088#(and (exists ((ldv_is_in_set_~s.offset Int)) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) ldv_is_in_set_~s.offset))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,627 INFO L280 TraceCheckUtils]: 36: Hoare triple {4088#(and (exists ((ldv_is_in_set_~s.offset Int)) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) ldv_is_in_set_~s.offset))) (= 0 |~#mutexes~0.offset|))} #res := 0; {4088#(and (exists ((ldv_is_in_set_~s.offset Int)) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) ldv_is_in_set_~s.offset))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,628 INFO L280 TraceCheckUtils]: 37: Hoare triple {4088#(and (exists ((ldv_is_in_set_~s.offset Int)) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) ldv_is_in_set_~s.offset))) (= 0 |~#mutexes~0.offset|))} assume true; {4088#(and (exists ((ldv_is_in_set_~s.offset Int)) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) ldv_is_in_set_~s.offset))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,629 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {4088#(and (exists ((ldv_is_in_set_~s.offset Int)) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) ldv_is_in_set_~s.offset))) (= 0 |~#mutexes~0.offset|))} {3984#(= 0 |~#mutexes~0.offset|)} #172#return; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,630 INFO L280 TraceCheckUtils]: 39: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,630 INFO L280 TraceCheckUtils]: 40: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume !(0 != #t~ret26);havoc #t~ret26; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,631 INFO L263 TraceCheckUtils]: 41: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,632 INFO L280 TraceCheckUtils]: 42: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {4110#(and (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,633 INFO L263 TraceCheckUtils]: 43: Hoare triple {4110#(and (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= 0 |~#mutexes~0.offset|))} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,634 INFO L280 TraceCheckUtils]: 44: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {4117#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,635 INFO L280 TraceCheckUtils]: 45: Hoare triple {4117#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= 0 |~#mutexes~0.offset|))} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {4121#(and (or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,636 INFO L280 TraceCheckUtils]: 46: Hoare triple {4121#(and (or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)))) (= 0 |~#mutexes~0.offset|))} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {4121#(and (or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,637 INFO L280 TraceCheckUtils]: 47: Hoare triple {4121#(and (or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)))) (= 0 |~#mutexes~0.offset|))} assume true; {4121#(and (or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,639 INFO L275 TraceCheckUtils]: 48: Hoare quadruple {4121#(and (or (not (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|)) (not (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)))) (= 0 |~#mutexes~0.offset|))} {4110#(and (= ldv_set_add_~s.base |ldv_set_add_#in~s.base|) (= ldv_set_add_~s.offset |ldv_set_add_#in~s.offset|) (= 0 |~#mutexes~0.offset|))} #178#return; {4131#(and (= 0 |~#mutexes~0.offset|) (or (not (= |ldv_set_add_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|))) (not (= (select (select |#memory_$Pointer$.offset| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|))))} is VALID [2020-07-10 15:09:36,640 INFO L280 TraceCheckUtils]: 49: Hoare triple {4131#(and (= 0 |~#mutexes~0.offset|) (or (not (= |ldv_set_add_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|))) (not (= (select (select |#memory_$Pointer$.offset| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|))))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {4131#(and (= 0 |~#mutexes~0.offset|) (or (not (= |ldv_set_add_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|))) (not (= (select (select |#memory_$Pointer$.offset| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|))))} is VALID [2020-07-10 15:09:36,641 INFO L280 TraceCheckUtils]: 50: Hoare triple {4131#(and (= 0 |~#mutexes~0.offset|) (or (not (= |ldv_set_add_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|))) (not (= (select (select |#memory_$Pointer$.offset| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|))))} assume !(0 == #t~ret16);havoc #t~ret16; {4131#(and (= 0 |~#mutexes~0.offset|) (or (not (= |ldv_set_add_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|))) (not (= (select (select |#memory_$Pointer$.offset| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|))))} is VALID [2020-07-10 15:09:36,642 INFO L280 TraceCheckUtils]: 51: Hoare triple {4131#(and (= 0 |~#mutexes~0.offset|) (or (not (= |ldv_set_add_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|))) (not (= (select (select |#memory_$Pointer$.offset| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|))))} assume true; {4131#(and (= 0 |~#mutexes~0.offset|) (or (not (= |ldv_set_add_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|))) (not (= (select (select |#memory_$Pointer$.offset| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|))))} is VALID [2020-07-10 15:09:36,643 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {4131#(and (= 0 |~#mutexes~0.offset|) (or (not (= |ldv_set_add_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|))) (not (= (select (select |#memory_$Pointer$.offset| |ldv_set_add_#in~s.base|) |ldv_set_add_#in~s.offset|) |ldv_set_add_#in~s.offset|))))} {3984#(= 0 |~#mutexes~0.offset|)} #174#return; {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,644 INFO L280 TraceCheckUtils]: 53: Hoare triple {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} assume true; {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,645 INFO L275 TraceCheckUtils]: 54: Hoare quadruple {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} {3984#(= 0 |~#mutexes~0.offset|)} #190#return; {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,646 INFO L263 TraceCheckUtils]: 55: Hoare triple {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} call mutex_lock(~m1~0.base, ~m1~0.offset); {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,647 INFO L280 TraceCheckUtils]: 56: Hoare triple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,648 INFO L263 TraceCheckUtils]: 57: Hoare triple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call #t~ret26 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,648 INFO L280 TraceCheckUtils]: 58: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,649 INFO L280 TraceCheckUtils]: 59: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,649 INFO L280 TraceCheckUtils]: 60: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} #res := 0; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,650 INFO L280 TraceCheckUtils]: 61: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume true; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,651 INFO L275 TraceCheckUtils]: 62: Hoare quadruple {3984#(= 0 |~#mutexes~0.offset|)} {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #172#return; {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,652 INFO L280 TraceCheckUtils]: 63: Hoare triple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647; {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,653 INFO L280 TraceCheckUtils]: 64: Hoare triple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 != #t~ret26);havoc #t~ret26; {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,654 INFO L263 TraceCheckUtils]: 65: Hoare triple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call ldv_set_add(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,655 INFO L280 TraceCheckUtils]: 66: Hoare triple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset; {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,656 INFO L263 TraceCheckUtils]: 67: Hoare triple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call #t~ret16 := ldv_is_in_set(~new.base, ~new.offset, ~s.base, ~s.offset); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,656 INFO L280 TraceCheckUtils]: 68: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,657 INFO L280 TraceCheckUtils]: 69: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume !!(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset);call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~m~1.base, ~m~1.offset, 4); {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,657 INFO L280 TraceCheckUtils]: 70: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume #t~mem24.base == ~e.base && #t~mem24.offset == ~e.offset;havoc #t~mem24.base, #t~mem24.offset;#res := 1; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,658 INFO L280 TraceCheckUtils]: 71: Hoare triple {3984#(= 0 |~#mutexes~0.offset|)} assume true; {3984#(= 0 |~#mutexes~0.offset|)} is VALID [2020-07-10 15:09:36,659 INFO L275 TraceCheckUtils]: 72: Hoare quadruple {3984#(= 0 |~#mutexes~0.offset|)} {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #178#return; {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,659 INFO L280 TraceCheckUtils]: 73: Hoare triple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume -2147483648 <= #t~ret16 && #t~ret16 <= 2147483647; {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,660 INFO L280 TraceCheckUtils]: 74: Hoare triple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 == #t~ret16);havoc #t~ret16; {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,661 INFO L280 TraceCheckUtils]: 75: Hoare triple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume true; {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,662 INFO L275 TraceCheckUtils]: 76: Hoare quadruple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #174#return; {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,663 INFO L280 TraceCheckUtils]: 77: Hoare triple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume true; {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-10 15:09:36,664 INFO L275 TraceCheckUtils]: 78: Hoare quadruple {4154#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 |~#mutexes~0.offset|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} #192#return; {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,665 INFO L263 TraceCheckUtils]: 79: Hoare triple {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} call mutex_unlock(~m2~0.base, ~m2~0.offset); {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,667 INFO L280 TraceCheckUtils]: 80: Hoare triple {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} ~m.base, ~m.offset := #in~m.base, #in~m.offset; {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,668 INFO L263 TraceCheckUtils]: 81: Hoare triple {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} call #t~ret27 := ldv_is_in_set(~m.base, ~m.offset, ~#mutexes~0.base, ~#mutexes~0.offset); {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,669 INFO L280 TraceCheckUtils]: 82: Hoare triple {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} ~e.base, ~e.offset := #in~e.base, #in~e.offset;~s.base, ~s.offset := #in~s.base, #in~s.offset;havoc ~m~1.base, ~m~1.offset;call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~s.base, ~s.offset, 4);~__mptr~3.base, ~__mptr~3.offset := #t~mem22.base, #t~mem22.offset;havoc #t~mem22.base, #t~mem22.offset;~m~1.base, ~m~1.offset := ~__mptr~3.base, ~__mptr~3.offset - 4; {4236#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,670 INFO L280 TraceCheckUtils]: 83: Hoare triple {4236#(and (= (+ ldv_is_in_set_~m~1.offset 4) (select (select |#memory_$Pointer$.offset| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= |ldv_is_in_set_#in~s.offset| ldv_is_in_set_~s.offset) (= |ldv_is_in_set_#in~s.base| ldv_is_in_set_~s.base) (= ldv_is_in_set_~m~1.base (select (select |#memory_$Pointer$.base| ldv_is_in_set_~s.base) ldv_is_in_set_~s.offset)) (= 0 |~#mutexes~0.offset|))} assume !(~m~1.base != ~s.base || 4 + ~m~1.offset != ~s.offset); {4240#(and (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|) (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,671 INFO L280 TraceCheckUtils]: 84: Hoare triple {4240#(and (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|) (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)) (= 0 |~#mutexes~0.offset|))} #res := 0; {4240#(and (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|) (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,672 INFO L280 TraceCheckUtils]: 85: Hoare triple {4240#(and (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|) (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)) (= 0 |~#mutexes~0.offset|))} assume true; {4240#(and (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|) (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)) (= 0 |~#mutexes~0.offset|))} is VALID [2020-07-10 15:09:36,674 INFO L275 TraceCheckUtils]: 86: Hoare quadruple {4240#(and (= (select (select |#memory_$Pointer$.offset| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|) |ldv_is_in_set_#in~s.offset|) (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= |ldv_is_in_set_#in~s.base| (select (select |#memory_$Pointer$.base| |ldv_is_in_set_#in~s.base|) |ldv_is_in_set_#in~s.offset|)) (= 0 |~#mutexes~0.offset|))} {4144#(and (or (not (= |~#mutexes~0.offset| (select (select |#memory_$Pointer$.offset| |~#mutexes~0.base|) |~#mutexes~0.offset|))) (not (= |~#mutexes~0.base| (select (select |#memory_$Pointer$.base| |~#mutexes~0.base|) |~#mutexes~0.offset|)))) (= 0 |~#mutexes~0.offset|))} #164#return; {3838#false} is VALID [2020-07-10 15:09:36,674 INFO L280 TraceCheckUtils]: 87: Hoare triple {3838#false} assume -2147483648 <= #t~ret27 && #t~ret27 <= 2147483647; {3838#false} is VALID [2020-07-10 15:09:36,674 INFO L280 TraceCheckUtils]: 88: Hoare triple {3838#false} assume 0 == #t~ret27;havoc #t~ret27; {3838#false} is VALID [2020-07-10 15:09:36,674 INFO L280 TraceCheckUtils]: 89: Hoare triple {3838#false} assume !false; {3838#false} is VALID [2020-07-10 15:09:36,702 INFO L134 CoverageAnalysis]: Checked inductivity of 66 backedges. 23 proven. 25 refuted. 0 times theorem prover too weak. 18 trivial. 0 not checked. [2020-07-10 15:09:36,703 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:09:36,703 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 13] total 28 [2020-07-10 15:09:36,703 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [31839145] [2020-07-10 15:09:36,705 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 90 [2020-07-10 15:09:36,706 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:09:36,707 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 28 states. [2020-07-10 15:09:36,911 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 147 edges. 147 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:09:36,912 INFO L459 AbstractCegarLoop]: Interpolant automaton has 28 states [2020-07-10 15:09:36,912 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:09:36,912 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2020-07-10 15:09:36,913 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=89, Invalid=667, Unknown=0, NotChecked=0, Total=756 [2020-07-10 15:09:36,914 INFO L87 Difference]: Start difference. First operand 169 states and 200 transitions. Second operand 28 states. [2020-07-10 15:09:55,551 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:55,552 INFO L93 Difference]: Finished difference Result 449 states and 539 transitions. [2020-07-10 15:09:55,552 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 48 states. [2020-07-10 15:09:55,552 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 90 [2020-07-10 15:09:55,552 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:09:55,553 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2020-07-10 15:09:55,566 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 426 transitions. [2020-07-10 15:09:55,566 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2020-07-10 15:09:55,578 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 426 transitions. [2020-07-10 15:09:55,578 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 48 states and 426 transitions. [2020-07-10 15:09:56,491 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 426 edges. 426 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:09:56,504 INFO L225 Difference]: With dead ends: 449 [2020-07-10 15:09:56,504 INFO L226 Difference]: Without dead ends: 254 [2020-07-10 15:09:56,506 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 190 GetRequests, 122 SyntacticMatches, 0 SemanticMatches, 68 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1225 ImplicationChecksByTransitivity, 3.3s TimeCoverageRelationStatistics Valid=880, Invalid=3950, Unknown=0, NotChecked=0, Total=4830 [2020-07-10 15:09:56,507 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 254 states. [2020-07-10 15:09:56,830 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 254 to 211. [2020-07-10 15:09:56,830 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:09:56,830 INFO L82 GeneralOperation]: Start isEquivalent. First operand 254 states. Second operand 211 states. [2020-07-10 15:09:56,830 INFO L74 IsIncluded]: Start isIncluded. First operand 254 states. Second operand 211 states. [2020-07-10 15:09:56,830 INFO L87 Difference]: Start difference. First operand 254 states. Second operand 211 states. [2020-07-10 15:09:56,843 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:56,843 INFO L93 Difference]: Finished difference Result 254 states and 298 transitions. [2020-07-10 15:09:56,843 INFO L276 IsEmpty]: Start isEmpty. Operand 254 states and 298 transitions. [2020-07-10 15:09:56,845 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:09:56,845 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:09:56,845 INFO L74 IsIncluded]: Start isIncluded. First operand 211 states. Second operand 254 states. [2020-07-10 15:09:56,845 INFO L87 Difference]: Start difference. First operand 211 states. Second operand 254 states. [2020-07-10 15:09:56,858 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:09:56,858 INFO L93 Difference]: Finished difference Result 254 states and 298 transitions. [2020-07-10 15:09:56,859 INFO L276 IsEmpty]: Start isEmpty. Operand 254 states and 298 transitions. [2020-07-10 15:09:56,860 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:09:56,860 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:09:56,860 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:09:56,860 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:09:56,860 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 211 states. [2020-07-10 15:09:56,870 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 211 states to 211 states and 248 transitions. [2020-07-10 15:09:56,871 INFO L78 Accepts]: Start accepts. Automaton has 211 states and 248 transitions. Word has length 90 [2020-07-10 15:09:56,871 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:09:56,871 INFO L479 AbstractCegarLoop]: Abstraction has 211 states and 248 transitions. [2020-07-10 15:09:56,871 INFO L480 AbstractCegarLoop]: Interpolant automaton has 28 states. [2020-07-10 15:09:56,871 INFO L276 IsEmpty]: Start isEmpty. Operand 211 states and 248 transitions. [2020-07-10 15:09:56,873 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 87 [2020-07-10 15:09:56,873 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:09:56,873 INFO L422 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:09:57,087 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,3 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:09:57,088 INFO L427 AbstractCegarLoop]: === Iteration 6 === [mutex_unlockErr0ASSERT_VIOLATIONERROR_FUNCTION, ldv_check_final_stateErr0ASSERT_VIOLATIONERROR_FUNCTION, mutex_lockErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:09:57,089 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:09:57,089 INFO L82 PathProgramCache]: Analyzing trace with hash 1106436747, now seen corresponding path program 1 times [2020-07-10 15:09:57,090 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:09:57,090 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1558521467] [2020-07-10 15:09:57,091 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:09:57,143 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-10 15:09:57,180 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-10 15:09:57,236 INFO L174 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2020-07-10 15:09:57,237 INFO L520 BasicCegarLoop]: Counterexample might be feasible [2020-07-10 15:09:57,237 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5 [2020-07-10 15:09:57,297 WARN L1295 BoogieBacktranslator]: Unfinished Backtranslation: IntegerLiteral 15 could not be translated for associated CType STRUCT~~ldv_list_head?next~*ldv_list_head?prev~*ldv_list_head# [2020-07-10 15:09:57,298 WARN L1295 BoogieBacktranslator]: Unfinished Backtranslation: IntegerLiteral 14 could not be translated for associated CType STRUCT~~ldv_list_head?next~*ldv_list_head?prev~*ldv_list_head# [2020-07-10 15:09:57,346 WARN L170 areAnnotationChecker]: __ldv_list_delENTRY has no Hoare annotation [2020-07-10 15:09:57,346 WARN L170 areAnnotationChecker]: fooENTRY has no Hoare annotation [2020-07-10 15:09:57,346 WARN L170 areAnnotationChecker]: fooENTRY has no Hoare annotation [2020-07-10 15:09:57,346 WARN L170 areAnnotationChecker]: __bswap_64ENTRY has no Hoare annotation [2020-07-10 15:09:57,346 WARN L170 areAnnotationChecker]: mainENTRY has no Hoare annotation [2020-07-10 15:09:57,347 WARN L170 areAnnotationChecker]: mainENTRY has no Hoare annotation [2020-07-10 15:09:57,347 WARN L170 areAnnotationChecker]: ldv_list_delENTRY has no Hoare annotation [2020-07-10 15:09:57,347 WARN L170 areAnnotationChecker]: mutex_unlockENTRY has no Hoare annotation [2020-07-10 15:09:57,347 WARN L170 areAnnotationChecker]: ldv_list_add_tailENTRY has no Hoare annotation [2020-07-10 15:09:57,347 WARN L170 areAnnotationChecker]: ldv_init_setENTRY has no Hoare annotation [2020-07-10 15:09:57,347 WARN L170 areAnnotationChecker]: ldv_set_addENTRY has no Hoare annotation [2020-07-10 15:09:57,347 WARN L170 areAnnotationChecker]: ldv_initializeFINAL has no Hoare annotation [2020-07-10 15:09:57,347 WARN L170 areAnnotationChecker]: ldv_is_in_setENTRY has no Hoare annotation [2020-07-10 15:09:57,347 WARN L170 areAnnotationChecker]: ldv_list_addENTRY has no Hoare annotation [2020-07-10 15:09:57,347 WARN L170 areAnnotationChecker]: __bswap_32ENTRY has no Hoare annotation [2020-07-10 15:09:57,348 WARN L170 areAnnotationChecker]: assume_abort_if_notENTRY has no Hoare annotation [2020-07-10 15:09:57,348 WARN L170 areAnnotationChecker]: LDV_INIT_LIST_HEADENTRY has no Hoare annotation [2020-07-10 15:09:57,348 WARN L170 areAnnotationChecker]: ldv_list_emptyENTRY has no Hoare annotation [2020-07-10 15:09:57,348 WARN L170 areAnnotationChecker]: ldv_successful_mallocENTRY has no Hoare annotation [2020-07-10 15:09:57,348 WARN L170 areAnnotationChecker]: __ldv_list_addENTRY has no Hoare annotation [2020-07-10 15:09:57,348 WARN L170 areAnnotationChecker]: ULTIMATE.initENTRY has no Hoare annotation [2020-07-10 15:09:57,348 WARN L170 areAnnotationChecker]: ldv_mallocENTRY has no Hoare annotation [2020-07-10 15:09:57,348 WARN L170 areAnnotationChecker]: ldv_set_emptyENTRY has no Hoare annotation [2020-07-10 15:09:57,348 WARN L170 areAnnotationChecker]: ldv_check_final_stateENTRY has no Hoare annotation [2020-07-10 15:09:57,348 WARN L170 areAnnotationChecker]: ldv_check_final_stateENTRY has no Hoare annotation [2020-07-10 15:09:57,349 WARN L170 areAnnotationChecker]: ldv_set_delENTRY has no Hoare annotation [2020-07-10 15:09:57,349 WARN L170 areAnnotationChecker]: mutex_lockENTRY has no Hoare annotation [2020-07-10 15:09:57,349 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2020-07-10 15:09:57,349 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2020-07-10 15:09:57,349 WARN L170 areAnnotationChecker]: __ldv_list_delFINAL has no Hoare annotation [2020-07-10 15:09:57,349 WARN L170 areAnnotationChecker]: L670 has no Hoare annotation [2020-07-10 15:09:57,349 WARN L170 areAnnotationChecker]: L670 has no Hoare annotation [2020-07-10 15:09:57,349 WARN L170 areAnnotationChecker]: __bswap_64FINAL has no Hoare annotation [2020-07-10 15:09:57,349 WARN L170 areAnnotationChecker]: L681 has no Hoare annotation [2020-07-10 15:09:57,349 WARN L170 areAnnotationChecker]: L605 has no Hoare annotation [2020-07-10 15:09:57,350 WARN L170 areAnnotationChecker]: L605 has no Hoare annotation [2020-07-10 15:09:57,350 WARN L170 areAnnotationChecker]: L662 has no Hoare annotation [2020-07-10 15:09:57,350 WARN L170 areAnnotationChecker]: L662 has no Hoare annotation [2020-07-10 15:09:57,350 WARN L170 areAnnotationChecker]: L601 has no Hoare annotation [2020-07-10 15:09:57,350 WARN L170 areAnnotationChecker]: L601 has no Hoare annotation [2020-07-10 15:09:57,350 WARN L170 areAnnotationChecker]: L618 has no Hoare annotation [2020-07-10 15:09:57,350 WARN L170 areAnnotationChecker]: L618 has no Hoare annotation [2020-07-10 15:09:57,350 WARN L170 areAnnotationChecker]: L625 has no Hoare annotation [2020-07-10 15:09:57,350 WARN L170 areAnnotationChecker]: L625 has no Hoare annotation [2020-07-10 15:09:57,350 WARN L170 areAnnotationChecker]: ldv_initializeEXIT has no Hoare annotation [2020-07-10 15:09:57,350 WARN L170 areAnnotationChecker]: L644-3 has no Hoare annotation [2020-07-10 15:09:57,351 WARN L170 areAnnotationChecker]: L644-3 has no Hoare annotation [2020-07-10 15:09:57,351 WARN L170 areAnnotationChecker]: L644-3 has no Hoare annotation [2020-07-10 15:09:57,351 WARN L170 areAnnotationChecker]: L597 has no Hoare annotation [2020-07-10 15:09:57,351 WARN L170 areAnnotationChecker]: L597 has no Hoare annotation [2020-07-10 15:09:57,351 WARN L170 areAnnotationChecker]: __bswap_32FINAL has no Hoare annotation [2020-07-10 15:09:57,351 WARN L170 areAnnotationChecker]: L554 has no Hoare annotation [2020-07-10 15:09:57,351 WARN L170 areAnnotationChecker]: L554 has no Hoare annotation [2020-07-10 15:09:57,351 WARN L170 areAnnotationChecker]: LDV_INIT_LIST_HEADFINAL has no Hoare annotation [2020-07-10 15:09:57,351 WARN L170 areAnnotationChecker]: ldv_list_emptyFINAL has no Hoare annotation [2020-07-10 15:09:57,352 WARN L170 areAnnotationChecker]: L566 has no Hoare annotation [2020-07-10 15:09:57,352 WARN L170 areAnnotationChecker]: L566 has no Hoare annotation [2020-07-10 15:09:57,352 WARN L170 areAnnotationChecker]: __ldv_list_addFINAL has no Hoare annotation [2020-07-10 15:09:57,352 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2020-07-10 15:09:57,352 WARN L170 areAnnotationChecker]: L558 has no Hoare annotation [2020-07-10 15:09:57,352 WARN L170 areAnnotationChecker]: L558 has no Hoare annotation [2020-07-10 15:09:57,352 WARN L170 areAnnotationChecker]: L652 has no Hoare annotation [2020-07-10 15:09:57,352 WARN L170 areAnnotationChecker]: L652 has no Hoare annotation [2020-07-10 15:09:57,352 WARN L170 areAnnotationChecker]: L666 has no Hoare annotation [2020-07-10 15:09:57,353 WARN L170 areAnnotationChecker]: L635-3 has no Hoare annotation [2020-07-10 15:09:57,353 WARN L170 areAnnotationChecker]: L635-3 has no Hoare annotation [2020-07-10 15:09:57,353 WARN L170 areAnnotationChecker]: L635-3 has no Hoare annotation [2020-07-10 15:09:57,353 WARN L170 areAnnotationChecker]: L658 has no Hoare annotation [2020-07-10 15:09:57,353 WARN L170 areAnnotationChecker]: L658 has no Hoare annotation [2020-07-10 15:09:57,353 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2020-07-10 15:09:57,353 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2020-07-10 15:09:57,353 WARN L170 areAnnotationChecker]: __ldv_list_delEXIT has no Hoare annotation [2020-07-10 15:09:57,353 WARN L170 areAnnotationChecker]: L671 has no Hoare annotation [2020-07-10 15:09:57,353 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2020-07-10 15:09:57,354 WARN L170 areAnnotationChecker]: L605-1 has no Hoare annotation [2020-07-10 15:09:57,354 WARN L170 areAnnotationChecker]: L662-1 has no Hoare annotation [2020-07-10 15:09:57,354 WARN L170 areAnnotationChecker]: L601-1 has no Hoare annotation [2020-07-10 15:09:57,354 WARN L170 areAnnotationChecker]: ldv_init_setFINAL has no Hoare annotation [2020-07-10 15:09:57,354 WARN L170 areAnnotationChecker]: L625-1 has no Hoare annotation [2020-07-10 15:09:57,354 WARN L170 areAnnotationChecker]: L644-4 has no Hoare annotation [2020-07-10 15:09:57,354 WARN L170 areAnnotationChecker]: L645 has no Hoare annotation [2020-07-10 15:09:57,354 WARN L170 areAnnotationChecker]: L645 has no Hoare annotation [2020-07-10 15:09:57,354 WARN L170 areAnnotationChecker]: L597-1 has no Hoare annotation [2020-07-10 15:09:57,355 WARN L170 areAnnotationChecker]: L554-2 has no Hoare annotation [2020-07-10 15:09:57,355 WARN L170 areAnnotationChecker]: LDV_INIT_LIST_HEADEXIT has no Hoare annotation [2020-07-10 15:09:57,355 WARN L170 areAnnotationChecker]: ldv_list_emptyEXIT has no Hoare annotation [2020-07-10 15:09:57,355 WARN L170 areAnnotationChecker]: L566-1 has no Hoare annotation [2020-07-10 15:09:57,355 WARN L170 areAnnotationChecker]: __ldv_list_addEXIT has no Hoare annotation [2020-07-10 15:09:57,355 WARN L170 areAnnotationChecker]: __ldv_list_addEXIT has no Hoare annotation [2020-07-10 15:09:57,355 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2020-07-10 15:09:57,355 WARN L170 areAnnotationChecker]: ldv_mallocFINAL has no Hoare annotation [2020-07-10 15:09:57,355 WARN L170 areAnnotationChecker]: L652-1 has no Hoare annotation [2020-07-10 15:09:57,356 WARN L170 areAnnotationChecker]: L666-1 has no Hoare annotation [2020-07-10 15:09:57,356 WARN L170 areAnnotationChecker]: L666-1 has no Hoare annotation [2020-07-10 15:09:57,356 WARN L170 areAnnotationChecker]: L635-4 has no Hoare annotation [2020-07-10 15:09:57,356 WARN L170 areAnnotationChecker]: L636 has no Hoare annotation [2020-07-10 15:09:57,356 WARN L170 areAnnotationChecker]: L636 has no Hoare annotation [2020-07-10 15:09:57,356 WARN L170 areAnnotationChecker]: L658-1 has no Hoare annotation [2020-07-10 15:09:57,356 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2020-07-10 15:09:57,356 WARN L170 areAnnotationChecker]: L672 has no Hoare annotation [2020-07-10 15:09:57,356 WARN L170 areAnnotationChecker]: L672 has no Hoare annotation [2020-07-10 15:09:57,356 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2020-07-10 15:09:57,357 WARN L170 areAnnotationChecker]: ldv_list_delFINAL has no Hoare annotation [2020-07-10 15:09:57,357 WARN L170 areAnnotationChecker]: L662-2 has no Hoare annotation [2020-07-10 15:09:57,357 WARN L170 areAnnotationChecker]: L662-2 has no Hoare annotation [2020-07-10 15:09:57,357 WARN L170 areAnnotationChecker]: ldv_list_add_tailFINAL has no Hoare annotation [2020-07-10 15:09:57,357 WARN L170 areAnnotationChecker]: L625-2 has no Hoare annotation [2020-07-10 15:09:57,357 WARN L170 areAnnotationChecker]: L625-2 has no Hoare annotation [2020-07-10 15:09:57,357 WARN L170 areAnnotationChecker]: ldv_is_in_setFINAL has no Hoare annotation [2020-07-10 15:09:57,357 WARN L170 areAnnotationChecker]: L644-2 has no Hoare annotation [2020-07-10 15:09:57,357 WARN L170 areAnnotationChecker]: ldv_list_addFINAL has no Hoare annotation [2020-07-10 15:09:57,358 WARN L170 areAnnotationChecker]: assume_abort_if_notEXIT has no Hoare annotation [2020-07-10 15:09:57,358 WARN L170 areAnnotationChecker]: ldv_successful_mallocFINAL has no Hoare annotation [2020-07-10 15:09:57,358 WARN L170 areAnnotationChecker]: ldv_set_emptyFINAL has no Hoare annotation [2020-07-10 15:09:57,358 WARN L170 areAnnotationChecker]: L666-2 has no Hoare annotation [2020-07-10 15:09:57,358 WARN L170 areAnnotationChecker]: L666-2 has no Hoare annotation [2020-07-10 15:09:57,358 WARN L170 areAnnotationChecker]: L666-4 has no Hoare annotation [2020-07-10 15:09:57,358 WARN L170 areAnnotationChecker]: ldv_set_delEXIT has no Hoare annotation [2020-07-10 15:09:57,358 WARN L170 areAnnotationChecker]: L637 has no Hoare annotation [2020-07-10 15:09:57,358 WARN L170 areAnnotationChecker]: L637 has no Hoare annotation [2020-07-10 15:09:57,359 WARN L170 areAnnotationChecker]: L635-2 has no Hoare annotation [2020-07-10 15:09:57,359 WARN L170 areAnnotationChecker]: L658-2 has no Hoare annotation [2020-07-10 15:09:57,359 WARN L170 areAnnotationChecker]: L658-2 has no Hoare annotation [2020-07-10 15:09:57,359 WARN L170 areAnnotationChecker]: L672-1 has no Hoare annotation [2020-07-10 15:09:57,359 WARN L170 areAnnotationChecker]: ldv_list_delEXIT has no Hoare annotation [2020-07-10 15:09:57,359 WARN L170 areAnnotationChecker]: L662-3 has no Hoare annotation [2020-07-10 15:09:57,359 WARN L170 areAnnotationChecker]: L662-3 has no Hoare annotation [2020-07-10 15:09:57,359 WARN L170 areAnnotationChecker]: L662-5 has no Hoare annotation [2020-07-10 15:09:57,359 WARN L170 areAnnotationChecker]: L662-5 has no Hoare annotation [2020-07-10 15:09:57,360 WARN L170 areAnnotationChecker]: L627 has no Hoare annotation [2020-07-10 15:09:57,360 WARN L170 areAnnotationChecker]: L627 has no Hoare annotation [2020-07-10 15:09:57,360 WARN L170 areAnnotationChecker]: L625-3 has no Hoare annotation [2020-07-10 15:09:57,360 WARN L170 areAnnotationChecker]: ldv_is_in_setEXIT has no Hoare annotation [2020-07-10 15:09:57,360 WARN L170 areAnnotationChecker]: ldv_is_in_setEXIT has no Hoare annotation [2020-07-10 15:09:57,360 WARN L170 areAnnotationChecker]: ldv_is_in_setEXIT has no Hoare annotation [2020-07-10 15:09:57,360 WARN L170 areAnnotationChecker]: ldv_list_addEXIT has no Hoare annotation [2020-07-10 15:09:57,360 WARN L170 areAnnotationChecker]: ldv_successful_mallocEXIT has no Hoare annotation [2020-07-10 15:09:57,360 WARN L170 areAnnotationChecker]: ldv_successful_mallocEXIT has no Hoare annotation [2020-07-10 15:09:57,361 WARN L170 areAnnotationChecker]: ldv_successful_mallocEXIT has no Hoare annotation [2020-07-10 15:09:57,361 WARN L170 areAnnotationChecker]: ldv_set_emptyEXIT has no Hoare annotation [2020-07-10 15:09:57,361 WARN L170 areAnnotationChecker]: ldv_check_final_stateEXIT has no Hoare annotation [2020-07-10 15:09:57,361 WARN L170 areAnnotationChecker]: mutex_unlockFINAL has no Hoare annotation [2020-07-10 15:09:57,361 WARN L170 areAnnotationChecker]: L637-1 has no Hoare annotation [2020-07-10 15:09:57,361 WARN L170 areAnnotationChecker]: L658-3 has no Hoare annotation [2020-07-10 15:09:57,361 WARN L170 areAnnotationChecker]: L658-3 has no Hoare annotation [2020-07-10 15:09:57,361 WARN L170 areAnnotationChecker]: L658-5 has no Hoare annotation [2020-07-10 15:09:57,361 WARN L170 areAnnotationChecker]: L658-5 has no Hoare annotation [2020-07-10 15:09:57,362 WARN L170 areAnnotationChecker]: L673 has no Hoare annotation [2020-07-10 15:09:57,362 WARN L170 areAnnotationChecker]: L673 has no Hoare annotation [2020-07-10 15:09:57,362 WARN L170 areAnnotationChecker]: L627-1 has no Hoare annotation [2020-07-10 15:09:57,362 WARN L170 areAnnotationChecker]: ldv_set_addEXIT has no Hoare annotation [2020-07-10 15:09:57,362 WARN L170 areAnnotationChecker]: fooFINAL has no Hoare annotation [2020-07-10 15:09:57,362 WARN L170 areAnnotationChecker]: mutex_unlockEXIT has no Hoare annotation [2020-07-10 15:09:57,362 WARN L170 areAnnotationChecker]: mutex_unlockEXIT has no Hoare annotation [2020-07-10 15:09:57,362 WARN L170 areAnnotationChecker]: mutex_lockFINAL has no Hoare annotation [2020-07-10 15:09:57,362 WARN L170 areAnnotationChecker]: L673-1 has no Hoare annotation [2020-07-10 15:09:57,362 WARN L170 areAnnotationChecker]: L673-1 has no Hoare annotation [2020-07-10 15:09:57,363 WARN L170 areAnnotationChecker]: L629 has no Hoare annotation [2020-07-10 15:09:57,363 WARN L170 areAnnotationChecker]: L629 has no Hoare annotation [2020-07-10 15:09:57,363 WARN L170 areAnnotationChecker]: fooEXIT has no Hoare annotation [2020-07-10 15:09:57,363 WARN L170 areAnnotationChecker]: L675 has no Hoare annotation [2020-07-10 15:09:57,363 WARN L170 areAnnotationChecker]: L675 has no Hoare annotation [2020-07-10 15:09:57,363 WARN L170 areAnnotationChecker]: L676 has no Hoare annotation [2020-07-10 15:09:57,364 WARN L170 areAnnotationChecker]: L676 has no Hoare annotation [2020-07-10 15:09:57,364 WARN L170 areAnnotationChecker]: mutex_lockEXIT has no Hoare annotation [2020-07-10 15:09:57,364 WARN L170 areAnnotationChecker]: mutex_lockEXIT has no Hoare annotation [2020-07-10 15:09:57,364 WARN L170 areAnnotationChecker]: L674 has no Hoare annotation [2020-07-10 15:09:57,365 WARN L170 areAnnotationChecker]: L674 has no Hoare annotation [2020-07-10 15:09:57,365 INFO L163 areAnnotationChecker]: CFG has 0 edges. 0 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2020-07-10 15:09:57,369 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 10.07 03:09:57 BoogieIcfgContainer [2020-07-10 15:09:57,369 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2020-07-10 15:09:57,372 INFO L168 Benchmark]: Toolchain (without parser) took 35522.65 ms. Allocated memory was 146.3 MB in the beginning and 548.4 MB in the end (delta: 402.1 MB). Free memory was 101.3 MB in the beginning and 461.8 MB in the end (delta: -360.5 MB). Peak memory consumption was 41.7 MB. Max. memory is 7.1 GB. [2020-07-10 15:09:57,372 INFO L168 Benchmark]: CDTParser took 0.48 ms. Allocated memory is still 146.3 MB. Free memory was 121.3 MB in the beginning and 121.0 MB in the end (delta: 209.8 kB). Peak memory consumption was 209.8 kB. Max. memory is 7.1 GB. [2020-07-10 15:09:57,373 INFO L168 Benchmark]: CACSL2BoogieTranslator took 722.04 ms. Allocated memory was 146.3 MB in the beginning and 205.0 MB in the end (delta: 58.7 MB). Free memory was 101.1 MB in the beginning and 164.9 MB in the end (delta: -63.8 MB). Peak memory consumption was 21.5 MB. Max. memory is 7.1 GB. [2020-07-10 15:09:57,373 INFO L168 Benchmark]: Boogie Preprocessor took 106.88 ms. Allocated memory is still 205.0 MB. Free memory was 164.9 MB in the beginning and 159.8 MB in the end (delta: 5.2 MB). Peak memory consumption was 5.2 MB. Max. memory is 7.1 GB. [2020-07-10 15:09:57,374 INFO L168 Benchmark]: RCFGBuilder took 1002.90 ms. Allocated memory was 205.0 MB in the beginning and 234.9 MB in the end (delta: 29.9 MB). Free memory was 159.8 MB in the beginning and 186.7 MB in the end (delta: -27.0 MB). Peak memory consumption was 72.1 MB. Max. memory is 7.1 GB. [2020-07-10 15:09:57,374 INFO L168 Benchmark]: TraceAbstraction took 33683.17 ms. Allocated memory was 234.9 MB in the beginning and 548.4 MB in the end (delta: 313.5 MB). Free memory was 186.7 MB in the beginning and 461.8 MB in the end (delta: -275.0 MB). Peak memory consumption was 38.5 MB. Max. memory is 7.1 GB. [2020-07-10 15:09:57,377 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.48 ms. Allocated memory is still 146.3 MB. Free memory was 121.3 MB in the beginning and 121.0 MB in the end (delta: 209.8 kB). Peak memory consumption was 209.8 kB. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 722.04 ms. Allocated memory was 146.3 MB in the beginning and 205.0 MB in the end (delta: 58.7 MB). Free memory was 101.1 MB in the beginning and 164.9 MB in the end (delta: -63.8 MB). Peak memory consumption was 21.5 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 106.88 ms. Allocated memory is still 205.0 MB. Free memory was 164.9 MB in the beginning and 159.8 MB in the end (delta: 5.2 MB). Peak memory consumption was 5.2 MB. Max. memory is 7.1 GB. * RCFGBuilder took 1002.90 ms. Allocated memory was 205.0 MB in the beginning and 234.9 MB in the end (delta: 29.9 MB). Free memory was 159.8 MB in the beginning and 186.7 MB in the end (delta: -27.0 MB). Peak memory consumption was 72.1 MB. Max. memory is 7.1 GB. * TraceAbstraction took 33683.17 ms. Allocated memory was 234.9 MB in the beginning and 548.4 MB in the end (delta: 313.5 MB). Free memory was 186.7 MB in the beginning and 461.8 MB in the end (delta: -275.0 MB). Peak memory consumption was 38.5 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: IntegerLiteral 15 could not be translated for associated CType STRUCT~~ldv_list_head?next~*ldv_list_head?prev~*ldv_list_head# - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: IntegerLiteral 14 could not be translated for associated CType STRUCT~~ldv_list_head?next~*ldv_list_head?prev~*ldv_list_head# * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - CounterExampleResult [Line: 658]: a call of __VERIFIER_error() is reachable a call of __VERIFIER_error() is reachable We found a FailurePath: [L654] struct ldv_list_head mutexes = { &(mutexes), &(mutexes) }; VAL [\old(mutexes)=null, \old(mutexes)=null, mutexes={2:0}] [L681] CALL foo() VAL [mutexes={2:0}] [L670] FCALL ldv_initialize() VAL [mutexes={2:0}] [L671] CALL, EXPR ldv_successful_malloc(sizeof(struct mutex)) VAL [\old(size)=8, mutexes={2:0}] [L565] void *ptr = malloc(size); VAL [\old(size)=8, malloc(size)={-1:0}, mutexes={2:0}, ptr={-1:0}, size=8] [L566] CALL assume_abort_if_not(ptr!=0) VAL [\old(cond)=1, mutexes={2:0}] [L554] COND FALSE !(!cond) VAL [\old(cond)=1, cond=1, mutexes={2:0}] [L566] RET assume_abort_if_not(ptr!=0) VAL [\old(size)=8, malloc(size)={-1:0}, mutexes={2:0}, ptr={-1:0}, size=8] [L567] return ptr; VAL [\old(size)=8, \result={-1:0}, malloc(size)={-1:0}, mutexes={2:0}, ptr={-1:0}, size=8] [L671] RET, EXPR ldv_successful_malloc(sizeof(struct mutex)) VAL [ldv_successful_malloc(sizeof(struct mutex))={-1:0}, mutexes={2:0}] [L671] struct mutex *m1 = ldv_successful_malloc(sizeof(struct mutex)); [L672] CALL, EXPR ldv_successful_malloc(sizeof(struct mutex)) VAL [\old(size)=8, mutexes={2:0}] [L565] void *ptr = malloc(size); VAL [\old(size)=8, malloc(size)={-2:0}, mutexes={2:0}, ptr={-2:0}, size=8] [L566] CALL assume_abort_if_not(ptr!=0) VAL [\old(cond)=1, mutexes={2:0}] [L554] COND FALSE !(!cond) VAL [\old(cond)=1, cond=1, mutexes={2:0}] [L566] RET assume_abort_if_not(ptr!=0) VAL [\old(size)=8, malloc(size)={-2:0}, mutexes={2:0}, ptr={-2:0}, size=8] [L567] return ptr; VAL [\old(size)=8, \result={-2:0}, malloc(size)={-2:0}, mutexes={2:0}, ptr={-2:0}, size=8] [L672] RET, EXPR ldv_successful_malloc(sizeof(struct mutex)) VAL [ldv_successful_malloc(sizeof(struct mutex))={-2:0}, m1={-1:0}, mutexes={2:0}] [L672] struct mutex *m2 = ldv_successful_malloc(sizeof(struct mutex)); [L673] CALL mutex_lock(m1) VAL [m={-1:0}, mutexes={2:0}] [L658] CALL ldv_is_in_set(m, &mutexes) VAL [e={-1:0}, mutexes={2:0}, s={2:0}] [L643] struct ldv_list_element *m; [L644] EXPR (s)->next [L644] const typeof( ((typeof(*m) *)0)->list ) *__mptr = ((s)->next); [L644] m = ({ const typeof( ((typeof(*m) *)0)->list ) *__mptr = ((s)->next); (typeof(*m) *)( (char *)__mptr - ((size_t) &((typeof(*m) *)0)->list) );}) VAL [__mptr={2:0}, e={-1:0}, e={-1:0}, m={2:-4}, mutexes={2:0}, s={2:0}, s={2:0}] [L644] COND FALSE !(&m->list != (s)) VAL [__mptr={2:0}, e={-1:0}, e={-1:0}, m={2:-4}, mutexes={2:0}, s={2:0}, s={2:0}] [L649] return 0; VAL [\result=0, __mptr={2:0}, e={-1:0}, e={-1:0}, m={2:-4}, mutexes={2:0}, s={2:0}, s={2:0}] [L658] RET ldv_is_in_set(m, &mutexes) VAL [ldv_is_in_set(m, &mutexes)=0, m={-1:0}, m={-1:0}, mutexes={2:0}] [L658] COND FALSE !(ldv_is_in_set(m, &mutexes)) [L659] CALL ldv_set_add(m, &mutexes) VAL [mutexes={2:0}, new={-1:0}, s={2:0}] [L625] CALL, EXPR ldv_is_in_set(new, s) VAL [e={-1:0}, mutexes={2:0}, s={2:0}] [L643] struct ldv_list_element *m; [L644] EXPR (s)->next [L644] const typeof( ((typeof(*m) *)0)->list ) *__mptr = ((s)->next); [L644] m = ({ const typeof( ((typeof(*m) *)0)->list ) *__mptr = ((s)->next); (typeof(*m) *)( (char *)__mptr - ((size_t) &((typeof(*m) *)0)->list) );}) VAL [__mptr={2:0}, e={-1:0}, e={-1:0}, m={2:-4}, mutexes={2:0}, s={2:0}, s={2:0}] [L644] COND FALSE !(&m->list != (s)) VAL [__mptr={2:0}, e={-1:0}, e={-1:0}, m={2:-4}, mutexes={2:0}, s={2:0}, s={2:0}] [L649] return 0; VAL [\result=0, __mptr={2:0}, e={-1:0}, e={-1:0}, m={2:-4}, mutexes={2:0}, s={2:0}, s={2:0}] [L625] RET, EXPR ldv_is_in_set(new, s) VAL [ldv_is_in_set(new, s)=0, mutexes={2:0}, new={-1:0}, new={-1:0}, s={2:0}, s={2:0}] [L625] COND TRUE !ldv_is_in_set(new, s) [L626] struct ldv_list_element *le; VAL [mutexes={2:0}, new={-1:0}, new={-1:0}, s={2:0}, s={2:0}] [L627] CALL, EXPR ldv_successful_malloc(sizeof(struct ldv_list_element)) VAL [\old(size)=12, mutexes={2:0}] [L565] void *ptr = malloc(size); VAL [\old(size)=12, malloc(size)={-3:0}, mutexes={2:0}, ptr={-3:0}, size=12] [L566] CALL assume_abort_if_not(ptr!=0) VAL [\old(cond)=1, mutexes={2:0}] [L554] COND FALSE !(!cond) VAL [\old(cond)=1, cond=1, mutexes={2:0}] [L566] RET assume_abort_if_not(ptr!=0) VAL [\old(size)=12, malloc(size)={-3:0}, mutexes={2:0}, ptr={-3:0}, size=12] [L567] return ptr; VAL [\old(size)=12, \result={-3:0}, malloc(size)={-3:0}, mutexes={2:0}, ptr={-3:0}, size=12] [L627] RET, EXPR ldv_successful_malloc(sizeof(struct ldv_list_element)) VAL [ldv_successful_malloc(sizeof(struct ldv_list_element))={-3:0}, mutexes={2:0}, new={-1:0}, new={-1:0}, s={2:0}, s={2:0}] [L627] le = (struct ldv_list_element*)ldv_successful_malloc(sizeof(struct ldv_list_element)) [L628] le->e = new VAL [le={-3:0}, mutexes={2:0}, new={-1:0}, new={-1:0}, s={2:0}, s={2:0}] [L629] CALL ldv_list_add(&le->list, s) VAL [head={2:0}, mutexes={2:0}, new={-3:4}] [L597] EXPR head->next VAL [head={2:0}, head={2:0}, head->next={2:0}, mutexes={2:0}, new={-3:4}, new={-3:4}] [L597] CALL __ldv_list_add(new, head, head->next) VAL [mutexes={2:0}, new={-3:4}, next={2:0}, prev={2:0}] [L585] next->prev = new [L586] new->next = next [L587] new->prev = prev [L588] prev->next = new VAL [mutexes={2:0}, new={-3:4}, new={-3:4}, next={2:0}, next={2:0}, prev={2:0}, prev={2:0}] [L597] RET __ldv_list_add(new, head, head->next) VAL [head={2:0}, head={2:0}, head->next={2:0}, mutexes={2:0}, new={-3:4}, new={-3:4}] [L629] RET ldv_list_add(&le->list, s) VAL [le={-3:0}, mutexes={2:0}, new={-1:0}, new={-1:0}, s={2:0}, s={2:0}] [L659] RET ldv_set_add(m, &mutexes) VAL [m={-1:0}, m={-1:0}, mutexes={2:0}] [L673] RET mutex_lock(m1) VAL [m1={-1:0}, m2={-2:0}, mutexes={2:0}] [L674] CALL mutex_lock(m1) VAL [m={-1:0}, mutexes={2:0}] [L658] CALL ldv_is_in_set(m, &mutexes) VAL [e={-1:0}, mutexes={2:0}, s={2:0}] [L643] struct ldv_list_element *m; [L644] EXPR (s)->next [L644] const typeof( ((typeof(*m) *)0)->list ) *__mptr = ((s)->next); [L644] m = ({ const typeof( ((typeof(*m) *)0)->list ) *__mptr = ((s)->next); (typeof(*m) *)( (char *)__mptr - ((size_t) &((typeof(*m) *)0)->list) );}) VAL [__mptr={-3:4}, e={-1:0}, e={-1:0}, m={-3:0}, mutexes={2:0}, s={2:0}, s={2:0}] [L644] COND TRUE &m->list != (s) [L645] EXPR m->e VAL [__mptr={-3:4}, e={-1:0}, e={-1:0}, m={-3:0}, m->e={-1:0}, mutexes={2:0}, s={2:0}, s={2:0}] [L645] COND TRUE m->e == e [L646] return 1; VAL [\result=1, __mptr={-3:4}, e={-1:0}, e={-1:0}, m={-3:0}, mutexes={2:0}, s={2:0}, s={2:0}] [L658] RET ldv_is_in_set(m, &mutexes) VAL [ldv_is_in_set(m, &mutexes)=1, m={-1:0}, m={-1:0}, mutexes={2:0}] [L658] COND TRUE ldv_is_in_set(m, &mutexes) [L658] __VERIFIER_error() VAL [m={-1:0}, m={-1:0}, mutexes={2:0}] - StatisticsResult: Ultimate Automizer benchmark data CFG has 25 procedures, 129 locations, 3 error locations. Started 1 CEGAR loops. VerificationResult: UNSAFE, OverallTime: 33.4s, OverallIterations: 6, TraceHistogramMax: 5, AutomataDifference: 27.3s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 0.0s, InitialAbstractionConstructionTime: 0.0s, HoareTripleCheckerStatistics: 541 SDtfs, 1179 SDslu, 479 SDs, 0 SdLazy, 3546 SolverSat, 638 SolverUnsat, 2 SolverUnknown, 0 SolverNotchecked, 9.2s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 383 GetRequests, 289 SyntacticMatches, 1 SemanticMatches, 93 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1253 ImplicationChecksByTransitivity, 4.0s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=211occurred in iteration=5, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s DumpTime, AutomataMinimizationStatistics: 1.1s AutomataMinimizationTime, 5 MinimizatonAttempts, 106 StatesRemovedByMinimization, 4 NontrivialMinimizations, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TRACE_CHECK: 0.0s SsaConstructionTime, 0.2s SatisfiabilityAnalysisTime, 3.2s InterpolantComputationTime, 572 NumberOfCodeBlocks, 572 NumberOfCodeBlocksAsserted, 8 NumberOfCheckSat, 479 ConstructedInterpolants, 4 QuantifiedInterpolants, 175132 SizeOfPredicates, 27 NumberOfNonLiveVariables, 908 ConjunctsInSsa, 76 ConjunctsInUnsatCore, 7 InterpolantComputations, 4 PerfectInterpolantSequences, 242/303 InterpolantCoveringCapability, INVARIANT_SYNTHESIS: No data available, INTERPOLANT_CONSOLIDATION: No data available, ABSTRACT_INTERPRETATION: No data available, PDR: No data available, ACCELERATED_INTERPOLATION: No data available, SIFA: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be incorrect! Received shutdown request...