java -ea -Xmx8000000000 -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc ../../../trunk/examples/toolchains/AutomizerC.xml -s ../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf -i ../../../trunk/examples/svcomp/list-simple/dll2c_append_equal_true-unreach-call_true-valid-memsafety.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-18e5b2d-m [2018-11-18 23:49:18,828 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-18 23:49:18,830 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-18 23:49:18,842 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-18 23:49:18,842 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-18 23:49:18,843 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-18 23:49:18,845 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-18 23:49:18,847 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-18 23:49:18,849 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-18 23:49:18,850 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-18 23:49:18,851 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-18 23:49:18,851 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-18 23:49:18,852 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-18 23:49:18,853 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-18 23:49:18,854 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-18 23:49:18,855 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-18 23:49:18,856 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-18 23:49:18,858 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-18 23:49:18,861 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-18 23:49:18,862 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-18 23:49:18,863 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-18 23:49:18,865 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-18 23:49:18,869 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-18 23:49:18,870 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-18 23:49:18,870 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-18 23:49:18,871 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-18 23:49:18,875 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-18 23:49:18,876 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-18 23:49:18,881 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-18 23:49:18,882 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-18 23:49:18,882 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-18 23:49:18,885 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-18 23:49:18,885 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-18 23:49:18,886 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-18 23:49:18,887 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-18 23:49:18,887 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-18 23:49:18,891 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf [2018-11-18 23:49:18,917 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-18 23:49:18,917 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-18 23:49:18,921 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-18 23:49:18,922 INFO L133 SettingsManager]: * to procedures, called more than once=true [2018-11-18 23:49:18,922 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-18 23:49:18,922 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-18 23:49:18,922 INFO L133 SettingsManager]: * Use SBE=true [2018-11-18 23:49:18,925 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-18 23:49:18,925 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-18 23:49:18,925 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-18 23:49:18,925 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-18 23:49:18,926 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-18 23:49:18,926 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-18 23:49:18,926 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-18 23:49:18,926 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-18 23:49:18,926 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-18 23:49:18,927 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-18 23:49:18,927 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-18 23:49:18,927 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-18 23:49:18,927 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-18 23:49:18,927 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-18 23:49:18,929 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-18 23:49:18,929 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-18 23:49:18,929 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-18 23:49:18,929 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-18 23:49:18,930 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-18 23:49:18,930 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-18 23:49:18,930 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-18 23:49:18,930 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-18 23:49:18,930 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-18 23:49:18,931 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-18 23:49:18,985 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-18 23:49:19,001 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-18 23:49:19,005 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-18 23:49:19,007 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-18 23:49:19,007 INFO L276 PluginConnector]: CDTParser initialized [2018-11-18 23:49:19,008 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/list-simple/dll2c_append_equal_true-unreach-call_true-valid-memsafety.i [2018-11-18 23:49:19,074 INFO L221 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/820c9b9a9/bc719ea674af452a98a6d4436c9fe860/FLAGd24299acf [2018-11-18 23:49:19,572 INFO L307 CDTParser]: Found 1 translation units. [2018-11-18 23:49:19,572 INFO L161 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/list-simple/dll2c_append_equal_true-unreach-call_true-valid-memsafety.i [2018-11-18 23:49:19,585 INFO L355 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/820c9b9a9/bc719ea674af452a98a6d4436c9fe860/FLAGd24299acf [2018-11-18 23:49:19,865 INFO L363 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/820c9b9a9/bc719ea674af452a98a6d4436c9fe860 [2018-11-18 23:49:19,874 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-18 23:49:19,875 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2018-11-18 23:49:19,876 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-18 23:49:19,876 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-18 23:49:19,880 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-18 23:49:19,881 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 18.11 11:49:19" (1/1) ... [2018-11-18 23:49:19,884 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@245ed096 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.11 11:49:19, skipping insertion in model container [2018-11-18 23:49:19,884 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 18.11 11:49:19" (1/1) ... [2018-11-18 23:49:19,895 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-18 23:49:19,949 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-18 23:49:20,374 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-18 23:49:20,387 INFO L191 MainTranslator]: Completed pre-run [2018-11-18 23:49:20,474 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-18 23:49:20,640 INFO L195 MainTranslator]: Completed translation [2018-11-18 23:49:20,641 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.11 11:49:20 WrapperNode [2018-11-18 23:49:20,641 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-18 23:49:20,642 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-18 23:49:20,642 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-18 23:49:20,642 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-18 23:49:20,656 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.11 11:49:20" (1/1) ... [2018-11-18 23:49:20,656 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.11 11:49:20" (1/1) ... [2018-11-18 23:49:20,682 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.11 11:49:20" (1/1) ... [2018-11-18 23:49:20,683 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.11 11:49:20" (1/1) ... [2018-11-18 23:49:20,733 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.11 11:49:20" (1/1) ... [2018-11-18 23:49:20,746 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.11 11:49:20" (1/1) ... [2018-11-18 23:49:20,752 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.11 11:49:20" (1/1) ... [2018-11-18 23:49:20,764 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-18 23:49:20,764 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-18 23:49:20,764 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-18 23:49:20,765 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-18 23:49:20,765 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.11 11:49:20" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-18 23:49:20,836 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-18 23:49:20,836 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-18 23:49:20,836 INFO L138 BoogieDeclarations]: Found implementation of procedure __bswap_32 [2018-11-18 23:49:20,836 INFO L138 BoogieDeclarations]: Found implementation of procedure __bswap_64 [2018-11-18 23:49:20,836 INFO L138 BoogieDeclarations]: Found implementation of procedure exit [2018-11-18 23:49:20,837 INFO L138 BoogieDeclarations]: Found implementation of procedure node_create [2018-11-18 23:49:20,837 INFO L138 BoogieDeclarations]: Found implementation of procedure dll_circular_create [2018-11-18 23:49:20,837 INFO L138 BoogieDeclarations]: Found implementation of procedure dll_circular_destroy [2018-11-18 23:49:20,837 INFO L138 BoogieDeclarations]: Found implementation of procedure dll_circular_append [2018-11-18 23:49:20,837 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-18 23:49:20,837 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_error [2018-11-18 23:49:20,838 INFO L130 BoogieDeclarations]: Found specification of procedure __bswap_32 [2018-11-18 23:49:20,838 INFO L130 BoogieDeclarations]: Found specification of procedure __bswap_64 [2018-11-18 23:49:20,838 INFO L130 BoogieDeclarations]: Found specification of procedure __ctype_get_mb_cur_max [2018-11-18 23:49:20,838 INFO L130 BoogieDeclarations]: Found specification of procedure atof [2018-11-18 23:49:20,838 INFO L130 BoogieDeclarations]: Found specification of procedure atoi [2018-11-18 23:49:20,839 INFO L130 BoogieDeclarations]: Found specification of procedure atol [2018-11-18 23:49:20,839 INFO L130 BoogieDeclarations]: Found specification of procedure atoll [2018-11-18 23:49:20,839 INFO L130 BoogieDeclarations]: Found specification of procedure strtod [2018-11-18 23:49:20,839 INFO L130 BoogieDeclarations]: Found specification of procedure strtof [2018-11-18 23:49:20,839 INFO L130 BoogieDeclarations]: Found specification of procedure strtold [2018-11-18 23:49:20,839 INFO L130 BoogieDeclarations]: Found specification of procedure strtol [2018-11-18 23:49:20,840 INFO L130 BoogieDeclarations]: Found specification of procedure strtoul [2018-11-18 23:49:20,840 INFO L130 BoogieDeclarations]: Found specification of procedure strtoq [2018-11-18 23:49:20,840 INFO L130 BoogieDeclarations]: Found specification of procedure strtouq [2018-11-18 23:49:20,840 INFO L130 BoogieDeclarations]: Found specification of procedure strtoll [2018-11-18 23:49:20,840 INFO L130 BoogieDeclarations]: Found specification of procedure strtoull [2018-11-18 23:49:20,840 INFO L130 BoogieDeclarations]: Found specification of procedure l64a [2018-11-18 23:49:20,840 INFO L130 BoogieDeclarations]: Found specification of procedure a64l [2018-11-18 23:49:20,840 INFO L130 BoogieDeclarations]: Found specification of procedure select [2018-11-18 23:49:20,841 INFO L130 BoogieDeclarations]: Found specification of procedure pselect [2018-11-18 23:49:20,841 INFO L130 BoogieDeclarations]: Found specification of procedure gnu_dev_major [2018-11-18 23:49:20,841 INFO L130 BoogieDeclarations]: Found specification of procedure gnu_dev_minor [2018-11-18 23:49:20,841 INFO L130 BoogieDeclarations]: Found specification of procedure gnu_dev_makedev [2018-11-18 23:49:20,841 INFO L130 BoogieDeclarations]: Found specification of procedure random [2018-11-18 23:49:20,841 INFO L130 BoogieDeclarations]: Found specification of procedure srandom [2018-11-18 23:49:20,841 INFO L130 BoogieDeclarations]: Found specification of procedure initstate [2018-11-18 23:49:20,842 INFO L130 BoogieDeclarations]: Found specification of procedure setstate [2018-11-18 23:49:20,842 INFO L130 BoogieDeclarations]: Found specification of procedure random_r [2018-11-18 23:49:20,842 INFO L130 BoogieDeclarations]: Found specification of procedure srandom_r [2018-11-18 23:49:20,842 INFO L130 BoogieDeclarations]: Found specification of procedure initstate_r [2018-11-18 23:49:20,842 INFO L130 BoogieDeclarations]: Found specification of procedure setstate_r [2018-11-18 23:49:20,842 INFO L130 BoogieDeclarations]: Found specification of procedure rand [2018-11-18 23:49:20,842 INFO L130 BoogieDeclarations]: Found specification of procedure srand [2018-11-18 23:49:20,843 INFO L130 BoogieDeclarations]: Found specification of procedure rand_r [2018-11-18 23:49:20,843 INFO L130 BoogieDeclarations]: Found specification of procedure drand48 [2018-11-18 23:49:20,843 INFO L130 BoogieDeclarations]: Found specification of procedure erand48 [2018-11-18 23:49:20,843 INFO L130 BoogieDeclarations]: Found specification of procedure lrand48 [2018-11-18 23:49:20,843 INFO L130 BoogieDeclarations]: Found specification of procedure nrand48 [2018-11-18 23:49:20,843 INFO L130 BoogieDeclarations]: Found specification of procedure mrand48 [2018-11-18 23:49:20,844 INFO L130 BoogieDeclarations]: Found specification of procedure jrand48 [2018-11-18 23:49:20,844 INFO L130 BoogieDeclarations]: Found specification of procedure srand48 [2018-11-18 23:49:20,844 INFO L130 BoogieDeclarations]: Found specification of procedure seed48 [2018-11-18 23:49:20,844 INFO L130 BoogieDeclarations]: Found specification of procedure lcong48 [2018-11-18 23:49:20,844 INFO L130 BoogieDeclarations]: Found specification of procedure drand48_r [2018-11-18 23:49:20,844 INFO L130 BoogieDeclarations]: Found specification of procedure erand48_r [2018-11-18 23:49:20,844 INFO L130 BoogieDeclarations]: Found specification of procedure lrand48_r [2018-11-18 23:49:20,845 INFO L130 BoogieDeclarations]: Found specification of procedure nrand48_r [2018-11-18 23:49:20,845 INFO L130 BoogieDeclarations]: Found specification of procedure mrand48_r [2018-11-18 23:49:20,845 INFO L130 BoogieDeclarations]: Found specification of procedure jrand48_r [2018-11-18 23:49:20,845 INFO L130 BoogieDeclarations]: Found specification of procedure srand48_r [2018-11-18 23:49:20,845 INFO L130 BoogieDeclarations]: Found specification of procedure seed48_r [2018-11-18 23:49:20,845 INFO L130 BoogieDeclarations]: Found specification of procedure lcong48_r [2018-11-18 23:49:20,845 INFO L130 BoogieDeclarations]: Found specification of procedure malloc [2018-11-18 23:49:20,846 INFO L130 BoogieDeclarations]: Found specification of procedure calloc [2018-11-18 23:49:20,846 INFO L130 BoogieDeclarations]: Found specification of procedure realloc [2018-11-18 23:49:20,846 INFO L130 BoogieDeclarations]: Found specification of procedure free [2018-11-18 23:49:20,846 INFO L130 BoogieDeclarations]: Found specification of procedure cfree [2018-11-18 23:49:20,846 INFO L130 BoogieDeclarations]: Found specification of procedure alloca [2018-11-18 23:49:20,846 INFO L130 BoogieDeclarations]: Found specification of procedure valloc [2018-11-18 23:49:20,846 INFO L130 BoogieDeclarations]: Found specification of procedure posix_memalign [2018-11-18 23:49:20,847 INFO L130 BoogieDeclarations]: Found specification of procedure aligned_alloc [2018-11-18 23:49:20,847 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2018-11-18 23:49:20,847 INFO L130 BoogieDeclarations]: Found specification of procedure atexit [2018-11-18 23:49:20,847 INFO L130 BoogieDeclarations]: Found specification of procedure at_quick_exit [2018-11-18 23:49:20,847 INFO L130 BoogieDeclarations]: Found specification of procedure on_exit [2018-11-18 23:49:20,847 INFO L130 BoogieDeclarations]: Found specification of procedure exit [2018-11-18 23:49:20,848 INFO L130 BoogieDeclarations]: Found specification of procedure quick_exit [2018-11-18 23:49:20,848 INFO L130 BoogieDeclarations]: Found specification of procedure _Exit [2018-11-18 23:49:20,848 INFO L130 BoogieDeclarations]: Found specification of procedure getenv [2018-11-18 23:49:20,848 INFO L130 BoogieDeclarations]: Found specification of procedure putenv [2018-11-18 23:49:20,848 INFO L130 BoogieDeclarations]: Found specification of procedure setenv [2018-11-18 23:49:20,849 INFO L130 BoogieDeclarations]: Found specification of procedure unsetenv [2018-11-18 23:49:20,849 INFO L130 BoogieDeclarations]: Found specification of procedure clearenv [2018-11-18 23:49:20,849 INFO L130 BoogieDeclarations]: Found specification of procedure mktemp [2018-11-18 23:49:20,849 INFO L130 BoogieDeclarations]: Found specification of procedure mkstemp [2018-11-18 23:49:20,849 INFO L130 BoogieDeclarations]: Found specification of procedure mkstemps [2018-11-18 23:49:20,849 INFO L130 BoogieDeclarations]: Found specification of procedure mkdtemp [2018-11-18 23:49:20,850 INFO L130 BoogieDeclarations]: Found specification of procedure system [2018-11-18 23:49:20,850 INFO L130 BoogieDeclarations]: Found specification of procedure realpath [2018-11-18 23:49:20,850 INFO L130 BoogieDeclarations]: Found specification of procedure bsearch [2018-11-18 23:49:20,850 INFO L130 BoogieDeclarations]: Found specification of procedure qsort [2018-11-18 23:49:20,850 INFO L130 BoogieDeclarations]: Found specification of procedure abs [2018-11-18 23:49:20,851 INFO L130 BoogieDeclarations]: Found specification of procedure labs [2018-11-18 23:49:20,851 INFO L130 BoogieDeclarations]: Found specification of procedure llabs [2018-11-18 23:49:20,851 INFO L130 BoogieDeclarations]: Found specification of procedure div [2018-11-18 23:49:20,851 INFO L130 BoogieDeclarations]: Found specification of procedure ldiv [2018-11-18 23:49:20,851 INFO L130 BoogieDeclarations]: Found specification of procedure lldiv [2018-11-18 23:49:20,851 INFO L130 BoogieDeclarations]: Found specification of procedure ecvt [2018-11-18 23:49:20,852 INFO L130 BoogieDeclarations]: Found specification of procedure fcvt [2018-11-18 23:49:20,852 INFO L130 BoogieDeclarations]: Found specification of procedure gcvt [2018-11-18 23:49:20,852 INFO L130 BoogieDeclarations]: Found specification of procedure qecvt [2018-11-18 23:49:20,852 INFO L130 BoogieDeclarations]: Found specification of procedure qfcvt [2018-11-18 23:49:20,852 INFO L130 BoogieDeclarations]: Found specification of procedure qgcvt [2018-11-18 23:49:20,852 INFO L130 BoogieDeclarations]: Found specification of procedure ecvt_r [2018-11-18 23:49:20,853 INFO L130 BoogieDeclarations]: Found specification of procedure fcvt_r [2018-11-18 23:49:20,853 INFO L130 BoogieDeclarations]: Found specification of procedure qecvt_r [2018-11-18 23:49:20,853 INFO L130 BoogieDeclarations]: Found specification of procedure qfcvt_r [2018-11-18 23:49:20,853 INFO L130 BoogieDeclarations]: Found specification of procedure mblen [2018-11-18 23:49:20,853 INFO L130 BoogieDeclarations]: Found specification of procedure mbtowc [2018-11-18 23:49:20,853 INFO L130 BoogieDeclarations]: Found specification of procedure wctomb [2018-11-18 23:49:20,854 INFO L130 BoogieDeclarations]: Found specification of procedure mbstowcs [2018-11-18 23:49:20,854 INFO L130 BoogieDeclarations]: Found specification of procedure wcstombs [2018-11-18 23:49:20,854 INFO L130 BoogieDeclarations]: Found specification of procedure rpmatch [2018-11-18 23:49:20,854 INFO L130 BoogieDeclarations]: Found specification of procedure getsubopt [2018-11-18 23:49:20,854 INFO L130 BoogieDeclarations]: Found specification of procedure getloadavg [2018-11-18 23:49:20,854 INFO L130 BoogieDeclarations]: Found specification of procedure node_create [2018-11-18 23:49:20,855 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-18 23:49:20,855 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2018-11-18 23:49:20,855 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-18 23:49:20,855 INFO L130 BoogieDeclarations]: Found specification of procedure dll_circular_create [2018-11-18 23:49:20,855 INFO L130 BoogieDeclarations]: Found specification of procedure dll_circular_destroy [2018-11-18 23:49:20,855 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2018-11-18 23:49:20,856 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-18 23:49:20,856 INFO L130 BoogieDeclarations]: Found specification of procedure dll_circular_append [2018-11-18 23:49:20,856 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-18 23:49:20,856 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-18 23:49:20,856 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-18 23:49:20,856 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-18 23:49:20,856 INFO L130 BoogieDeclarations]: Found specification of procedure write~unchecked~int [2018-11-18 23:49:22,064 INFO L280 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-18 23:49:22,065 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 18.11 11:49:22 BoogieIcfgContainer [2018-11-18 23:49:22,065 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-18 23:49:22,066 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-18 23:49:22,066 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-18 23:49:22,069 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-18 23:49:22,070 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 18.11 11:49:19" (1/3) ... [2018-11-18 23:49:22,070 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7f939b73 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 18.11 11:49:22, skipping insertion in model container [2018-11-18 23:49:22,071 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.11 11:49:20" (2/3) ... [2018-11-18 23:49:22,071 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7f939b73 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 18.11 11:49:22, skipping insertion in model container [2018-11-18 23:49:22,071 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 18.11 11:49:22" (3/3) ... [2018-11-18 23:49:22,073 INFO L112 eAbstractionObserver]: Analyzing ICFG dll2c_append_equal_true-unreach-call_true-valid-memsafety.i [2018-11-18 23:49:22,081 INFO L136 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-18 23:49:22,089 INFO L148 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-18 23:49:22,105 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-18 23:49:22,134 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-18 23:49:22,135 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-18 23:49:22,135 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-18 23:49:22,136 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-18 23:49:22,136 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-18 23:49:22,136 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-18 23:49:22,136 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-18 23:49:22,136 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-18 23:49:22,136 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-18 23:49:22,155 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states. [2018-11-18 23:49:22,163 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2018-11-18 23:49:22,163 INFO L367 BasicCegarLoop]: Found error trace [2018-11-18 23:49:22,164 INFO L375 BasicCegarLoop]: trace histogram [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] [2018-11-18 23:49:22,166 INFO L423 AbstractCegarLoop]: === Iteration 1 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-18 23:49:22,172 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-18 23:49:22,172 INFO L82 PathProgramCache]: Analyzing trace with hash -75212448, now seen corresponding path program 1 times [2018-11-18 23:49:22,175 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-18 23:49:22,175 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-18 23:49:22,234 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-18 23:49:22,234 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-18 23:49:22,234 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-18 23:49:22,297 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-18 23:49:22,443 INFO L256 TraceCheckUtils]: 0: Hoare triple {59#true} call ULTIMATE.init(); {59#true} is VALID [2018-11-18 23:49:22,447 INFO L273 TraceCheckUtils]: 1: Hoare triple {59#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {59#true} is VALID [2018-11-18 23:49:22,448 INFO L273 TraceCheckUtils]: 2: Hoare triple {59#true} assume true; {59#true} is VALID [2018-11-18 23:49:22,448 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {59#true} {59#true} #131#return; {59#true} is VALID [2018-11-18 23:49:22,449 INFO L256 TraceCheckUtils]: 4: Hoare triple {59#true} call #t~ret21 := main(); {59#true} is VALID [2018-11-18 23:49:22,449 INFO L273 TraceCheckUtils]: 5: Hoare triple {59#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4);call write~$Pointer$(0, 0, ~#s~0.base, ~#s~0.offset, 4); {59#true} is VALID [2018-11-18 23:49:22,450 INFO L256 TraceCheckUtils]: 6: Hoare triple {59#true} call #t~ret14.base, #t~ret14.offset := dll_circular_create(~len~0, ~data~0); {59#true} is VALID [2018-11-18 23:49:22,450 INFO L273 TraceCheckUtils]: 7: Hoare triple {59#true} ~len := #in~len;~data := #in~data; {59#true} is VALID [2018-11-18 23:49:22,450 INFO L256 TraceCheckUtils]: 8: Hoare triple {59#true} call #t~ret3.base, #t~ret3.offset := node_create(~data); {59#true} is VALID [2018-11-18 23:49:22,451 INFO L273 TraceCheckUtils]: 9: Hoare triple {59#true} ~data := #in~data;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(12);~temp~0.base, ~temp~0.offset := #t~malloc2.base, #t~malloc2.offset; {59#true} is VALID [2018-11-18 23:49:22,451 INFO L273 TraceCheckUtils]: 10: Hoare triple {59#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {59#true} is VALID [2018-11-18 23:49:22,452 INFO L273 TraceCheckUtils]: 11: Hoare triple {59#true} call write~$Pointer$(0, 0, ~temp~0.base, ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, 8 + ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {59#true} is VALID [2018-11-18 23:49:22,452 INFO L273 TraceCheckUtils]: 12: Hoare triple {59#true} assume true; {59#true} is VALID [2018-11-18 23:49:22,452 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {59#true} {59#true} #117#return; {59#true} is VALID [2018-11-18 23:49:22,453 INFO L273 TraceCheckUtils]: 14: Hoare triple {59#true} ~head~0.base, ~head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;~last~0.base, ~last~0.offset := ~head~0.base, ~head~0.offset; {59#true} is VALID [2018-11-18 23:49:22,466 INFO L273 TraceCheckUtils]: 15: Hoare triple {59#true} assume !true; {60#false} is VALID [2018-11-18 23:49:22,466 INFO L273 TraceCheckUtils]: 16: Hoare triple {60#false} call write~$Pointer$(~head~0.base, ~head~0.offset, ~last~0.base, ~last~0.offset, 4);call write~$Pointer$(~last~0.base, ~last~0.offset, ~head~0.base, 4 + ~head~0.offset, 4);#res.base, #res.offset := ~head~0.base, ~head~0.offset; {60#false} is VALID [2018-11-18 23:49:22,467 INFO L273 TraceCheckUtils]: 17: Hoare triple {60#false} assume true; {60#false} is VALID [2018-11-18 23:49:22,467 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {60#false} {59#true} #123#return; {60#false} is VALID [2018-11-18 23:49:22,468 INFO L273 TraceCheckUtils]: 19: Hoare triple {60#false} call write~$Pointer$(#t~ret14.base, #t~ret14.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret14.base, #t~ret14.offset; {60#false} is VALID [2018-11-18 23:49:22,468 INFO L256 TraceCheckUtils]: 20: Hoare triple {60#false} call dll_circular_append(~#s~0.base, ~#s~0.offset, ~data~0); {59#true} is VALID [2018-11-18 23:49:22,468 INFO L273 TraceCheckUtils]: 21: Hoare triple {59#true} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {59#true} is VALID [2018-11-18 23:49:22,469 INFO L256 TraceCheckUtils]: 22: Hoare triple {59#true} call #t~ret8.base, #t~ret8.offset := node_create(~data); {59#true} is VALID [2018-11-18 23:49:22,469 INFO L273 TraceCheckUtils]: 23: Hoare triple {59#true} ~data := #in~data;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(12);~temp~0.base, ~temp~0.offset := #t~malloc2.base, #t~malloc2.offset; {59#true} is VALID [2018-11-18 23:49:22,469 INFO L273 TraceCheckUtils]: 24: Hoare triple {59#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {59#true} is VALID [2018-11-18 23:49:22,470 INFO L273 TraceCheckUtils]: 25: Hoare triple {59#true} call write~$Pointer$(0, 0, ~temp~0.base, ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, 8 + ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {59#true} is VALID [2018-11-18 23:49:22,470 INFO L273 TraceCheckUtils]: 26: Hoare triple {59#true} assume true; {59#true} is VALID [2018-11-18 23:49:22,470 INFO L268 TraceCheckUtils]: 27: Hoare quadruple {59#true} {59#true} #129#return; {59#true} is VALID [2018-11-18 23:49:22,471 INFO L273 TraceCheckUtils]: 28: Hoare triple {59#true} ~new_last~0.base, ~new_last~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4); {59#true} is VALID [2018-11-18 23:49:22,471 INFO L273 TraceCheckUtils]: 29: Hoare triple {59#true} assume 0 == #t~mem9.base && 0 == #t~mem9.offset;havoc #t~mem9.base, #t~mem9.offset;call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~new_last~0.base, 4 + ~new_last~0.offset, 4);call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~new_last~0.base, ~new_last~0.offset, 4);call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~head.base, ~head.offset, 4); {59#true} is VALID [2018-11-18 23:49:22,472 INFO L273 TraceCheckUtils]: 30: Hoare triple {59#true} assume true; {59#true} is VALID [2018-11-18 23:49:22,472 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {59#true} {60#false} #125#return; {60#false} is VALID [2018-11-18 23:49:22,472 INFO L273 TraceCheckUtils]: 32: Hoare triple {60#false} call #t~mem15.base, #t~mem15.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem15.base, #t~mem15.offset;havoc #t~mem15.base, #t~mem15.offset;~count~0 := 0; {60#false} is VALID [2018-11-18 23:49:22,473 INFO L273 TraceCheckUtils]: 33: Hoare triple {60#false} assume !true; {60#false} is VALID [2018-11-18 23:49:22,473 INFO L273 TraceCheckUtils]: 34: Hoare triple {60#false} assume ~count~0 != 1 + ~len~0; {60#false} is VALID [2018-11-18 23:49:22,473 INFO L273 TraceCheckUtils]: 35: Hoare triple {60#false} assume !false; {60#false} is VALID [2018-11-18 23:49:22,481 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-18 23:49:22,486 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-18 23:49:22,486 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-18 23:49:22,494 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 36 [2018-11-18 23:49:22,497 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-18 23:49:22,501 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2018-11-18 23:49:22,879 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 32 edges. 32 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-18 23:49:22,880 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-18 23:49:22,888 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-18 23:49:22,889 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-18 23:49:22,891 INFO L87 Difference]: Start difference. First operand 56 states. Second operand 2 states. [2018-11-18 23:49:23,139 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-18 23:49:23,140 INFO L93 Difference]: Finished difference Result 96 states and 116 transitions. [2018-11-18 23:49:23,140 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-18 23:49:23,140 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 36 [2018-11-18 23:49:23,141 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-18 23:49:23,142 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-18 23:49:23,155 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 116 transitions. [2018-11-18 23:49:23,156 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-18 23:49:23,163 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 116 transitions. [2018-11-18 23:49:23,163 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 116 transitions. [2018-11-18 23:49:23,582 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 116 edges. 116 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-18 23:49:23,595 INFO L225 Difference]: With dead ends: 96 [2018-11-18 23:49:23,595 INFO L226 Difference]: Without dead ends: 40 [2018-11-18 23:49:23,599 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 2 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-18 23:49:23,614 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2018-11-18 23:49:23,676 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 40. [2018-11-18 23:49:23,677 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-18 23:49:23,677 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 40 states. [2018-11-18 23:49:23,678 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 40 states. [2018-11-18 23:49:23,678 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 40 states. [2018-11-18 23:49:23,684 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-18 23:49:23,685 INFO L93 Difference]: Finished difference Result 40 states and 46 transitions. [2018-11-18 23:49:23,685 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 46 transitions. [2018-11-18 23:49:23,686 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-18 23:49:23,686 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-18 23:49:23,686 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 40 states. [2018-11-18 23:49:23,686 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 40 states. [2018-11-18 23:49:23,692 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-18 23:49:23,692 INFO L93 Difference]: Finished difference Result 40 states and 46 transitions. [2018-11-18 23:49:23,692 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 46 transitions. [2018-11-18 23:49:23,693 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-18 23:49:23,693 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-18 23:49:23,694 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-18 23:49:23,694 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-18 23:49:23,694 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2018-11-18 23:49:23,699 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 46 transitions. [2018-11-18 23:49:23,701 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 46 transitions. Word has length 36 [2018-11-18 23:49:23,702 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-18 23:49:23,703 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 46 transitions. [2018-11-18 23:49:23,703 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-18 23:49:23,703 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 46 transitions. [2018-11-18 23:49:23,704 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2018-11-18 23:49:23,705 INFO L367 BasicCegarLoop]: Found error trace [2018-11-18 23:49:23,705 INFO L375 BasicCegarLoop]: trace histogram [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] [2018-11-18 23:49:23,706 INFO L423 AbstractCegarLoop]: === Iteration 2 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-18 23:49:23,706 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-18 23:49:23,706 INFO L82 PathProgramCache]: Analyzing trace with hash -1754005730, now seen corresponding path program 1 times [2018-11-18 23:49:23,706 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-18 23:49:23,706 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-18 23:49:23,713 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-18 23:49:23,713 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-18 23:49:23,713 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-18 23:49:23,780 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-18 23:49:23,936 INFO L256 TraceCheckUtils]: 0: Hoare triple {325#true} call ULTIMATE.init(); {325#true} is VALID [2018-11-18 23:49:23,936 INFO L273 TraceCheckUtils]: 1: Hoare triple {325#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {325#true} is VALID [2018-11-18 23:49:23,937 INFO L273 TraceCheckUtils]: 2: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-18 23:49:23,937 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {325#true} {325#true} #131#return; {325#true} is VALID [2018-11-18 23:49:23,937 INFO L256 TraceCheckUtils]: 4: Hoare triple {325#true} call #t~ret21 := main(); {325#true} is VALID [2018-11-18 23:49:23,945 INFO L273 TraceCheckUtils]: 5: Hoare triple {325#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4);call write~$Pointer$(0, 0, ~#s~0.base, ~#s~0.offset, 4); {327#(<= 2 main_~len~0)} is VALID [2018-11-18 23:49:23,945 INFO L256 TraceCheckUtils]: 6: Hoare triple {327#(<= 2 main_~len~0)} call #t~ret14.base, #t~ret14.offset := dll_circular_create(~len~0, ~data~0); {325#true} is VALID [2018-11-18 23:49:23,946 INFO L273 TraceCheckUtils]: 7: Hoare triple {325#true} ~len := #in~len;~data := #in~data; {328#(<= |dll_circular_create_#in~len| dll_circular_create_~len)} is VALID [2018-11-18 23:49:23,946 INFO L256 TraceCheckUtils]: 8: Hoare triple {328#(<= |dll_circular_create_#in~len| dll_circular_create_~len)} call #t~ret3.base, #t~ret3.offset := node_create(~data); {325#true} is VALID [2018-11-18 23:49:23,947 INFO L273 TraceCheckUtils]: 9: Hoare triple {325#true} ~data := #in~data;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(12);~temp~0.base, ~temp~0.offset := #t~malloc2.base, #t~malloc2.offset; {325#true} is VALID [2018-11-18 23:49:23,947 INFO L273 TraceCheckUtils]: 10: Hoare triple {325#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {325#true} is VALID [2018-11-18 23:49:23,947 INFO L273 TraceCheckUtils]: 11: Hoare triple {325#true} call write~$Pointer$(0, 0, ~temp~0.base, ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, 8 + ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {325#true} is VALID [2018-11-18 23:49:23,948 INFO L273 TraceCheckUtils]: 12: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-18 23:49:23,958 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {325#true} {328#(<= |dll_circular_create_#in~len| dll_circular_create_~len)} #117#return; {328#(<= |dll_circular_create_#in~len| dll_circular_create_~len)} is VALID [2018-11-18 23:49:23,962 INFO L273 TraceCheckUtils]: 14: Hoare triple {328#(<= |dll_circular_create_#in~len| dll_circular_create_~len)} ~head~0.base, ~head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;~last~0.base, ~last~0.offset := ~head~0.base, ~head~0.offset; {328#(<= |dll_circular_create_#in~len| dll_circular_create_~len)} is VALID [2018-11-18 23:49:23,963 INFO L273 TraceCheckUtils]: 15: Hoare triple {328#(<= |dll_circular_create_#in~len| dll_circular_create_~len)} assume true; {328#(<= |dll_circular_create_#in~len| dll_circular_create_~len)} is VALID [2018-11-18 23:49:23,964 INFO L273 TraceCheckUtils]: 16: Hoare triple {328#(<= |dll_circular_create_#in~len| dll_circular_create_~len)} assume !(~len > 1); {329#(<= |dll_circular_create_#in~len| 1)} is VALID [2018-11-18 23:49:23,973 INFO L273 TraceCheckUtils]: 17: Hoare triple {329#(<= |dll_circular_create_#in~len| 1)} call write~$Pointer$(~head~0.base, ~head~0.offset, ~last~0.base, ~last~0.offset, 4);call write~$Pointer$(~last~0.base, ~last~0.offset, ~head~0.base, 4 + ~head~0.offset, 4);#res.base, #res.offset := ~head~0.base, ~head~0.offset; {329#(<= |dll_circular_create_#in~len| 1)} is VALID [2018-11-18 23:49:23,973 INFO L273 TraceCheckUtils]: 18: Hoare triple {329#(<= |dll_circular_create_#in~len| 1)} assume true; {329#(<= |dll_circular_create_#in~len| 1)} is VALID [2018-11-18 23:49:23,978 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {329#(<= |dll_circular_create_#in~len| 1)} {327#(<= 2 main_~len~0)} #123#return; {326#false} is VALID [2018-11-18 23:49:23,978 INFO L273 TraceCheckUtils]: 20: Hoare triple {326#false} call write~$Pointer$(#t~ret14.base, #t~ret14.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret14.base, #t~ret14.offset; {326#false} is VALID [2018-11-18 23:49:23,978 INFO L256 TraceCheckUtils]: 21: Hoare triple {326#false} call dll_circular_append(~#s~0.base, ~#s~0.offset, ~data~0); {325#true} is VALID [2018-11-18 23:49:23,978 INFO L273 TraceCheckUtils]: 22: Hoare triple {325#true} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {325#true} is VALID [2018-11-18 23:49:23,979 INFO L256 TraceCheckUtils]: 23: Hoare triple {325#true} call #t~ret8.base, #t~ret8.offset := node_create(~data); {325#true} is VALID [2018-11-18 23:49:23,979 INFO L273 TraceCheckUtils]: 24: Hoare triple {325#true} ~data := #in~data;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(12);~temp~0.base, ~temp~0.offset := #t~malloc2.base, #t~malloc2.offset; {325#true} is VALID [2018-11-18 23:49:23,979 INFO L273 TraceCheckUtils]: 25: Hoare triple {325#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {325#true} is VALID [2018-11-18 23:49:23,980 INFO L273 TraceCheckUtils]: 26: Hoare triple {325#true} call write~$Pointer$(0, 0, ~temp~0.base, ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, 8 + ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {325#true} is VALID [2018-11-18 23:49:23,980 INFO L273 TraceCheckUtils]: 27: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-18 23:49:23,980 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {325#true} {325#true} #129#return; {325#true} is VALID [2018-11-18 23:49:23,981 INFO L273 TraceCheckUtils]: 29: Hoare triple {325#true} ~new_last~0.base, ~new_last~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4); {325#true} is VALID [2018-11-18 23:49:23,981 INFO L273 TraceCheckUtils]: 30: Hoare triple {325#true} assume 0 == #t~mem9.base && 0 == #t~mem9.offset;havoc #t~mem9.base, #t~mem9.offset;call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~new_last~0.base, 4 + ~new_last~0.offset, 4);call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~new_last~0.base, ~new_last~0.offset, 4);call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~head.base, ~head.offset, 4); {325#true} is VALID [2018-11-18 23:49:23,981 INFO L273 TraceCheckUtils]: 31: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-18 23:49:23,982 INFO L268 TraceCheckUtils]: 32: Hoare quadruple {325#true} {326#false} #125#return; {326#false} is VALID [2018-11-18 23:49:23,982 INFO L273 TraceCheckUtils]: 33: Hoare triple {326#false} call #t~mem15.base, #t~mem15.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem15.base, #t~mem15.offset;havoc #t~mem15.base, #t~mem15.offset;~count~0 := 0; {326#false} is VALID [2018-11-18 23:49:23,982 INFO L273 TraceCheckUtils]: 34: Hoare triple {326#false} assume true;call #t~mem17 := read~int(~ptr~0.base, 8 + ~ptr~0.offset, 4); {326#false} is VALID [2018-11-18 23:49:23,982 INFO L273 TraceCheckUtils]: 35: Hoare triple {326#false} assume ~data~0 != #t~mem17;havoc #t~mem17; {326#false} is VALID [2018-11-18 23:49:23,983 INFO L273 TraceCheckUtils]: 36: Hoare triple {326#false} assume !false; {326#false} is VALID [2018-11-18 23:49:23,985 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-18 23:49:23,986 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-18 23:49:23,986 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-18 23:49:23,988 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 37 [2018-11-18 23:49:23,988 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-18 23:49:23,988 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2018-11-18 23:49:24,092 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-18 23:49:24,093 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-18 23:49:24,093 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-18 23:49:24,093 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-18 23:49:24,094 INFO L87 Difference]: Start difference. First operand 40 states and 46 transitions. Second operand 5 states. [2018-11-18 23:49:24,569 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-18 23:49:24,570 INFO L93 Difference]: Finished difference Result 70 states and 81 transitions. [2018-11-18 23:49:24,570 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-18 23:49:24,570 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 37 [2018-11-18 23:49:24,571 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-18 23:49:24,571 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-18 23:49:24,575 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 81 transitions. [2018-11-18 23:49:24,576 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-18 23:49:24,580 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 81 transitions. [2018-11-18 23:49:24,580 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 81 transitions. [2018-11-18 23:49:24,732 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 81 edges. 81 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-18 23:49:24,736 INFO L225 Difference]: With dead ends: 70 [2018-11-18 23:49:24,736 INFO L226 Difference]: Without dead ends: 46 [2018-11-18 23:49:24,737 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=11, Invalid=19, Unknown=0, NotChecked=0, Total=30 [2018-11-18 23:49:24,737 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 46 states. [2018-11-18 23:49:24,769 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 46 to 42. [2018-11-18 23:49:24,769 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-18 23:49:24,770 INFO L82 GeneralOperation]: Start isEquivalent. First operand 46 states. Second operand 42 states. [2018-11-18 23:49:24,770 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 42 states. [2018-11-18 23:49:24,770 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 42 states. [2018-11-18 23:49:24,774 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-18 23:49:24,774 INFO L93 Difference]: Finished difference Result 46 states and 54 transitions. [2018-11-18 23:49:24,774 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 54 transitions. [2018-11-18 23:49:24,775 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-18 23:49:24,775 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-18 23:49:24,776 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand 46 states. [2018-11-18 23:49:24,776 INFO L87 Difference]: Start difference. First operand 42 states. Second operand 46 states. [2018-11-18 23:49:24,780 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-18 23:49:24,780 INFO L93 Difference]: Finished difference Result 46 states and 54 transitions. [2018-11-18 23:49:24,780 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 54 transitions. [2018-11-18 23:49:24,781 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-18 23:49:24,781 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-18 23:49:24,781 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-18 23:49:24,781 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-18 23:49:24,782 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 42 states. [2018-11-18 23:49:24,785 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 42 states to 42 states and 48 transitions. [2018-11-18 23:49:24,785 INFO L78 Accepts]: Start accepts. Automaton has 42 states and 48 transitions. Word has length 37 [2018-11-18 23:49:24,785 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-18 23:49:24,785 INFO L480 AbstractCegarLoop]: Abstraction has 42 states and 48 transitions. [2018-11-18 23:49:24,785 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-18 23:49:24,786 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 48 transitions. [2018-11-18 23:49:24,787 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2018-11-18 23:49:24,787 INFO L367 BasicCegarLoop]: Found error trace [2018-11-18 23:49:24,788 INFO L375 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 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] [2018-11-18 23:49:24,788 INFO L423 AbstractCegarLoop]: === Iteration 3 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-18 23:49:24,788 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-18 23:49:24,788 INFO L82 PathProgramCache]: Analyzing trace with hash 1219557696, now seen corresponding path program 1 times [2018-11-18 23:49:24,789 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-18 23:49:24,789 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-18 23:49:24,790 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-18 23:49:24,791 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-18 23:49:24,791 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-18 23:49:24,845 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-18 23:49:25,887 WARN L180 SmtUtils]: Spent 122.00 ms on a formula simplification that was a NOOP. DAG size: 25 [2018-11-18 23:49:26,431 INFO L256 TraceCheckUtils]: 0: Hoare triple {577#true} call ULTIMATE.init(); {577#true} is VALID [2018-11-18 23:49:26,431 INFO L273 TraceCheckUtils]: 1: Hoare triple {577#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {577#true} is VALID [2018-11-18 23:49:26,432 INFO L273 TraceCheckUtils]: 2: Hoare triple {577#true} assume true; {577#true} is VALID [2018-11-18 23:49:26,432 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {577#true} {577#true} #131#return; {577#true} is VALID [2018-11-18 23:49:26,433 INFO L256 TraceCheckUtils]: 4: Hoare triple {577#true} call #t~ret21 := main(); {577#true} is VALID [2018-11-18 23:49:26,434 INFO L273 TraceCheckUtils]: 5: Hoare triple {577#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4);call write~$Pointer$(0, 0, ~#s~0.base, ~#s~0.offset, 4); {579#(= (select |#valid| |main_~#s~0.base|) 1)} is VALID [2018-11-18 23:49:26,435 INFO L256 TraceCheckUtils]: 6: Hoare triple {579#(= (select |#valid| |main_~#s~0.base|) 1)} call #t~ret14.base, #t~ret14.offset := dll_circular_create(~len~0, ~data~0); {580#(= |#valid| |old(#valid)|)} is VALID [2018-11-18 23:49:26,436 INFO L273 TraceCheckUtils]: 7: Hoare triple {580#(= |#valid| |old(#valid)|)} ~len := #in~len;~data := #in~data; {580#(= |#valid| |old(#valid)|)} is VALID [2018-11-18 23:49:26,437 INFO L256 TraceCheckUtils]: 8: Hoare triple {580#(= |#valid| |old(#valid)|)} call #t~ret3.base, #t~ret3.offset := node_create(~data); {580#(= |#valid| |old(#valid)|)} is VALID [2018-11-18 23:49:26,439 INFO L273 TraceCheckUtils]: 9: Hoare triple {580#(= |#valid| |old(#valid)|)} ~data := #in~data;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(12);~temp~0.base, ~temp~0.offset := #t~malloc2.base, #t~malloc2.offset; {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,441 INFO L273 TraceCheckUtils]: 10: Hoare triple {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,442 INFO L273 TraceCheckUtils]: 11: Hoare triple {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} call write~$Pointer$(0, 0, ~temp~0.base, ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, 8 + ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,444 INFO L273 TraceCheckUtils]: 12: Hoare triple {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume true; {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,447 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} {580#(= |#valid| |old(#valid)|)} #117#return; {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,449 INFO L273 TraceCheckUtils]: 14: Hoare triple {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} ~head~0.base, ~head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;~last~0.base, ~last~0.offset := ~head~0.base, ~head~0.offset; {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,450 INFO L273 TraceCheckUtils]: 15: Hoare triple {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume true; {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,452 INFO L273 TraceCheckUtils]: 16: Hoare triple {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume !!(~len > 1); {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,454 INFO L256 TraceCheckUtils]: 17: Hoare triple {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} call #t~ret4.base, #t~ret4.offset := node_create(~data); {580#(= |#valid| |old(#valid)|)} is VALID [2018-11-18 23:49:26,456 INFO L273 TraceCheckUtils]: 18: Hoare triple {580#(= |#valid| |old(#valid)|)} ~data := #in~data;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(12);~temp~0.base, ~temp~0.offset := #t~malloc2.base, #t~malloc2.offset; {582#(and (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (not (= 0 node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,457 INFO L273 TraceCheckUtils]: 19: Hoare triple {582#(and (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (not (= 0 node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {582#(and (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (not (= 0 node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,459 INFO L273 TraceCheckUtils]: 20: Hoare triple {582#(and (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (not (= 0 node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} call write~$Pointer$(0, 0, ~temp~0.base, ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, 8 + ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {583#(and (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (not (= 0 |node_create_#res.base|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,460 INFO L273 TraceCheckUtils]: 21: Hoare triple {583#(and (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (not (= 0 |node_create_#res.base|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume true; {583#(and (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (not (= 0 |node_create_#res.base|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,465 INFO L268 TraceCheckUtils]: 22: Hoare quadruple {583#(and (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (not (= 0 |node_create_#res.base|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} {581#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} #119#return; {584#(and (not (= 0 |dll_circular_create_#t~ret4.base|)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,467 INFO L273 TraceCheckUtils]: 23: Hoare triple {584#(and (not (= 0 |dll_circular_create_#t~ret4.base|)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} ~new_head~0.base, ~new_head~0.offset := #t~ret4.base, #t~ret4.offset;havoc #t~ret4.base, #t~ret4.offset;call write~$Pointer$(~head~0.base, ~head~0.offset, ~new_head~0.base, ~new_head~0.offset, 4); {585#(and (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (not (= 0 dll_circular_create_~new_head~0.base)) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,469 INFO L273 TraceCheckUtils]: 24: Hoare triple {585#(and (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (not (= 0 dll_circular_create_~new_head~0.base)) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} assume ~head~0.base != 0 || ~head~0.offset != 0;call write~$Pointer$(~new_head~0.base, ~new_head~0.offset, ~head~0.base, 4 + ~head~0.offset, 4); {585#(and (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (not (= 0 dll_circular_create_~new_head~0.base)) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,471 INFO L273 TraceCheckUtils]: 25: Hoare triple {585#(and (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (not (= 0 dll_circular_create_~new_head~0.base)) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} ~head~0.base, ~head~0.offset := ~new_head~0.base, ~new_head~0.offset;#t~post5 := ~len;~len := #t~post5 - 1;havoc #t~post5; {586#(and (not (= 0 dll_circular_create_~head~0.base)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,473 INFO L273 TraceCheckUtils]: 26: Hoare triple {586#(and (not (= 0 dll_circular_create_~head~0.base)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} assume true; {586#(and (not (= 0 dll_circular_create_~head~0.base)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,476 INFO L273 TraceCheckUtils]: 27: Hoare triple {586#(and (not (= 0 dll_circular_create_~head~0.base)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} assume !(~len > 1); {586#(and (not (= 0 dll_circular_create_~head~0.base)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,478 INFO L273 TraceCheckUtils]: 28: Hoare triple {586#(and (not (= 0 dll_circular_create_~head~0.base)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} call write~$Pointer$(~head~0.base, ~head~0.offset, ~last~0.base, ~last~0.offset, 4);call write~$Pointer$(~last~0.base, ~last~0.offset, ~head~0.base, 4 + ~head~0.offset, 4);#res.base, #res.offset := ~head~0.base, ~head~0.offset; {587#(and (not (= 0 |dll_circular_create_#res.base|)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,483 INFO L273 TraceCheckUtils]: 29: Hoare triple {587#(and (not (= 0 |dll_circular_create_#res.base|)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} assume true; {587#(and (not (= 0 |dll_circular_create_#res.base|)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-18 23:49:26,486 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {587#(and (not (= 0 |dll_circular_create_#res.base|)) (= |#valid| (store (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|) (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)))) (or (= 0 (select |old(#valid)| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|))) (= (select |#valid| (@diff (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))) |#valid|)) 1) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} {579#(= (select |#valid| |main_~#s~0.base|) 1)} #123#return; {588#(and (not (= 0 |main_#t~ret14.base|)) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-18 23:49:26,493 INFO L273 TraceCheckUtils]: 31: Hoare triple {588#(and (not (= 0 |main_#t~ret14.base|)) (= (select |#valid| |main_~#s~0.base|) 1))} call write~$Pointer$(#t~ret14.base, #t~ret14.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret14.base, #t~ret14.offset; {589#(and (not (= 0 (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-18 23:49:26,494 INFO L256 TraceCheckUtils]: 32: Hoare triple {589#(and (not (= 0 (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (= (select |#valid| |main_~#s~0.base|) 1))} call dll_circular_append(~#s~0.base, ~#s~0.offset, ~data~0); {590#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-18 23:49:26,495 INFO L273 TraceCheckUtils]: 33: Hoare triple {590#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {591#(and (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= |#valid| |old(#valid)|) (= (select |old(#memory_$Pointer$.base)| dll_circular_append_~head.base) (select |#memory_$Pointer$.base| dll_circular_append_~head.base)) (= dll_circular_append_~head.offset |dll_circular_append_#in~head.offset|))} is VALID [2018-11-18 23:49:26,498 INFO L256 TraceCheckUtils]: 34: Hoare triple {591#(and (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= |#valid| |old(#valid)|) (= (select |old(#memory_$Pointer$.base)| dll_circular_append_~head.base) (select |#memory_$Pointer$.base| dll_circular_append_~head.base)) (= dll_circular_append_~head.offset |dll_circular_append_#in~head.offset|))} call #t~ret8.base, #t~ret8.offset := node_create(~data); {590#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-18 23:49:26,500 INFO L273 TraceCheckUtils]: 35: Hoare triple {590#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} ~data := #in~data;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(12);~temp~0.base, ~temp~0.offset := #t~malloc2.base, #t~malloc2.offset; {592#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-18 23:49:26,500 INFO L273 TraceCheckUtils]: 36: Hoare triple {592#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {592#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-18 23:49:26,502 INFO L273 TraceCheckUtils]: 37: Hoare triple {592#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} call write~$Pointer$(0, 0, ~temp~0.base, ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, 8 + ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {593#(and (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} is VALID [2018-11-18 23:49:26,503 INFO L273 TraceCheckUtils]: 38: Hoare triple {593#(and (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} assume true; {593#(and (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} is VALID [2018-11-18 23:49:26,507 INFO L268 TraceCheckUtils]: 39: Hoare quadruple {593#(and (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} {591#(and (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= |#valid| |old(#valid)|) (= (select |old(#memory_$Pointer$.base)| dll_circular_append_~head.base) (select |#memory_$Pointer$.base| dll_circular_append_~head.base)) (= dll_circular_append_~head.offset |dll_circular_append_#in~head.offset|))} #129#return; {594#(and (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= dll_circular_append_~head.offset |dll_circular_append_#in~head.offset|) (or (= (select |old(#memory_$Pointer$.base)| dll_circular_append_~head.base) (select |#memory_$Pointer$.base| dll_circular_append_~head.base)) (= 0 (select |old(#valid)| dll_circular_append_~head.base))))} is VALID [2018-11-18 23:49:26,508 INFO L273 TraceCheckUtils]: 40: Hoare triple {594#(and (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= dll_circular_append_~head.offset |dll_circular_append_#in~head.offset|) (or (= (select |old(#memory_$Pointer$.base)| dll_circular_append_~head.base) (select |#memory_$Pointer$.base| dll_circular_append_~head.base)) (= 0 (select |old(#valid)| dll_circular_append_~head.base))))} ~new_last~0.base, ~new_last~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4); {595#(and (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= (select (select |#memory_$Pointer$.base| dll_circular_append_~head.base) dll_circular_append_~head.offset) |dll_circular_append_#t~mem9.base|) (= dll_circular_append_~head.offset |dll_circular_append_#in~head.offset|) (or (= (select |old(#memory_$Pointer$.base)| dll_circular_append_~head.base) (select |#memory_$Pointer$.base| dll_circular_append_~head.base)) (= 0 (select |old(#valid)| dll_circular_append_~head.base))))} is VALID [2018-11-18 23:49:26,510 INFO L273 TraceCheckUtils]: 41: Hoare triple {595#(and (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= (select (select |#memory_$Pointer$.base| dll_circular_append_~head.base) dll_circular_append_~head.offset) |dll_circular_append_#t~mem9.base|) (= dll_circular_append_~head.offset |dll_circular_append_#in~head.offset|) (or (= (select |old(#memory_$Pointer$.base)| dll_circular_append_~head.base) (select |#memory_$Pointer$.base| dll_circular_append_~head.base)) (= 0 (select |old(#valid)| dll_circular_append_~head.base))))} assume 0 == #t~mem9.base && 0 == #t~mem9.offset;havoc #t~mem9.base, #t~mem9.offset;call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~new_last~0.base, 4 + ~new_last~0.offset, 4);call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~new_last~0.base, ~new_last~0.offset, 4);call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~head.base, ~head.offset, 4); {596#(or (= 0 (select |old(#valid)| |dll_circular_append_#in~head.base|)) (= 0 (select (select |old(#memory_$Pointer$.base)| |dll_circular_append_#in~head.base|) |dll_circular_append_#in~head.offset|)))} is VALID [2018-11-18 23:49:26,514 INFO L273 TraceCheckUtils]: 42: Hoare triple {596#(or (= 0 (select |old(#valid)| |dll_circular_append_#in~head.base|)) (= 0 (select (select |old(#memory_$Pointer$.base)| |dll_circular_append_#in~head.base|) |dll_circular_append_#in~head.offset|)))} assume true; {596#(or (= 0 (select |old(#valid)| |dll_circular_append_#in~head.base|)) (= 0 (select (select |old(#memory_$Pointer$.base)| |dll_circular_append_#in~head.base|) |dll_circular_append_#in~head.offset|)))} is VALID [2018-11-18 23:49:26,516 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {596#(or (= 0 (select |old(#valid)| |dll_circular_append_#in~head.base|)) (= 0 (select (select |old(#memory_$Pointer$.base)| |dll_circular_append_#in~head.base|) |dll_circular_append_#in~head.offset|)))} {589#(and (not (= 0 (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (= (select |#valid| |main_~#s~0.base|) 1))} #125#return; {578#false} is VALID [2018-11-18 23:49:26,516 INFO L273 TraceCheckUtils]: 44: Hoare triple {578#false} call #t~mem15.base, #t~mem15.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem15.base, #t~mem15.offset;havoc #t~mem15.base, #t~mem15.offset;~count~0 := 0; {578#false} is VALID [2018-11-18 23:49:26,516 INFO L273 TraceCheckUtils]: 45: Hoare triple {578#false} assume true;call #t~mem17 := read~int(~ptr~0.base, 8 + ~ptr~0.offset, 4); {578#false} is VALID [2018-11-18 23:49:26,517 INFO L273 TraceCheckUtils]: 46: Hoare triple {578#false} assume ~data~0 != #t~mem17;havoc #t~mem17; {578#false} is VALID [2018-11-18 23:49:26,517 INFO L273 TraceCheckUtils]: 47: Hoare triple {578#false} assume !false; {578#false} is VALID [2018-11-18 23:49:26,536 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 2 proven. 14 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-18 23:49:26,537 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-18 23:49:26,537 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-18 23:49:26,559 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-18 23:49:26,634 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-18 23:49:26,669 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-18 23:49:26,676 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-18 23:49:26,749 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 6 treesize of output 5 [2018-11-18 23:49:26,752 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-18 23:49:26,762 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-18 23:49:26,762 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:10, output treesize:9 [2018-11-18 23:49:26,765 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-18 23:49:28,581 INFO L700 Elim1Store]: detected not equals via solver [2018-11-18 23:49:28,583 INFO L700 Elim1Store]: detected not equals via solver [2018-11-18 23:49:28,584 INFO L700 Elim1Store]: detected not equals via solver [2018-11-18 23:49:28,587 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 42 [2018-11-18 23:49:28,613 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 30 treesize of output 34 [2018-11-18 23:49:28,625 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-18 23:49:28,641 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-18 23:49:28,678 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-18 23:49:28,678 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:35, output treesize:35 [2018-11-18 23:49:28,684 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-18 23:49:28,822 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-18 23:49:28,829 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-18 23:49:28,836 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-18 23:49:28,839 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-18 23:49:28,869 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-18 23:49:28,870 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:46, output treesize:51 [2018-11-18 23:49:28,873 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-18 23:49:30,473 WARN L180 SmtUtils]: Spent 668.00 ms on a formula simplification that was a NOOP. DAG size: 17 [2018-11-18 23:49:31,513 WARN L180 SmtUtils]: Spent 888.00 ms on a formula simplification that was a NOOP. DAG size: 23 [2018-11-18 23:49:32,107 INFO L256 TraceCheckUtils]: 0: Hoare triple {577#true} call ULTIMATE.init(); {577#true} is VALID [2018-11-18 23:49:32,108 INFO L273 TraceCheckUtils]: 1: Hoare triple {577#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {577#true} is VALID [2018-11-18 23:49:32,108 INFO L273 TraceCheckUtils]: 2: Hoare triple {577#true} assume true; {577#true} is VALID [2018-11-18 23:49:32,109 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {577#true} {577#true} #131#return; {577#true} is VALID [2018-11-18 23:49:32,109 INFO L256 TraceCheckUtils]: 4: Hoare triple {577#true} call #t~ret21 := main(); {577#true} is VALID [2018-11-18 23:49:32,110 INFO L273 TraceCheckUtils]: 5: Hoare triple {577#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4);call write~$Pointer$(0, 0, ~#s~0.base, ~#s~0.offset, 4); {615#(and (= |main_~#s~0.offset| 0) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-18 23:49:32,111 INFO L256 TraceCheckUtils]: 6: Hoare triple {615#(and (= |main_~#s~0.offset| 0) (= (select |#valid| |main_~#s~0.base|) 1))} call #t~ret14.base, #t~ret14.offset := dll_circular_create(~len~0, ~data~0); {580#(= |#valid| |old(#valid)|)} is VALID [2018-11-18 23:49:32,115 INFO L273 TraceCheckUtils]: 7: Hoare triple {580#(= |#valid| |old(#valid)|)} ~len := #in~len;~data := #in~data; {580#(= |#valid| |old(#valid)|)} is VALID [2018-11-18 23:49:32,115 INFO L256 TraceCheckUtils]: 8: Hoare triple {580#(= |#valid| |old(#valid)|)} call #t~ret3.base, #t~ret3.offset := node_create(~data); {580#(= |#valid| |old(#valid)|)} is VALID [2018-11-18 23:49:32,116 INFO L273 TraceCheckUtils]: 9: Hoare triple {580#(= |#valid| |old(#valid)|)} ~data := #in~data;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(12);~temp~0.base, ~temp~0.offset := #t~malloc2.base, #t~malloc2.offset; {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} is VALID [2018-11-18 23:49:32,116 INFO L273 TraceCheckUtils]: 10: Hoare triple {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} is VALID [2018-11-18 23:49:32,117 INFO L273 TraceCheckUtils]: 11: Hoare triple {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} call write~$Pointer$(0, 0, ~temp~0.base, ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, 8 + ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} is VALID [2018-11-18 23:49:32,117 INFO L273 TraceCheckUtils]: 12: Hoare triple {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} assume true; {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} is VALID [2018-11-18 23:49:32,118 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} {580#(= |#valid| |old(#valid)|)} #117#return; {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} is VALID [2018-11-18 23:49:32,119 INFO L273 TraceCheckUtils]: 14: Hoare triple {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} ~head~0.base, ~head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;~last~0.base, ~last~0.offset := ~head~0.base, ~head~0.offset; {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} is VALID [2018-11-18 23:49:32,119 INFO L273 TraceCheckUtils]: 15: Hoare triple {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} assume true; {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} is VALID [2018-11-18 23:49:32,120 INFO L273 TraceCheckUtils]: 16: Hoare triple {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} assume !!(~len > 1); {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} is VALID [2018-11-18 23:49:32,129 INFO L256 TraceCheckUtils]: 17: Hoare triple {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} call #t~ret4.base, #t~ret4.offset := node_create(~data); {580#(= |#valid| |old(#valid)|)} is VALID [2018-11-18 23:49:32,130 INFO L273 TraceCheckUtils]: 18: Hoare triple {580#(= |#valid| |old(#valid)|)} ~data := #in~data;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(12);~temp~0.base, ~temp~0.offset := #t~malloc2.base, #t~malloc2.offset; {656#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| node_create_~temp~0.base 1)) (not (= 0 node_create_~temp~0.base)))} is VALID [2018-11-18 23:49:32,130 INFO L273 TraceCheckUtils]: 19: Hoare triple {656#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| node_create_~temp~0.base 1)) (not (= 0 node_create_~temp~0.base)))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {656#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| node_create_~temp~0.base 1)) (not (= 0 node_create_~temp~0.base)))} is VALID [2018-11-18 23:49:32,131 INFO L273 TraceCheckUtils]: 20: Hoare triple {656#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| node_create_~temp~0.base 1)) (not (= 0 node_create_~temp~0.base)))} call write~$Pointer$(0, 0, ~temp~0.base, ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, 8 + ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {663#(and (= |#valid| (store |old(#valid)| |node_create_#res.base| 1)) (= 0 (select |old(#valid)| |node_create_#res.base|)) (not (= 0 |node_create_#res.base|)))} is VALID [2018-11-18 23:49:32,132 INFO L273 TraceCheckUtils]: 21: Hoare triple {663#(and (= |#valid| (store |old(#valid)| |node_create_#res.base| 1)) (= 0 (select |old(#valid)| |node_create_#res.base|)) (not (= 0 |node_create_#res.base|)))} assume true; {663#(and (= |#valid| (store |old(#valid)| |node_create_#res.base| 1)) (= 0 (select |old(#valid)| |node_create_#res.base|)) (not (= 0 |node_create_#res.base|)))} is VALID [2018-11-18 23:49:32,133 INFO L268 TraceCheckUtils]: 22: Hoare quadruple {663#(and (= |#valid| (store |old(#valid)| |node_create_#res.base| 1)) (= 0 (select |old(#valid)| |node_create_#res.base|)) (not (= 0 |node_create_#res.base|)))} {628#(exists ((|node_create_#t~malloc2.base| Int)) (and (= (store |old(#valid)| |node_create_#t~malloc2.base| 1) |#valid|) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0)))} #119#return; {670#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#t~ret4.base| 1)) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0) (= 0 (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#t~ret4.base|)))) (not (= 0 |dll_circular_create_#t~ret4.base|)))} is VALID [2018-11-18 23:49:32,135 INFO L273 TraceCheckUtils]: 23: Hoare triple {670#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#t~ret4.base| 1)) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0) (= 0 (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#t~ret4.base|)))) (not (= 0 |dll_circular_create_#t~ret4.base|)))} ~new_head~0.base, ~new_head~0.offset := #t~ret4.base, #t~ret4.offset;havoc #t~ret4.base, #t~ret4.offset;call write~$Pointer$(~head~0.base, ~head~0.offset, ~new_head~0.base, ~new_head~0.offset, 4); {674#(and (not (= dll_circular_create_~new_head~0.base 0)) (exists ((|node_create_#t~malloc2.base| Int)) (and (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~new_head~0.base) 0) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0) (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~new_head~0.base 1)))))} is VALID [2018-11-18 23:49:32,136 INFO L273 TraceCheckUtils]: 24: Hoare triple {674#(and (not (= dll_circular_create_~new_head~0.base 0)) (exists ((|node_create_#t~malloc2.base| Int)) (and (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~new_head~0.base) 0) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0) (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~new_head~0.base 1)))))} assume ~head~0.base != 0 || ~head~0.offset != 0;call write~$Pointer$(~new_head~0.base, ~new_head~0.offset, ~head~0.base, 4 + ~head~0.offset, 4); {674#(and (not (= dll_circular_create_~new_head~0.base 0)) (exists ((|node_create_#t~malloc2.base| Int)) (and (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~new_head~0.base) 0) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0) (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~new_head~0.base 1)))))} is VALID [2018-11-18 23:49:32,138 INFO L273 TraceCheckUtils]: 25: Hoare triple {674#(and (not (= dll_circular_create_~new_head~0.base 0)) (exists ((|node_create_#t~malloc2.base| Int)) (and (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~new_head~0.base) 0) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0) (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~new_head~0.base 1)))))} ~head~0.base, ~head~0.offset := ~new_head~0.base, ~new_head~0.offset;#t~post5 := ~len;~len := #t~post5 - 1;havoc #t~post5; {681#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base 1)) (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base) 0) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0))) (not (= dll_circular_create_~head~0.base 0)))} is VALID [2018-11-18 23:49:32,139 INFO L273 TraceCheckUtils]: 26: Hoare triple {681#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base 1)) (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base) 0) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0))) (not (= dll_circular_create_~head~0.base 0)))} assume true; {681#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base 1)) (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base) 0) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0))) (not (= dll_circular_create_~head~0.base 0)))} is VALID [2018-11-18 23:49:32,140 INFO L273 TraceCheckUtils]: 27: Hoare triple {681#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base 1)) (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base) 0) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0))) (not (= dll_circular_create_~head~0.base 0)))} assume !(~len > 1); {681#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base 1)) (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base) 0) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0))) (not (= dll_circular_create_~head~0.base 0)))} is VALID [2018-11-18 23:49:32,141 INFO L273 TraceCheckUtils]: 28: Hoare triple {681#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base 1)) (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) dll_circular_create_~head~0.base) 0) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0))) (not (= dll_circular_create_~head~0.base 0)))} call write~$Pointer$(~head~0.base, ~head~0.offset, ~last~0.base, ~last~0.offset, 4);call write~$Pointer$(~last~0.base, ~last~0.offset, ~head~0.base, 4 + ~head~0.offset, 4);#res.base, #res.offset := ~head~0.base, ~head~0.offset; {691#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#res.base|) 0) (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#res.base| 1)) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0))) (not (= |dll_circular_create_#res.base| 0)))} is VALID [2018-11-18 23:49:32,142 INFO L273 TraceCheckUtils]: 29: Hoare triple {691#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#res.base|) 0) (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#res.base| 1)) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0))) (not (= |dll_circular_create_#res.base| 0)))} assume true; {691#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#res.base|) 0) (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#res.base| 1)) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0))) (not (= |dll_circular_create_#res.base| 0)))} is VALID [2018-11-18 23:49:32,144 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {691#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (= (select (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#res.base|) 0) (= |#valid| (store (store |old(#valid)| |node_create_#t~malloc2.base| 1) |dll_circular_create_#res.base| 1)) (= (select |old(#valid)| |node_create_#t~malloc2.base|) 0))) (not (= |dll_circular_create_#res.base| 0)))} {615#(and (= |main_~#s~0.offset| 0) (= (select |#valid| |main_~#s~0.base|) 1))} #123#return; {698#(and (not (= |main_~#s~0.base| |main_#t~ret14.base|)) (= (select |#valid| |main_#t~ret14.base|) 1) (not (= 0 |main_#t~ret14.base|)) (= |main_~#s~0.offset| 0) (exists ((|node_create_#t~malloc2.base| Int)) (and (not (= |node_create_#t~malloc2.base| |main_~#s~0.base|)) (not (= |node_create_#t~malloc2.base| |main_#t~ret14.base|)) (= 1 (select |#valid| |node_create_#t~malloc2.base|)))) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-18 23:49:32,146 INFO L273 TraceCheckUtils]: 31: Hoare triple {698#(and (not (= |main_~#s~0.base| |main_#t~ret14.base|)) (= (select |#valid| |main_#t~ret14.base|) 1) (not (= 0 |main_#t~ret14.base|)) (= |main_~#s~0.offset| 0) (exists ((|node_create_#t~malloc2.base| Int)) (and (not (= |node_create_#t~malloc2.base| |main_~#s~0.base|)) (not (= |node_create_#t~malloc2.base| |main_#t~ret14.base|)) (= 1 (select |#valid| |node_create_#t~malloc2.base|)))) (= (select |#valid| |main_~#s~0.base|) 1))} call write~$Pointer$(#t~ret14.base, #t~ret14.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret14.base, #t~ret14.offset; {702#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (not (= |node_create_#t~malloc2.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (not (= |node_create_#t~malloc2.base| |main_~#s~0.base|)) (= 1 (select |#valid| |node_create_#t~malloc2.base|)))) (= 1 (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (not (= (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|) 0)) (not (= (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|) |main_~#s~0.base|)) (= |main_~#s~0.offset| 0) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-18 23:49:32,148 INFO L256 TraceCheckUtils]: 32: Hoare triple {702#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (not (= |node_create_#t~malloc2.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (not (= |node_create_#t~malloc2.base| |main_~#s~0.base|)) (= 1 (select |#valid| |node_create_#t~malloc2.base|)))) (= 1 (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (not (= (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|) 0)) (not (= (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|) |main_~#s~0.base|)) (= |main_~#s~0.offset| 0) (= (select |#valid| |main_~#s~0.base|) 1))} call dll_circular_append(~#s~0.base, ~#s~0.offset, ~data~0); {590#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-18 23:49:32,149 INFO L273 TraceCheckUtils]: 33: Hoare triple {590#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {709#(and (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= |#valid| |old(#valid)|) (= |dll_circular_append_#in~head.offset| dll_circular_append_~head.offset) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-18 23:49:32,169 INFO L256 TraceCheckUtils]: 34: Hoare triple {709#(and (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= |#valid| |old(#valid)|) (= |dll_circular_append_#in~head.offset| dll_circular_append_~head.offset) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} call #t~ret8.base, #t~ret8.offset := node_create(~data); {590#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-18 23:49:32,178 INFO L273 TraceCheckUtils]: 35: Hoare triple {590#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} ~data := #in~data;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(12);~temp~0.base, ~temp~0.offset := #t~malloc2.base, #t~malloc2.offset; {592#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-18 23:49:32,192 INFO L273 TraceCheckUtils]: 36: Hoare triple {592#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {592#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-18 23:49:32,196 INFO L273 TraceCheckUtils]: 37: Hoare triple {592#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} call write~$Pointer$(0, 0, ~temp~0.base, ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, 8 + ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {722#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (exists ((node_create_~temp~0.offset Int)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |node_create_#res.base| (store (store (select |old(#memory_$Pointer$.base)| |node_create_#res.base|) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)))))} is VALID [2018-11-18 23:49:32,197 INFO L273 TraceCheckUtils]: 38: Hoare triple {722#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (exists ((node_create_~temp~0.offset Int)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |node_create_#res.base| (store (store (select |old(#memory_$Pointer$.base)| |node_create_#res.base|) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)))))} assume true; {722#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (exists ((node_create_~temp~0.offset Int)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |node_create_#res.base| (store (store (select |old(#memory_$Pointer$.base)| |node_create_#res.base|) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)))))} is VALID [2018-11-18 23:49:32,207 INFO L268 TraceCheckUtils]: 39: Hoare quadruple {722#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (exists ((node_create_~temp~0.offset Int)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |node_create_#res.base| (store (store (select |old(#memory_$Pointer$.base)| |node_create_#res.base|) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)))))} {709#(and (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= |#valid| |old(#valid)|) (= |dll_circular_append_#in~head.offset| dll_circular_append_~head.offset) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} #129#return; {729#(and (exists ((node_create_~temp~0.offset Int)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |dll_circular_append_#t~ret8.base| (store (store (select |old(#memory_$Pointer$.base)| |dll_circular_append_#t~ret8.base|) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)))) (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= |dll_circular_append_#in~head.offset| dll_circular_append_~head.offset) (= 0 (select |old(#valid)| |dll_circular_append_#t~ret8.base|)))} is VALID [2018-11-18 23:49:32,208 INFO L273 TraceCheckUtils]: 40: Hoare triple {729#(and (exists ((node_create_~temp~0.offset Int)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |dll_circular_append_#t~ret8.base| (store (store (select |old(#memory_$Pointer$.base)| |dll_circular_append_#t~ret8.base|) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)))) (= dll_circular_append_~head.base |dll_circular_append_#in~head.base|) (= |dll_circular_append_#in~head.offset| dll_circular_append_~head.offset) (= 0 (select |old(#valid)| |dll_circular_append_#t~ret8.base|)))} ~new_last~0.base, ~new_last~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4); {733#(exists ((node_create_~temp~0.offset Int) (dll_circular_append_~new_last~0.base Int)) (and (= (select |old(#valid)| dll_circular_append_~new_last~0.base) 0) (= |dll_circular_append_#t~mem9.base| (select (select (store |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base (store (store (select |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)) |dll_circular_append_#in~head.base|) |dll_circular_append_#in~head.offset|))))} is VALID [2018-11-18 23:49:32,209 INFO L273 TraceCheckUtils]: 41: Hoare triple {733#(exists ((node_create_~temp~0.offset Int) (dll_circular_append_~new_last~0.base Int)) (and (= (select |old(#valid)| dll_circular_append_~new_last~0.base) 0) (= |dll_circular_append_#t~mem9.base| (select (select (store |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base (store (store (select |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)) |dll_circular_append_#in~head.base|) |dll_circular_append_#in~head.offset|))))} assume 0 == #t~mem9.base && 0 == #t~mem9.offset;havoc #t~mem9.base, #t~mem9.offset;call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~new_last~0.base, 4 + ~new_last~0.offset, 4);call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~new_last~0.base, ~new_last~0.offset, 4);call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~head.base, ~head.offset, 4); {737#(exists ((node_create_~temp~0.offset Int) (dll_circular_append_~new_last~0.base Int)) (and (= (select |old(#valid)| dll_circular_append_~new_last~0.base) 0) (= (select (select (store |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base (store (store (select |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)) |dll_circular_append_#in~head.base|) |dll_circular_append_#in~head.offset|) 0)))} is VALID [2018-11-18 23:49:32,210 INFO L273 TraceCheckUtils]: 42: Hoare triple {737#(exists ((node_create_~temp~0.offset Int) (dll_circular_append_~new_last~0.base Int)) (and (= (select |old(#valid)| dll_circular_append_~new_last~0.base) 0) (= (select (select (store |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base (store (store (select |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)) |dll_circular_append_#in~head.base|) |dll_circular_append_#in~head.offset|) 0)))} assume true; {737#(exists ((node_create_~temp~0.offset Int) (dll_circular_append_~new_last~0.base Int)) (and (= (select |old(#valid)| dll_circular_append_~new_last~0.base) 0) (= (select (select (store |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base (store (store (select |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)) |dll_circular_append_#in~head.base|) |dll_circular_append_#in~head.offset|) 0)))} is VALID [2018-11-18 23:49:32,211 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {737#(exists ((node_create_~temp~0.offset Int) (dll_circular_append_~new_last~0.base Int)) (and (= (select |old(#valid)| dll_circular_append_~new_last~0.base) 0) (= (select (select (store |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base (store (store (select |old(#memory_$Pointer$.base)| dll_circular_append_~new_last~0.base) node_create_~temp~0.offset 0) (+ node_create_~temp~0.offset 4) 0)) |dll_circular_append_#in~head.base|) |dll_circular_append_#in~head.offset|) 0)))} {702#(and (exists ((|node_create_#t~malloc2.base| Int)) (and (not (= |node_create_#t~malloc2.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (not (= |node_create_#t~malloc2.base| |main_~#s~0.base|)) (= 1 (select |#valid| |node_create_#t~malloc2.base|)))) (= 1 (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (not (= (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|) 0)) (not (= (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|) |main_~#s~0.base|)) (= |main_~#s~0.offset| 0) (= (select |#valid| |main_~#s~0.base|) 1))} #125#return; {578#false} is VALID [2018-11-18 23:49:32,211 INFO L273 TraceCheckUtils]: 44: Hoare triple {578#false} call #t~mem15.base, #t~mem15.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem15.base, #t~mem15.offset;havoc #t~mem15.base, #t~mem15.offset;~count~0 := 0; {578#false} is VALID [2018-11-18 23:49:32,211 INFO L273 TraceCheckUtils]: 45: Hoare triple {578#false} assume true;call #t~mem17 := read~int(~ptr~0.base, 8 + ~ptr~0.offset, 4); {578#false} is VALID [2018-11-18 23:49:32,212 INFO L273 TraceCheckUtils]: 46: Hoare triple {578#false} assume ~data~0 != #t~mem17;havoc #t~mem17; {578#false} is VALID [2018-11-18 23:49:32,212 INFO L273 TraceCheckUtils]: 47: Hoare triple {578#false} assume !false; {578#false} is VALID [2018-11-18 23:49:32,222 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 6 proven. 8 refuted. 2 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-18 23:49:32,250 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-18 23:49:32,251 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 20] total 35 [2018-11-18 23:49:32,251 INFO L78 Accepts]: Start accepts. Automaton has 35 states. Word has length 48 [2018-11-18 23:49:32,253 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-18 23:49:32,253 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 35 states. [2018-11-18 23:49:32,453 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 83 edges. 83 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-18 23:49:32,454 INFO L459 AbstractCegarLoop]: Interpolant automaton has 35 states [2018-11-18 23:49:32,454 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2018-11-18 23:49:32,455 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=106, Invalid=1082, Unknown=2, NotChecked=0, Total=1190 [2018-11-18 23:49:32,456 INFO L87 Difference]: Start difference. First operand 42 states and 48 transitions. Second operand 35 states. [2018-11-18 23:49:35,849 WARN L180 SmtUtils]: Spent 1.54 s on a formula simplification. DAG size of input: 30 DAG size of output: 26 [2018-11-18 23:49:38,946 WARN L180 SmtUtils]: Spent 1.17 s on a formula simplification that was a NOOP. DAG size: 32 [2018-11-18 23:49:40,531 WARN L180 SmtUtils]: Spent 1.30 s on a formula simplification. DAG size of input: 52 DAG size of output: 47 [2018-11-18 23:49:41,852 WARN L180 SmtUtils]: Spent 1.02 s on a formula simplification that was a NOOP. DAG size: 30 [2018-11-18 23:49:42,987 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-18 23:49:42,987 INFO L93 Difference]: Finished difference Result 72 states and 86 transitions. [2018-11-18 23:49:42,987 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2018-11-18 23:49:42,987 INFO L78 Accepts]: Start accepts. Automaton has 35 states. Word has length 48 [2018-11-18 23:49:42,988 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-18 23:49:42,988 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 35 states. [2018-11-18 23:49:42,993 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 86 transitions. [2018-11-18 23:49:42,993 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 35 states. [2018-11-18 23:49:42,997 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 86 transitions. [2018-11-18 23:49:42,997 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 20 states and 86 transitions. [2018-11-18 23:49:43,151 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 86 edges. 86 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-18 23:49:43,155 INFO L225 Difference]: With dead ends: 72 [2018-11-18 23:49:43,155 INFO L226 Difference]: Without dead ends: 64 [2018-11-18 23:49:43,156 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 81 GetRequests, 39 SyntacticMatches, 0 SemanticMatches, 42 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 433 ImplicationChecksByTransitivity, 11.0s TimeCoverageRelationStatistics Valid=177, Invalid=1713, Unknown=2, NotChecked=0, Total=1892 [2018-11-18 23:49:43,156 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 64 states. [2018-11-18 23:49:43,230 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 64 to 55. [2018-11-18 23:49:43,231 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-18 23:49:43,231 INFO L82 GeneralOperation]: Start isEquivalent. First operand 64 states. Second operand 55 states. [2018-11-18 23:49:43,231 INFO L74 IsIncluded]: Start isIncluded. First operand 64 states. Second operand 55 states. [2018-11-18 23:49:43,231 INFO L87 Difference]: Start difference. First operand 64 states. Second operand 55 states. [2018-11-18 23:49:43,235 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-18 23:49:43,235 INFO L93 Difference]: Finished difference Result 64 states and 76 transitions. [2018-11-18 23:49:43,236 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 76 transitions. [2018-11-18 23:49:43,237 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-18 23:49:43,237 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-18 23:49:43,237 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 64 states. [2018-11-18 23:49:43,237 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 64 states. [2018-11-18 23:49:43,241 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-18 23:49:43,241 INFO L93 Difference]: Finished difference Result 64 states and 76 transitions. [2018-11-18 23:49:43,242 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 76 transitions. [2018-11-18 23:49:43,243 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-18 23:49:43,243 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-18 23:49:43,243 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-18 23:49:43,243 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-18 23:49:43,243 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 55 states. [2018-11-18 23:49:43,246 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 65 transitions. [2018-11-18 23:49:43,247 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 65 transitions. Word has length 48 [2018-11-18 23:49:43,247 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-18 23:49:43,247 INFO L480 AbstractCegarLoop]: Abstraction has 55 states and 65 transitions. [2018-11-18 23:49:43,247 INFO L481 AbstractCegarLoop]: Interpolant automaton has 35 states. [2018-11-18 23:49:43,247 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 65 transitions. [2018-11-18 23:49:43,249 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2018-11-18 23:49:43,249 INFO L367 BasicCegarLoop]: Found error trace [2018-11-18 23:49:43,249 INFO L375 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 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] [2018-11-18 23:49:43,249 INFO L423 AbstractCegarLoop]: === Iteration 4 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-18 23:49:43,249 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-18 23:49:43,249 INFO L82 PathProgramCache]: Analyzing trace with hash -1300402238, now seen corresponding path program 1 times [2018-11-18 23:49:43,250 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-18 23:49:43,250 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-18 23:49:43,251 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-18 23:49:43,251 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-18 23:49:43,251 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-18 23:49:43,428 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-18 23:49:44,579 FATAL L292 ToolchainWalker]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.AssertionError: zero is neutral element of plus operator at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.UltimateNormalFormUtils.rootRespectsUltimateNormalForm(UltimateNormalFormUtils.java:87) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.UltimateNormalFormUtils.rootRespectsUltimateNormalForm(UltimateNormalFormUtils.java:131) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.UltimateNormalFormUtils.lambda$0(UltimateNormalFormUtils.java:154) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.SubtermPropertyChecker$MyWalker.walk(SubtermPropertyChecker.java:63) at de.uni_freiburg.informatik.ultimate.logic.NonRecursive.run(NonRecursive.java:122) at de.uni_freiburg.informatik.ultimate.logic.NonRecursive.run(NonRecursive.java:113) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.SubtermPropertyChecker.isPropertySatisfied(SubtermPropertyChecker.java:121) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.UltimateNormalFormUtils.respectsUltimateNormalForm(UltimateNormalFormUtils.java:155) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.predicates.BasicPredicateFactory.newPredicate(BasicPredicateFactory.java:103) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.predicates.PredicateUnifier.constructNewPredicate(PredicateUnifier.java:375) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.predicates.PredicateUnifier.getOrConstructPredicate(PredicateUnifier.java:361) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.predicates.PredicateUnifier.getOrConstructPredicate(PredicateUnifier.java:299) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.NestedInterpolantsBuilder.computePredicates(NestedInterpolantsBuilder.java:592) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.NestedInterpolantsBuilder.(NestedInterpolantsBuilder.java:170) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.InterpolatingTraceCheckCraig.computeInterpolantsTree(InterpolatingTraceCheckCraig.java:271) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.InterpolatingTraceCheckCraig.computeInterpolants(InterpolatingTraceCheckCraig.java:207) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.InterpolatingTraceCheckCraig.(InterpolatingTraceCheckCraig.java:109) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructCraig(TraceCheckConstructor.java:211) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructTraceCheck(TraceCheckConstructor.java:183) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.get(TraceCheckConstructor.java:165) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.MultiTrackRefinementStrategy.getTraceCheck(MultiTrackRefinementStrategy.java:232) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseRefinementStrategy.checkFeasibility(BaseRefinementStrategy.java:223) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseRefinementStrategy.executeStrategy(BaseRefinementStrategy.java:197) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceAbstractionRefinementEngine.(TraceAbstractionRefinementEngine.java:70) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.BasicCegarLoop.isCounterexampleFeasible(BasicCegarLoop.java:429) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterateInternal(AbstractCegarLoop.java:434) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterate(AbstractCegarLoop.java:376) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.iterate(TraceAbstractionStarter.java:312) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:154) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:123) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:123) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:168) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runTool(PluginConnector.java:151) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.run(PluginConnector.java:128) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.executePluginConnector(ToolchainWalker.java:232) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.processPlugin(ToolchainWalker.java:226) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walkUnprotected(ToolchainWalker.java:142) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walk(ToolchainWalker.java:104) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainManager$Toolchain.processToolchain(ToolchainManager.java:316) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) [2018-11-18 23:49:44,584 INFO L168 Benchmark]: Toolchain (without parser) took 24709.31 ms. Allocated memory was 1.6 GB in the beginning and 2.4 GB in the end (delta: 893.9 MB). Free memory was 1.4 GB in the beginning and 1.7 GB in the end (delta: -242.5 MB). Peak memory consumption was 651.4 MB. Max. memory is 7.1 GB. [2018-11-18 23:49:44,586 INFO L168 Benchmark]: CDTParser took 0.18 ms. Allocated memory is still 1.6 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-18 23:49:44,586 INFO L168 Benchmark]: CACSL2BoogieTranslator took 765.14 ms. Allocated memory was 1.6 GB in the beginning and 2.3 GB in the end (delta: 770.2 MB). Free memory was 1.4 GB in the beginning and 2.3 GB in the end (delta: -831.8 MB). Peak memory consumption was 49.5 MB. Max. memory is 7.1 GB. [2018-11-18 23:49:44,587 INFO L168 Benchmark]: Boogie Preprocessor took 122.26 ms. Allocated memory is still 2.3 GB. Free memory was 2.3 GB in the beginning and 2.3 GB in the end (delta: 13.3 MB). Peak memory consumption was 13.3 MB. Max. memory is 7.1 GB. [2018-11-18 23:49:44,588 INFO L168 Benchmark]: RCFGBuilder took 1300.99 ms. Allocated memory is still 2.3 GB. Free memory was 2.3 GB in the beginning and 2.2 GB in the end (delta: 77.3 MB). Peak memory consumption was 77.3 MB. Max. memory is 7.1 GB. [2018-11-18 23:49:44,589 INFO L168 Benchmark]: TraceAbstraction took 22516.46 ms. Allocated memory was 2.3 GB in the beginning and 2.4 GB in the end (delta: 123.7 MB). Free memory was 2.2 GB in the beginning and 1.7 GB in the end (delta: 498.6 MB). Peak memory consumption was 622.4 MB. Max. memory is 7.1 GB. [2018-11-18 23:49:44,593 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - GenericResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.18 ms. Allocated memory is still 1.6 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 765.14 ms. Allocated memory was 1.6 GB in the beginning and 2.3 GB in the end (delta: 770.2 MB). Free memory was 1.4 GB in the beginning and 2.3 GB in the end (delta: -831.8 MB). Peak memory consumption was 49.5 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 122.26 ms. Allocated memory is still 2.3 GB. Free memory was 2.3 GB in the beginning and 2.3 GB in the end (delta: 13.3 MB). Peak memory consumption was 13.3 MB. Max. memory is 7.1 GB. * RCFGBuilder took 1300.99 ms. Allocated memory is still 2.3 GB. Free memory was 2.3 GB in the beginning and 2.2 GB in the end (delta: 77.3 MB). Peak memory consumption was 77.3 MB. Max. memory is 7.1 GB. * TraceAbstraction took 22516.46 ms. Allocated memory was 2.3 GB in the beginning and 2.4 GB in the end (delta: 123.7 MB). Free memory was 2.2 GB in the beginning and 1.7 GB in the end (delta: 498.6 MB). Peak memory consumption was 622.4 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - ExceptionOrErrorResult: AssertionError: zero is neutral element of plus operator de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: AssertionError: zero is neutral element of plus operator: de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.UltimateNormalFormUtils.rootRespectsUltimateNormalForm(UltimateNormalFormUtils.java:87) RESULT: Ultimate could not prove your program: Toolchain returned no result. Received shutdown request...