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/AutomizerCInline_WitnessPrinter.xml -s ../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf -i ../../../trunk/examples/svcomp/list-simple/dll2n_append_unequal_true-unreach-call_true-valid-memsafety.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-61f4311 [2018-11-23 12:56:40,809 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 12:56:40,814 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 12:56:40,827 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 12:56:40,827 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 12:56:40,829 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 12:56:40,830 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 12:56:40,832 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 12:56:40,835 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 12:56:40,836 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 12:56:40,837 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 12:56:40,838 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 12:56:40,839 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 12:56:40,840 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 12:56:40,841 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 12:56:40,841 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 12:56:40,842 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 12:56:40,844 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 12:56:40,846 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 12:56:40,848 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 12:56:40,849 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 12:56:40,850 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 12:56:40,852 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 12:56:40,853 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 12:56:40,853 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 12:56:40,854 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 12:56:40,855 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 12:56:40,856 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 12:56:40,856 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 12:56:40,858 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 12:56:40,858 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 12:56:40,859 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 12:56:40,859 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 12:56:40,859 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 12:56:40,860 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 12:56:40,861 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 12:56:40,861 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-23 12:56:40,889 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 12:56:40,890 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 12:56:40,891 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 12:56:40,891 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 12:56:40,892 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 12:56:40,892 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 12:56:40,892 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 12:56:40,892 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 12:56:40,893 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 12:56:40,893 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 12:56:40,893 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 12:56:40,893 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 12:56:40,893 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 12:56:40,894 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 12:56:40,895 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 12:56:40,895 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 12:56:40,895 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 12:56:40,895 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 12:56:40,895 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 12:56:40,896 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 12:56:40,896 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 12:56:40,896 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 12:56:40,896 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 12:56:40,896 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 12:56:40,898 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 12:56:40,898 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 12:56:40,898 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 12:56:40,898 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-23 12:56:40,899 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 12:56:40,899 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 12:56:40,899 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-23 12:56:40,957 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 12:56:40,976 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 12:56:40,980 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 12:56:40,981 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 12:56:40,982 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 12:56:40,983 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/list-simple/dll2n_append_unequal_true-unreach-call_true-valid-memsafety.i [2018-11-23 12:56:41,049 INFO L221 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9a448d905/fce8181cb714447f9030fb9c7181cd6d/FLAG0cc937ef4 [2018-11-23 12:56:41,654 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 12:56:41,655 INFO L161 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/list-simple/dll2n_append_unequal_true-unreach-call_true-valid-memsafety.i [2018-11-23 12:56:41,674 INFO L355 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9a448d905/fce8181cb714447f9030fb9c7181cd6d/FLAG0cc937ef4 [2018-11-23 12:56:41,911 INFO L363 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9a448d905/fce8181cb714447f9030fb9c7181cd6d [2018-11-23 12:56:41,922 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 12:56:41,924 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 12:56:41,925 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 12:56:41,925 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 12:56:41,929 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 12:56:41,930 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:56:41" (1/1) ... [2018-11-23 12:56:41,933 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@15df8b8f and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:41, skipping insertion in model container [2018-11-23 12:56:41,934 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:56:41" (1/1) ... [2018-11-23 12:56:41,944 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 12:56:41,999 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 12:56:42,385 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:56:42,398 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 12:56:42,492 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:56:42,679 INFO L195 MainTranslator]: Completed translation [2018-11-23 12:56:42,680 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42 WrapperNode [2018-11-23 12:56:42,680 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 12:56:42,681 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 12:56:42,681 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 12:56:42,681 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 12:56:42,691 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42" (1/1) ... [2018-11-23 12:56:42,720 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42" (1/1) ... [2018-11-23 12:56:42,733 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 12:56:42,733 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 12:56:42,733 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 12:56:42,733 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 12:56:42,744 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42" (1/1) ... [2018-11-23 12:56:42,744 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42" (1/1) ... [2018-11-23 12:56:42,751 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42" (1/1) ... [2018-11-23 12:56:42,751 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42" (1/1) ... [2018-11-23 12:56:42,801 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42" (1/1) ... [2018-11-23 12:56:42,816 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42" (1/1) ... [2018-11-23 12:56:42,818 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42" (1/1) ... [2018-11-23 12:56:42,830 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 12:56:42,830 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 12:56:42,830 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 12:56:42,830 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 12:56:42,831 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42" (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-23 12:56:42,909 INFO L130 BoogieDeclarations]: Found specification of procedure dll_destroy [2018-11-23 12:56:42,909 INFO L138 BoogieDeclarations]: Found implementation of procedure dll_destroy [2018-11-23 12:56:42,909 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 12:56:42,909 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-23 12:56:42,910 INFO L130 BoogieDeclarations]: Found specification of procedure exit [2018-11-23 12:56:42,910 INFO L138 BoogieDeclarations]: Found implementation of procedure exit [2018-11-23 12:56:42,910 INFO L130 BoogieDeclarations]: Found specification of procedure dll_append [2018-11-23 12:56:42,910 INFO L138 BoogieDeclarations]: Found implementation of procedure dll_append [2018-11-23 12:56:42,910 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-23 12:56:42,911 INFO L130 BoogieDeclarations]: Found specification of procedure node_create [2018-11-23 12:56:42,911 INFO L138 BoogieDeclarations]: Found implementation of procedure node_create [2018-11-23 12:56:42,911 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 12:56:42,911 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 12:56:42,911 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 12:56:42,915 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 12:56:42,915 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2018-11-23 12:56:42,915 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2018-11-23 12:56:42,916 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-23 12:56:42,916 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2018-11-23 12:56:42,916 INFO L130 BoogieDeclarations]: Found specification of procedure dll_create [2018-11-23 12:56:42,916 INFO L138 BoogieDeclarations]: Found implementation of procedure dll_create [2018-11-23 12:56:42,917 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 12:56:42,917 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 12:56:43,969 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 12:56:43,969 INFO L280 CfgBuilder]: Removed 4 assue(true) statements. [2018-11-23 12:56:43,970 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:56:43 BoogieIcfgContainer [2018-11-23 12:56:43,970 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 12:56:43,971 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 12:56:43,971 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 12:56:43,975 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 12:56:43,975 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 12:56:41" (1/3) ... [2018-11-23 12:56:43,976 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@4e6a100b and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:56:43, skipping insertion in model container [2018-11-23 12:56:43,976 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:42" (2/3) ... [2018-11-23 12:56:43,976 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@4e6a100b and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:56:43, skipping insertion in model container [2018-11-23 12:56:43,977 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:56:43" (3/3) ... [2018-11-23 12:56:43,978 INFO L112 eAbstractionObserver]: Analyzing ICFG dll2n_append_unequal_true-unreach-call_true-valid-memsafety.i [2018-11-23 12:56:43,989 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 12:56:43,997 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 12:56:44,012 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 12:56:44,044 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 12:56:44,045 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 12:56:44,045 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 12:56:44,045 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 12:56:44,045 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 12:56:44,045 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 12:56:44,045 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 12:56:44,046 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 12:56:44,046 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 12:56:44,064 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states. [2018-11-23 12:56:44,072 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 30 [2018-11-23 12:56:44,072 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:56:44,073 INFO L402 BasicCegarLoop]: trace histogram [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-23 12:56:44,076 INFO L423 AbstractCegarLoop]: === Iteration 1 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:56:44,082 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:56:44,083 INFO L82 PathProgramCache]: Analyzing trace with hash -358902487, now seen corresponding path program 1 times [2018-11-23 12:56:44,085 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:56:44,085 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:56:44,138 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:56:44,138 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:56:44,138 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:56:44,189 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:56:44,285 INFO L256 TraceCheckUtils]: 0: Hoare triple {58#true} call ULTIMATE.init(); {58#true} is VALID [2018-11-23 12:56:44,288 INFO L273 TraceCheckUtils]: 1: Hoare triple {58#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {58#true} is VALID [2018-11-23 12:56:44,289 INFO L273 TraceCheckUtils]: 2: Hoare triple {58#true} assume true; {58#true} is VALID [2018-11-23 12:56:44,289 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {58#true} {58#true} #138#return; {58#true} is VALID [2018-11-23 12:56:44,290 INFO L256 TraceCheckUtils]: 4: Hoare triple {58#true} call #t~ret21 := main(); {58#true} is VALID [2018-11-23 12:56:44,290 INFO L273 TraceCheckUtils]: 5: Hoare triple {58#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {58#true} is VALID [2018-11-23 12:56:44,290 INFO L256 TraceCheckUtils]: 6: Hoare triple {58#true} call #t~ret11.base, #t~ret11.offset := dll_create(~len~0, ~data~0); {58#true} is VALID [2018-11-23 12:56:44,291 INFO L273 TraceCheckUtils]: 7: Hoare triple {58#true} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {58#true} is VALID [2018-11-23 12:56:44,293 INFO L273 TraceCheckUtils]: 8: Hoare triple {58#true} assume !true; {59#false} is VALID [2018-11-23 12:56:44,293 INFO L273 TraceCheckUtils]: 9: Hoare triple {59#false} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {59#false} is VALID [2018-11-23 12:56:44,293 INFO L273 TraceCheckUtils]: 10: Hoare triple {59#false} assume true; {59#false} is VALID [2018-11-23 12:56:44,294 INFO L268 TraceCheckUtils]: 11: Hoare quadruple {59#false} {58#true} #128#return; {59#false} is VALID [2018-11-23 12:56:44,294 INFO L273 TraceCheckUtils]: 12: Hoare triple {59#false} call write~init~$Pointer$(#t~ret11.base, #t~ret11.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret11.base, #t~ret11.offset;~uneq~0 := 5; {59#false} is VALID [2018-11-23 12:56:44,295 INFO L256 TraceCheckUtils]: 13: Hoare triple {59#false} call dll_append(~#s~0.base, ~#s~0.offset, ~uneq~0); {58#true} is VALID [2018-11-23 12:56:44,295 INFO L273 TraceCheckUtils]: 14: Hoare triple {58#true} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {58#true} is VALID [2018-11-23 12:56:44,296 INFO L256 TraceCheckUtils]: 15: Hoare triple {58#true} call #t~ret6.base, #t~ret6.offset := node_create(~data); {58#true} is VALID [2018-11-23 12:56:44,296 INFO L273 TraceCheckUtils]: 16: Hoare triple {58#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; {58#true} is VALID [2018-11-23 12:56:44,297 INFO L273 TraceCheckUtils]: 17: Hoare triple {58#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {58#true} is VALID [2018-11-23 12:56:44,297 INFO L273 TraceCheckUtils]: 18: Hoare triple {58#true} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {58#true} is VALID [2018-11-23 12:56:44,297 INFO L273 TraceCheckUtils]: 19: Hoare triple {58#true} assume true; {58#true} is VALID [2018-11-23 12:56:44,298 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {58#true} {58#true} #136#return; {58#true} is VALID [2018-11-23 12:56:44,298 INFO L273 TraceCheckUtils]: 21: Hoare triple {58#true} ~new_last~0.base, ~new_last~0.offset := #t~ret6.base, #t~ret6.offset;havoc #t~ret6.base, #t~ret6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~head.base, ~head.offset, 4); {58#true} is VALID [2018-11-23 12:56:44,299 INFO L273 TraceCheckUtils]: 22: Hoare triple {58#true} assume 0 == #t~mem7.base && 0 == #t~mem7.offset;havoc #t~mem7.base, #t~mem7.offset;call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~head.base, ~head.offset, 4); {58#true} is VALID [2018-11-23 12:56:44,299 INFO L273 TraceCheckUtils]: 23: Hoare triple {58#true} assume true; {58#true} is VALID [2018-11-23 12:56:44,300 INFO L268 TraceCheckUtils]: 24: Hoare quadruple {58#true} {59#false} #130#return; {59#false} is VALID [2018-11-23 12:56:44,300 INFO L273 TraceCheckUtils]: 25: Hoare triple {59#false} call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;~count~0 := 0;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4); {59#false} is VALID [2018-11-23 12:56:44,300 INFO L273 TraceCheckUtils]: 26: Hoare triple {59#false} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset; {59#false} is VALID [2018-11-23 12:56:44,301 INFO L273 TraceCheckUtils]: 27: Hoare triple {59#false} assume ~count~0 != 1 + ~len~0; {59#false} is VALID [2018-11-23 12:56:44,301 INFO L273 TraceCheckUtils]: 28: Hoare triple {59#false} assume !false; {59#false} is VALID [2018-11-23 12:56:44,308 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:56:44,311 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:56:44,311 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-23 12:56:44,318 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 29 [2018-11-23 12:56:44,324 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:56:44,328 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2018-11-23 12:56:44,636 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 29 edges. 29 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:56:44,636 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-23 12:56:44,644 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-23 12:56:44,645 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 12:56:44,647 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 2 states. [2018-11-23 12:56:45,113 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:45,114 INFO L93 Difference]: Finished difference Result 97 states and 125 transitions. [2018-11-23 12:56:45,114 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-23 12:56:45,114 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 29 [2018-11-23 12:56:45,115 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:56:45,116 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 12:56:45,129 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 125 transitions. [2018-11-23 12:56:45,129 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 12:56:45,137 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 125 transitions. [2018-11-23 12:56:45,137 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 125 transitions. [2018-11-23 12:56:45,867 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 125 edges. 125 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:56:45,881 INFO L225 Difference]: With dead ends: 97 [2018-11-23 12:56:45,882 INFO L226 Difference]: Without dead ends: 42 [2018-11-23 12:56:45,885 INFO L631 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-23 12:56:45,901 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 42 states. [2018-11-23 12:56:45,934 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 42 to 42. [2018-11-23 12:56:45,934 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:56:45,935 INFO L82 GeneralOperation]: Start isEquivalent. First operand 42 states. Second operand 42 states. [2018-11-23 12:56:45,935 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand 42 states. [2018-11-23 12:56:45,936 INFO L87 Difference]: Start difference. First operand 42 states. Second operand 42 states. [2018-11-23 12:56:45,942 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:45,942 INFO L93 Difference]: Finished difference Result 42 states and 50 transitions. [2018-11-23 12:56:45,942 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 50 transitions. [2018-11-23 12:56:45,943 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:56:45,943 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:56:45,944 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand 42 states. [2018-11-23 12:56:45,944 INFO L87 Difference]: Start difference. First operand 42 states. Second operand 42 states. [2018-11-23 12:56:45,949 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:45,949 INFO L93 Difference]: Finished difference Result 42 states and 50 transitions. [2018-11-23 12:56:45,950 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 50 transitions. [2018-11-23 12:56:45,950 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:56:45,951 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:56:45,951 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:56:45,951 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:56:45,951 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 42 states. [2018-11-23 12:56:45,955 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 42 states to 42 states and 50 transitions. [2018-11-23 12:56:45,957 INFO L78 Accepts]: Start accepts. Automaton has 42 states and 50 transitions. Word has length 29 [2018-11-23 12:56:45,957 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:56:45,957 INFO L480 AbstractCegarLoop]: Abstraction has 42 states and 50 transitions. [2018-11-23 12:56:45,957 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-23 12:56:45,958 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 50 transitions. [2018-11-23 12:56:45,959 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 30 [2018-11-23 12:56:45,959 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:56:45,959 INFO L402 BasicCegarLoop]: trace histogram [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-23 12:56:45,960 INFO L423 AbstractCegarLoop]: === Iteration 2 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:56:45,960 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:56:45,960 INFO L82 PathProgramCache]: Analyzing trace with hash 1188502940, now seen corresponding path program 1 times [2018-11-23 12:56:45,961 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:56:45,961 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:56:45,963 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:56:45,963 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:56:45,963 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:56:46,010 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:56:46,186 INFO L256 TraceCheckUtils]: 0: Hoare triple {334#true} call ULTIMATE.init(); {334#true} is VALID [2018-11-23 12:56:46,187 INFO L273 TraceCheckUtils]: 1: Hoare triple {334#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {334#true} is VALID [2018-11-23 12:56:46,187 INFO L273 TraceCheckUtils]: 2: Hoare triple {334#true} assume true; {334#true} is VALID [2018-11-23 12:56:46,187 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {334#true} {334#true} #138#return; {334#true} is VALID [2018-11-23 12:56:46,188 INFO L256 TraceCheckUtils]: 4: Hoare triple {334#true} call #t~ret21 := main(); {334#true} is VALID [2018-11-23 12:56:46,189 INFO L273 TraceCheckUtils]: 5: Hoare triple {334#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {336#(<= 2 main_~len~0)} is VALID [2018-11-23 12:56:46,189 INFO L256 TraceCheckUtils]: 6: Hoare triple {336#(<= 2 main_~len~0)} call #t~ret11.base, #t~ret11.offset := dll_create(~len~0, ~data~0); {334#true} is VALID [2018-11-23 12:56:46,208 INFO L273 TraceCheckUtils]: 7: Hoare triple {334#true} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {337#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:56:46,221 INFO L273 TraceCheckUtils]: 8: Hoare triple {337#(<= |dll_create_#in~len| dll_create_~len)} assume !(~len > 0); {338#(<= |dll_create_#in~len| 0)} is VALID [2018-11-23 12:56:46,223 INFO L273 TraceCheckUtils]: 9: Hoare triple {338#(<= |dll_create_#in~len| 0)} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {338#(<= |dll_create_#in~len| 0)} is VALID [2018-11-23 12:56:46,226 INFO L273 TraceCheckUtils]: 10: Hoare triple {338#(<= |dll_create_#in~len| 0)} assume true; {338#(<= |dll_create_#in~len| 0)} is VALID [2018-11-23 12:56:46,237 INFO L268 TraceCheckUtils]: 11: Hoare quadruple {338#(<= |dll_create_#in~len| 0)} {336#(<= 2 main_~len~0)} #128#return; {335#false} is VALID [2018-11-23 12:56:46,237 INFO L273 TraceCheckUtils]: 12: Hoare triple {335#false} call write~init~$Pointer$(#t~ret11.base, #t~ret11.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret11.base, #t~ret11.offset;~uneq~0 := 5; {335#false} is VALID [2018-11-23 12:56:46,238 INFO L256 TraceCheckUtils]: 13: Hoare triple {335#false} call dll_append(~#s~0.base, ~#s~0.offset, ~uneq~0); {334#true} is VALID [2018-11-23 12:56:46,238 INFO L273 TraceCheckUtils]: 14: Hoare triple {334#true} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {334#true} is VALID [2018-11-23 12:56:46,238 INFO L256 TraceCheckUtils]: 15: Hoare triple {334#true} call #t~ret6.base, #t~ret6.offset := node_create(~data); {334#true} is VALID [2018-11-23 12:56:46,238 INFO L273 TraceCheckUtils]: 16: Hoare triple {334#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; {334#true} is VALID [2018-11-23 12:56:46,239 INFO L273 TraceCheckUtils]: 17: Hoare triple {334#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {334#true} is VALID [2018-11-23 12:56:46,239 INFO L273 TraceCheckUtils]: 18: Hoare triple {334#true} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {334#true} is VALID [2018-11-23 12:56:46,239 INFO L273 TraceCheckUtils]: 19: Hoare triple {334#true} assume true; {334#true} is VALID [2018-11-23 12:56:46,239 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {334#true} {334#true} #136#return; {334#true} is VALID [2018-11-23 12:56:46,240 INFO L273 TraceCheckUtils]: 21: Hoare triple {334#true} ~new_last~0.base, ~new_last~0.offset := #t~ret6.base, #t~ret6.offset;havoc #t~ret6.base, #t~ret6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~head.base, ~head.offset, 4); {334#true} is VALID [2018-11-23 12:56:46,240 INFO L273 TraceCheckUtils]: 22: Hoare triple {334#true} assume 0 == #t~mem7.base && 0 == #t~mem7.offset;havoc #t~mem7.base, #t~mem7.offset;call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~head.base, ~head.offset, 4); {334#true} is VALID [2018-11-23 12:56:46,240 INFO L273 TraceCheckUtils]: 23: Hoare triple {334#true} assume true; {334#true} is VALID [2018-11-23 12:56:46,241 INFO L268 TraceCheckUtils]: 24: Hoare quadruple {334#true} {335#false} #130#return; {335#false} is VALID [2018-11-23 12:56:46,241 INFO L273 TraceCheckUtils]: 25: Hoare triple {335#false} call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;~count~0 := 0;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4); {335#false} is VALID [2018-11-23 12:56:46,241 INFO L273 TraceCheckUtils]: 26: Hoare triple {335#false} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset; {335#false} is VALID [2018-11-23 12:56:46,242 INFO L273 TraceCheckUtils]: 27: Hoare triple {335#false} assume ~count~0 != 1 + ~len~0; {335#false} is VALID [2018-11-23 12:56:46,242 INFO L273 TraceCheckUtils]: 28: Hoare triple {335#false} assume !false; {335#false} is VALID [2018-11-23 12:56:46,244 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:56:46,244 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:56:46,245 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 12:56:46,249 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 29 [2018-11-23 12:56:46,250 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:56:46,250 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2018-11-23 12:56:46,327 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 29 edges. 29 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:56:46,328 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 12:56:46,328 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 12:56:46,328 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:56:46,329 INFO L87 Difference]: Start difference. First operand 42 states and 50 transitions. Second operand 5 states. [2018-11-23 12:56:46,758 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:46,759 INFO L93 Difference]: Finished difference Result 76 states and 92 transitions. [2018-11-23 12:56:46,759 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 12:56:46,759 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 29 [2018-11-23 12:56:46,759 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:56:46,759 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:56:46,765 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 92 transitions. [2018-11-23 12:56:46,765 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:56:46,769 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 92 transitions. [2018-11-23 12:56:46,770 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 92 transitions. [2018-11-23 12:56:46,994 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 92 edges. 92 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:56:46,998 INFO L225 Difference]: With dead ends: 76 [2018-11-23 12:56:46,998 INFO L226 Difference]: Without dead ends: 47 [2018-11-23 12:56:46,999 INFO L631 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-23 12:56:47,000 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2018-11-23 12:56:47,040 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 43. [2018-11-23 12:56:47,041 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:56:47,041 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand 43 states. [2018-11-23 12:56:47,041 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 43 states. [2018-11-23 12:56:47,041 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 43 states. [2018-11-23 12:56:47,045 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:47,046 INFO L93 Difference]: Finished difference Result 47 states and 57 transitions. [2018-11-23 12:56:47,046 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 57 transitions. [2018-11-23 12:56:47,047 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:56:47,047 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:56:47,047 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 47 states. [2018-11-23 12:56:47,047 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 47 states. [2018-11-23 12:56:47,052 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:47,052 INFO L93 Difference]: Finished difference Result 47 states and 57 transitions. [2018-11-23 12:56:47,052 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 57 transitions. [2018-11-23 12:56:47,053 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:56:47,053 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:56:47,054 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:56:47,054 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:56:47,054 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 43 states. [2018-11-23 12:56:47,057 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 51 transitions. [2018-11-23 12:56:47,057 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 51 transitions. Word has length 29 [2018-11-23 12:56:47,058 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:56:47,058 INFO L480 AbstractCegarLoop]: Abstraction has 43 states and 51 transitions. [2018-11-23 12:56:47,058 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 12:56:47,058 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 51 transitions. [2018-11-23 12:56:47,060 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2018-11-23 12:56:47,060 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:56:47,060 INFO L402 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, 1, 1] [2018-11-23 12:56:47,060 INFO L423 AbstractCegarLoop]: === Iteration 3 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:56:47,060 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:56:47,061 INFO L82 PathProgramCache]: Analyzing trace with hash -1278937424, now seen corresponding path program 1 times [2018-11-23 12:56:47,061 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:56:47,061 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:56:47,063 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:56:47,063 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:56:47,063 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:56:47,089 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:56:47,181 INFO L256 TraceCheckUtils]: 0: Hoare triple {596#true} call ULTIMATE.init(); {596#true} is VALID [2018-11-23 12:56:47,181 INFO L273 TraceCheckUtils]: 1: Hoare triple {596#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {596#true} is VALID [2018-11-23 12:56:47,182 INFO L273 TraceCheckUtils]: 2: Hoare triple {596#true} assume true; {596#true} is VALID [2018-11-23 12:56:47,182 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {596#true} {596#true} #138#return; {596#true} is VALID [2018-11-23 12:56:47,182 INFO L256 TraceCheckUtils]: 4: Hoare triple {596#true} call #t~ret21 := main(); {596#true} is VALID [2018-11-23 12:56:47,183 INFO L273 TraceCheckUtils]: 5: Hoare triple {596#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {596#true} is VALID [2018-11-23 12:56:47,183 INFO L256 TraceCheckUtils]: 6: Hoare triple {596#true} call #t~ret11.base, #t~ret11.offset := dll_create(~len~0, ~data~0); {596#true} is VALID [2018-11-23 12:56:47,185 INFO L273 TraceCheckUtils]: 7: Hoare triple {596#true} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {598#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} is VALID [2018-11-23 12:56:47,191 INFO L273 TraceCheckUtils]: 8: Hoare triple {598#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} assume !!(~len > 0); {598#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} is VALID [2018-11-23 12:56:47,191 INFO L256 TraceCheckUtils]: 9: Hoare triple {598#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} call #t~ret3.base, #t~ret3.offset := node_create(~data); {596#true} is VALID [2018-11-23 12:56:47,191 INFO L273 TraceCheckUtils]: 10: Hoare triple {596#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; {596#true} is VALID [2018-11-23 12:56:47,192 INFO L273 TraceCheckUtils]: 11: Hoare triple {596#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {596#true} is VALID [2018-11-23 12:56:47,192 INFO L273 TraceCheckUtils]: 12: Hoare triple {596#true} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {596#true} is VALID [2018-11-23 12:56:47,192 INFO L273 TraceCheckUtils]: 13: Hoare triple {596#true} assume true; {596#true} is VALID [2018-11-23 12:56:47,193 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {596#true} {598#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} #134#return; {598#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} is VALID [2018-11-23 12:56:47,201 INFO L273 TraceCheckUtils]: 15: Hoare triple {598#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} ~new_head~0.base, ~new_head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call write~int(~data, ~new_head~0.base, ~new_head~0.offset, 4);call write~$Pointer$(~head~0.base, ~head~0.offset, ~new_head~0.base, 4 + ~new_head~0.offset, 4); {598#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} is VALID [2018-11-23 12:56:47,202 INFO L273 TraceCheckUtils]: 16: Hoare triple {598#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} assume ~head~0.base != 0 || ~head~0.offset != 0;call write~$Pointer$(~new_head~0.base, ~new_head~0.offset, ~head~0.base, 8 + ~head~0.offset, 4); {597#false} is VALID [2018-11-23 12:56:47,202 INFO L273 TraceCheckUtils]: 17: Hoare triple {597#false} ~head~0.base, ~head~0.offset := ~new_head~0.base, ~new_head~0.offset;#t~post4 := ~len;~len := #t~post4 - 1;havoc #t~post4; {597#false} is VALID [2018-11-23 12:56:47,203 INFO L273 TraceCheckUtils]: 18: Hoare triple {597#false} assume !(~len > 0); {597#false} is VALID [2018-11-23 12:56:47,203 INFO L273 TraceCheckUtils]: 19: Hoare triple {597#false} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {597#false} is VALID [2018-11-23 12:56:47,203 INFO L273 TraceCheckUtils]: 20: Hoare triple {597#false} assume true; {597#false} is VALID [2018-11-23 12:56:47,204 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {597#false} {596#true} #128#return; {597#false} is VALID [2018-11-23 12:56:47,204 INFO L273 TraceCheckUtils]: 22: Hoare triple {597#false} call write~init~$Pointer$(#t~ret11.base, #t~ret11.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret11.base, #t~ret11.offset;~uneq~0 := 5; {597#false} is VALID [2018-11-23 12:56:47,204 INFO L256 TraceCheckUtils]: 23: Hoare triple {597#false} call dll_append(~#s~0.base, ~#s~0.offset, ~uneq~0); {596#true} is VALID [2018-11-23 12:56:47,205 INFO L273 TraceCheckUtils]: 24: Hoare triple {596#true} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {596#true} is VALID [2018-11-23 12:56:47,205 INFO L256 TraceCheckUtils]: 25: Hoare triple {596#true} call #t~ret6.base, #t~ret6.offset := node_create(~data); {596#true} is VALID [2018-11-23 12:56:47,205 INFO L273 TraceCheckUtils]: 26: Hoare triple {596#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; {596#true} is VALID [2018-11-23 12:56:47,206 INFO L273 TraceCheckUtils]: 27: Hoare triple {596#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {596#true} is VALID [2018-11-23 12:56:47,206 INFO L273 TraceCheckUtils]: 28: Hoare triple {596#true} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {596#true} is VALID [2018-11-23 12:56:47,206 INFO L273 TraceCheckUtils]: 29: Hoare triple {596#true} assume true; {596#true} is VALID [2018-11-23 12:56:47,207 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {596#true} {596#true} #136#return; {596#true} is VALID [2018-11-23 12:56:47,207 INFO L273 TraceCheckUtils]: 31: Hoare triple {596#true} ~new_last~0.base, ~new_last~0.offset := #t~ret6.base, #t~ret6.offset;havoc #t~ret6.base, #t~ret6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~head.base, ~head.offset, 4); {596#true} is VALID [2018-11-23 12:56:47,207 INFO L273 TraceCheckUtils]: 32: Hoare triple {596#true} assume 0 == #t~mem7.base && 0 == #t~mem7.offset;havoc #t~mem7.base, #t~mem7.offset;call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~head.base, ~head.offset, 4); {596#true} is VALID [2018-11-23 12:56:47,208 INFO L273 TraceCheckUtils]: 33: Hoare triple {596#true} assume true; {596#true} is VALID [2018-11-23 12:56:47,208 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {596#true} {597#false} #130#return; {597#false} is VALID [2018-11-23 12:56:47,208 INFO L273 TraceCheckUtils]: 35: Hoare triple {597#false} call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;~count~0 := 0;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4); {597#false} is VALID [2018-11-23 12:56:47,208 INFO L273 TraceCheckUtils]: 36: Hoare triple {597#false} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset; {597#false} is VALID [2018-11-23 12:56:47,209 INFO L273 TraceCheckUtils]: 37: Hoare triple {597#false} assume ~count~0 != 1 + ~len~0; {597#false} is VALID [2018-11-23 12:56:47,209 INFO L273 TraceCheckUtils]: 38: Hoare triple {597#false} assume !false; {597#false} is VALID [2018-11-23 12:56:47,211 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-23 12:56:47,212 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:56:47,212 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 12:56:47,212 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 39 [2018-11-23 12:56:47,213 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:56:47,213 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2018-11-23 12:56:47,296 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 35 edges. 35 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:56:47,297 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 12:56:47,297 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 12:56:47,298 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 12:56:47,298 INFO L87 Difference]: Start difference. First operand 43 states and 51 transitions. Second operand 3 states. [2018-11-23 12:56:47,456 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:47,457 INFO L93 Difference]: Finished difference Result 81 states and 99 transitions. [2018-11-23 12:56:47,457 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 12:56:47,457 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 39 [2018-11-23 12:56:47,458 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:56:47,458 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 12:56:47,461 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 99 transitions. [2018-11-23 12:56:47,461 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 12:56:47,464 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 99 transitions. [2018-11-23 12:56:47,465 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 99 transitions. [2018-11-23 12:56:47,640 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:56:47,643 INFO L225 Difference]: With dead ends: 81 [2018-11-23 12:56:47,644 INFO L226 Difference]: Without dead ends: 47 [2018-11-23 12:56:47,645 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 3 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 12:56:47,645 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2018-11-23 12:56:47,687 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 46. [2018-11-23 12:56:47,687 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:56:47,688 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand 46 states. [2018-11-23 12:56:47,688 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 46 states. [2018-11-23 12:56:47,688 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 46 states. [2018-11-23 12:56:47,691 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:47,691 INFO L93 Difference]: Finished difference Result 47 states and 56 transitions. [2018-11-23 12:56:47,692 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 56 transitions. [2018-11-23 12:56:47,693 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:56:47,693 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:56:47,693 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 47 states. [2018-11-23 12:56:47,693 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 47 states. [2018-11-23 12:56:47,696 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:47,697 INFO L93 Difference]: Finished difference Result 47 states and 56 transitions. [2018-11-23 12:56:47,697 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 56 transitions. [2018-11-23 12:56:47,698 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:56:47,698 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:56:47,698 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:56:47,698 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:56:47,698 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 46 states. [2018-11-23 12:56:47,701 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 46 states to 46 states and 55 transitions. [2018-11-23 12:56:47,701 INFO L78 Accepts]: Start accepts. Automaton has 46 states and 55 transitions. Word has length 39 [2018-11-23 12:56:47,702 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:56:47,702 INFO L480 AbstractCegarLoop]: Abstraction has 46 states and 55 transitions. [2018-11-23 12:56:47,702 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 12:56:47,702 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 55 transitions. [2018-11-23 12:56:47,703 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2018-11-23 12:56:47,704 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:56:47,704 INFO L402 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, 1, 1] [2018-11-23 12:56:47,704 INFO L423 AbstractCegarLoop]: === Iteration 4 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:56:47,704 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:56:47,705 INFO L82 PathProgramCache]: Analyzing trace with hash 1210591538, now seen corresponding path program 1 times [2018-11-23 12:56:47,705 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:56:47,705 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:56:47,707 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:56:47,707 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:56:47,707 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:56:47,737 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:56:47,854 INFO L256 TraceCheckUtils]: 0: Hoare triple {865#true} call ULTIMATE.init(); {865#true} is VALID [2018-11-23 12:56:47,854 INFO L273 TraceCheckUtils]: 1: Hoare triple {865#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {865#true} is VALID [2018-11-23 12:56:47,855 INFO L273 TraceCheckUtils]: 2: Hoare triple {865#true} assume true; {865#true} is VALID [2018-11-23 12:56:47,855 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {865#true} {865#true} #138#return; {865#true} is VALID [2018-11-23 12:56:47,855 INFO L256 TraceCheckUtils]: 4: Hoare triple {865#true} call #t~ret21 := main(); {865#true} is VALID [2018-11-23 12:56:47,856 INFO L273 TraceCheckUtils]: 5: Hoare triple {865#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {867#(<= 2 main_~len~0)} is VALID [2018-11-23 12:56:47,856 INFO L256 TraceCheckUtils]: 6: Hoare triple {867#(<= 2 main_~len~0)} call #t~ret11.base, #t~ret11.offset := dll_create(~len~0, ~data~0); {865#true} is VALID [2018-11-23 12:56:47,861 INFO L273 TraceCheckUtils]: 7: Hoare triple {865#true} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {868#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:56:47,861 INFO L273 TraceCheckUtils]: 8: Hoare triple {868#(<= |dll_create_#in~len| dll_create_~len)} assume !!(~len > 0); {868#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:56:47,862 INFO L256 TraceCheckUtils]: 9: Hoare triple {868#(<= |dll_create_#in~len| dll_create_~len)} call #t~ret3.base, #t~ret3.offset := node_create(~data); {865#true} is VALID [2018-11-23 12:56:47,862 INFO L273 TraceCheckUtils]: 10: Hoare triple {865#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; {865#true} is VALID [2018-11-23 12:56:47,862 INFO L273 TraceCheckUtils]: 11: Hoare triple {865#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {865#true} is VALID [2018-11-23 12:56:47,862 INFO L273 TraceCheckUtils]: 12: Hoare triple {865#true} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {865#true} is VALID [2018-11-23 12:56:47,863 INFO L273 TraceCheckUtils]: 13: Hoare triple {865#true} assume true; {865#true} is VALID [2018-11-23 12:56:47,871 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {865#true} {868#(<= |dll_create_#in~len| dll_create_~len)} #134#return; {868#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:56:47,880 INFO L273 TraceCheckUtils]: 15: Hoare triple {868#(<= |dll_create_#in~len| dll_create_~len)} ~new_head~0.base, ~new_head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call write~int(~data, ~new_head~0.base, ~new_head~0.offset, 4);call write~$Pointer$(~head~0.base, ~head~0.offset, ~new_head~0.base, 4 + ~new_head~0.offset, 4); {868#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:56:47,881 INFO L273 TraceCheckUtils]: 16: Hoare triple {868#(<= |dll_create_#in~len| dll_create_~len)} assume !(~head~0.base != 0 || ~head~0.offset != 0); {868#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:56:47,882 INFO L273 TraceCheckUtils]: 17: Hoare triple {868#(<= |dll_create_#in~len| dll_create_~len)} ~head~0.base, ~head~0.offset := ~new_head~0.base, ~new_head~0.offset;#t~post4 := ~len;~len := #t~post4 - 1;havoc #t~post4; {869#(<= |dll_create_#in~len| (+ dll_create_~len 1))} is VALID [2018-11-23 12:56:47,884 INFO L273 TraceCheckUtils]: 18: Hoare triple {869#(<= |dll_create_#in~len| (+ dll_create_~len 1))} assume !(~len > 0); {870#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:56:47,884 INFO L273 TraceCheckUtils]: 19: Hoare triple {870#(<= |dll_create_#in~len| 1)} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {870#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:56:47,886 INFO L273 TraceCheckUtils]: 20: Hoare triple {870#(<= |dll_create_#in~len| 1)} assume true; {870#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:56:47,888 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {870#(<= |dll_create_#in~len| 1)} {867#(<= 2 main_~len~0)} #128#return; {866#false} is VALID [2018-11-23 12:56:47,888 INFO L273 TraceCheckUtils]: 22: Hoare triple {866#false} call write~init~$Pointer$(#t~ret11.base, #t~ret11.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret11.base, #t~ret11.offset;~uneq~0 := 5; {866#false} is VALID [2018-11-23 12:56:47,888 INFO L256 TraceCheckUtils]: 23: Hoare triple {866#false} call dll_append(~#s~0.base, ~#s~0.offset, ~uneq~0); {865#true} is VALID [2018-11-23 12:56:47,889 INFO L273 TraceCheckUtils]: 24: Hoare triple {865#true} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {865#true} is VALID [2018-11-23 12:56:47,890 INFO L256 TraceCheckUtils]: 25: Hoare triple {865#true} call #t~ret6.base, #t~ret6.offset := node_create(~data); {865#true} is VALID [2018-11-23 12:56:47,890 INFO L273 TraceCheckUtils]: 26: Hoare triple {865#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; {865#true} is VALID [2018-11-23 12:56:47,891 INFO L273 TraceCheckUtils]: 27: Hoare triple {865#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {865#true} is VALID [2018-11-23 12:56:47,891 INFO L273 TraceCheckUtils]: 28: Hoare triple {865#true} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {865#true} is VALID [2018-11-23 12:56:47,892 INFO L273 TraceCheckUtils]: 29: Hoare triple {865#true} assume true; {865#true} is VALID [2018-11-23 12:56:47,892 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {865#true} {865#true} #136#return; {865#true} is VALID [2018-11-23 12:56:47,893 INFO L273 TraceCheckUtils]: 31: Hoare triple {865#true} ~new_last~0.base, ~new_last~0.offset := #t~ret6.base, #t~ret6.offset;havoc #t~ret6.base, #t~ret6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~head.base, ~head.offset, 4); {865#true} is VALID [2018-11-23 12:56:47,893 INFO L273 TraceCheckUtils]: 32: Hoare triple {865#true} assume 0 == #t~mem7.base && 0 == #t~mem7.offset;havoc #t~mem7.base, #t~mem7.offset;call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~head.base, ~head.offset, 4); {865#true} is VALID [2018-11-23 12:56:47,894 INFO L273 TraceCheckUtils]: 33: Hoare triple {865#true} assume true; {865#true} is VALID [2018-11-23 12:56:47,894 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {865#true} {866#false} #130#return; {866#false} is VALID [2018-11-23 12:56:47,894 INFO L273 TraceCheckUtils]: 35: Hoare triple {866#false} call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;~count~0 := 0;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4); {866#false} is VALID [2018-11-23 12:56:47,895 INFO L273 TraceCheckUtils]: 36: Hoare triple {866#false} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset; {866#false} is VALID [2018-11-23 12:56:47,895 INFO L273 TraceCheckUtils]: 37: Hoare triple {866#false} assume ~count~0 != 1 + ~len~0; {866#false} is VALID [2018-11-23 12:56:47,895 INFO L273 TraceCheckUtils]: 38: Hoare triple {866#false} assume !false; {866#false} is VALID [2018-11-23 12:56:47,898 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-23 12:56:47,906 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:56:47,906 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-23 12:56:47,929 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:56:47,998 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:56:48,034 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:56:48,041 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:56:48,375 INFO L256 TraceCheckUtils]: 0: Hoare triple {865#true} call ULTIMATE.init(); {865#true} is VALID [2018-11-23 12:56:48,376 INFO L273 TraceCheckUtils]: 1: Hoare triple {865#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {865#true} is VALID [2018-11-23 12:56:48,376 INFO L273 TraceCheckUtils]: 2: Hoare triple {865#true} assume true; {865#true} is VALID [2018-11-23 12:56:48,377 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {865#true} {865#true} #138#return; {865#true} is VALID [2018-11-23 12:56:48,377 INFO L256 TraceCheckUtils]: 4: Hoare triple {865#true} call #t~ret21 := main(); {865#true} is VALID [2018-11-23 12:56:48,385 INFO L273 TraceCheckUtils]: 5: Hoare triple {865#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {867#(<= 2 main_~len~0)} is VALID [2018-11-23 12:56:48,385 INFO L256 TraceCheckUtils]: 6: Hoare triple {867#(<= 2 main_~len~0)} call #t~ret11.base, #t~ret11.offset := dll_create(~len~0, ~data~0); {865#true} is VALID [2018-11-23 12:56:48,386 INFO L273 TraceCheckUtils]: 7: Hoare triple {865#true} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {868#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:56:48,387 INFO L273 TraceCheckUtils]: 8: Hoare triple {868#(<= |dll_create_#in~len| dll_create_~len)} assume !!(~len > 0); {868#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:56:48,387 INFO L256 TraceCheckUtils]: 9: Hoare triple {868#(<= |dll_create_#in~len| dll_create_~len)} call #t~ret3.base, #t~ret3.offset := node_create(~data); {865#true} is VALID [2018-11-23 12:56:48,387 INFO L273 TraceCheckUtils]: 10: Hoare triple {865#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; {865#true} is VALID [2018-11-23 12:56:48,388 INFO L273 TraceCheckUtils]: 11: Hoare triple {865#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {865#true} is VALID [2018-11-23 12:56:48,388 INFO L273 TraceCheckUtils]: 12: Hoare triple {865#true} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {865#true} is VALID [2018-11-23 12:56:48,388 INFO L273 TraceCheckUtils]: 13: Hoare triple {865#true} assume true; {865#true} is VALID [2018-11-23 12:56:48,392 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {865#true} {868#(<= |dll_create_#in~len| dll_create_~len)} #134#return; {868#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:56:48,393 INFO L273 TraceCheckUtils]: 15: Hoare triple {868#(<= |dll_create_#in~len| dll_create_~len)} ~new_head~0.base, ~new_head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call write~int(~data, ~new_head~0.base, ~new_head~0.offset, 4);call write~$Pointer$(~head~0.base, ~head~0.offset, ~new_head~0.base, 4 + ~new_head~0.offset, 4); {868#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:56:48,394 INFO L273 TraceCheckUtils]: 16: Hoare triple {868#(<= |dll_create_#in~len| dll_create_~len)} assume !(~head~0.base != 0 || ~head~0.offset != 0); {868#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:56:48,399 INFO L273 TraceCheckUtils]: 17: Hoare triple {868#(<= |dll_create_#in~len| dll_create_~len)} ~head~0.base, ~head~0.offset := ~new_head~0.base, ~new_head~0.offset;#t~post4 := ~len;~len := #t~post4 - 1;havoc #t~post4; {869#(<= |dll_create_#in~len| (+ dll_create_~len 1))} is VALID [2018-11-23 12:56:48,399 INFO L273 TraceCheckUtils]: 18: Hoare triple {869#(<= |dll_create_#in~len| (+ dll_create_~len 1))} assume !(~len > 0); {870#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:56:48,400 INFO L273 TraceCheckUtils]: 19: Hoare triple {870#(<= |dll_create_#in~len| 1)} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {870#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:56:48,400 INFO L273 TraceCheckUtils]: 20: Hoare triple {870#(<= |dll_create_#in~len| 1)} assume true; {870#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:56:48,401 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {870#(<= |dll_create_#in~len| 1)} {867#(<= 2 main_~len~0)} #128#return; {866#false} is VALID [2018-11-23 12:56:48,402 INFO L273 TraceCheckUtils]: 22: Hoare triple {866#false} call write~init~$Pointer$(#t~ret11.base, #t~ret11.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret11.base, #t~ret11.offset;~uneq~0 := 5; {866#false} is VALID [2018-11-23 12:56:48,402 INFO L256 TraceCheckUtils]: 23: Hoare triple {866#false} call dll_append(~#s~0.base, ~#s~0.offset, ~uneq~0); {866#false} is VALID [2018-11-23 12:56:48,402 INFO L273 TraceCheckUtils]: 24: Hoare triple {866#false} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {866#false} is VALID [2018-11-23 12:56:48,403 INFO L256 TraceCheckUtils]: 25: Hoare triple {866#false} call #t~ret6.base, #t~ret6.offset := node_create(~data); {866#false} is VALID [2018-11-23 12:56:48,403 INFO L273 TraceCheckUtils]: 26: Hoare triple {866#false} ~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; {866#false} is VALID [2018-11-23 12:56:48,403 INFO L273 TraceCheckUtils]: 27: Hoare triple {866#false} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {866#false} is VALID [2018-11-23 12:56:48,404 INFO L273 TraceCheckUtils]: 28: Hoare triple {866#false} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {866#false} is VALID [2018-11-23 12:56:48,404 INFO L273 TraceCheckUtils]: 29: Hoare triple {866#false} assume true; {866#false} is VALID [2018-11-23 12:56:48,404 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {866#false} {866#false} #136#return; {866#false} is VALID [2018-11-23 12:56:48,404 INFO L273 TraceCheckUtils]: 31: Hoare triple {866#false} ~new_last~0.base, ~new_last~0.offset := #t~ret6.base, #t~ret6.offset;havoc #t~ret6.base, #t~ret6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~head.base, ~head.offset, 4); {866#false} is VALID [2018-11-23 12:56:48,405 INFO L273 TraceCheckUtils]: 32: Hoare triple {866#false} assume 0 == #t~mem7.base && 0 == #t~mem7.offset;havoc #t~mem7.base, #t~mem7.offset;call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~head.base, ~head.offset, 4); {866#false} is VALID [2018-11-23 12:56:48,405 INFO L273 TraceCheckUtils]: 33: Hoare triple {866#false} assume true; {866#false} is VALID [2018-11-23 12:56:48,405 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {866#false} {866#false} #130#return; {866#false} is VALID [2018-11-23 12:56:48,405 INFO L273 TraceCheckUtils]: 35: Hoare triple {866#false} call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;~count~0 := 0;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4); {866#false} is VALID [2018-11-23 12:56:48,406 INFO L273 TraceCheckUtils]: 36: Hoare triple {866#false} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset; {866#false} is VALID [2018-11-23 12:56:48,406 INFO L273 TraceCheckUtils]: 37: Hoare triple {866#false} assume ~count~0 != 1 + ~len~0; {866#false} is VALID [2018-11-23 12:56:48,406 INFO L273 TraceCheckUtils]: 38: Hoare triple {866#false} assume !false; {866#false} is VALID [2018-11-23 12:56:48,409 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:56:48,436 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:56:48,436 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 6] total 6 [2018-11-23 12:56:48,437 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 39 [2018-11-23 12:56:48,437 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:56:48,438 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2018-11-23 12:56:48,629 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:56:48,629 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 12:56:48,629 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 12:56:48,630 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=10, Invalid=20, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:56:48,630 INFO L87 Difference]: Start difference. First operand 46 states and 55 transitions. Second operand 6 states. [2018-11-23 12:56:49,284 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:49,284 INFO L93 Difference]: Finished difference Result 81 states and 98 transitions. [2018-11-23 12:56:49,284 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 12:56:49,285 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 39 [2018-11-23 12:56:49,285 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:56:49,285 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 12:56:49,289 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 98 transitions. [2018-11-23 12:56:49,289 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 12:56:49,292 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 98 transitions. [2018-11-23 12:56:49,292 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 98 transitions. [2018-11-23 12:56:49,437 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 98 edges. 98 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:56:49,441 INFO L225 Difference]: With dead ends: 81 [2018-11-23 12:56:49,441 INFO L226 Difference]: Without dead ends: 52 [2018-11-23 12:56:49,442 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 45 GetRequests, 40 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=14, Invalid=28, Unknown=0, NotChecked=0, Total=42 [2018-11-23 12:56:49,442 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2018-11-23 12:56:49,501 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 48. [2018-11-23 12:56:49,501 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:56:49,501 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 48 states. [2018-11-23 12:56:49,501 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 48 states. [2018-11-23 12:56:49,502 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 48 states. [2018-11-23 12:56:49,505 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:49,506 INFO L93 Difference]: Finished difference Result 52 states and 63 transitions. [2018-11-23 12:56:49,506 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 63 transitions. [2018-11-23 12:56:49,507 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:56:49,507 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:56:49,507 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 52 states. [2018-11-23 12:56:49,507 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 52 states. [2018-11-23 12:56:49,512 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:56:49,512 INFO L93 Difference]: Finished difference Result 52 states and 63 transitions. [2018-11-23 12:56:49,512 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 63 transitions. [2018-11-23 12:56:49,514 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:56:49,514 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:56:49,514 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:56:49,515 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:56:49,515 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 48 states. [2018-11-23 12:56:49,518 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 57 transitions. [2018-11-23 12:56:49,518 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 57 transitions. Word has length 39 [2018-11-23 12:56:49,519 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:56:49,519 INFO L480 AbstractCegarLoop]: Abstraction has 48 states and 57 transitions. [2018-11-23 12:56:49,519 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 12:56:49,519 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 57 transitions. [2018-11-23 12:56:49,521 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2018-11-23 12:56:49,522 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:56:49,522 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:56:49,522 INFO L423 AbstractCegarLoop]: === Iteration 5 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:56:49,522 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:56:49,523 INFO L82 PathProgramCache]: Analyzing trace with hash 361037510, now seen corresponding path program 1 times [2018-11-23 12:56:49,523 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:56:49,523 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:56:49,528 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:56:49,528 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:56:49,528 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:56:49,623 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:56:50,947 WARN L180 SmtUtils]: Spent 125.00 ms on a formula simplification that was a NOOP. DAG size: 25 [2018-11-23 12:56:51,596 INFO L256 TraceCheckUtils]: 0: Hoare triple {1266#true} call ULTIMATE.init(); {1266#true} is VALID [2018-11-23 12:56:51,597 INFO L273 TraceCheckUtils]: 1: Hoare triple {1266#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1266#true} is VALID [2018-11-23 12:56:51,597 INFO L273 TraceCheckUtils]: 2: Hoare triple {1266#true} assume true; {1266#true} is VALID [2018-11-23 12:56:51,597 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1266#true} {1266#true} #138#return; {1266#true} is VALID [2018-11-23 12:56:51,597 INFO L256 TraceCheckUtils]: 4: Hoare triple {1266#true} call #t~ret21 := main(); {1266#true} is VALID [2018-11-23 12:56:51,599 INFO L273 TraceCheckUtils]: 5: Hoare triple {1266#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {1268#(= (select |#valid| |main_~#s~0.base|) 1)} is VALID [2018-11-23 12:56:51,599 INFO L256 TraceCheckUtils]: 6: Hoare triple {1268#(= (select |#valid| |main_~#s~0.base|) 1)} call #t~ret11.base, #t~ret11.offset := dll_create(~len~0, ~data~0); {1269#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:56:51,600 INFO L273 TraceCheckUtils]: 7: Hoare triple {1269#(= |#valid| |old(#valid)|)} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {1269#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:56:51,600 INFO L273 TraceCheckUtils]: 8: Hoare triple {1269#(= |#valid| |old(#valid)|)} assume !!(~len > 0); {1269#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:56:51,601 INFO L256 TraceCheckUtils]: 9: Hoare triple {1269#(= |#valid| |old(#valid)|)} call #t~ret3.base, #t~ret3.offset := node_create(~data); {1269#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:56:51,604 INFO L273 TraceCheckUtils]: 10: Hoare triple {1269#(= |#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; {1270#(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-23 12:56:51,605 INFO L273 TraceCheckUtils]: 11: Hoare triple {1270#(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); {1270#(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-23 12:56:51,607 INFO L273 TraceCheckUtils]: 12: Hoare triple {1270#(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, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {1270#(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-23 12:56:51,609 INFO L273 TraceCheckUtils]: 13: Hoare triple {1270#(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; {1270#(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-23 12:56:51,612 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {1270#(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|)))))} {1269#(= |#valid| |old(#valid)|)} #134#return; {1270#(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-23 12:56:51,614 INFO L273 TraceCheckUtils]: 15: Hoare triple {1270#(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|)))))} ~new_head~0.base, ~new_head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call write~int(~data, ~new_head~0.base, ~new_head~0.offset, 4);call write~$Pointer$(~head~0.base, ~head~0.offset, ~new_head~0.base, 4 + ~new_head~0.offset, 4); {1270#(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-23 12:56:51,615 INFO L273 TraceCheckUtils]: 16: Hoare triple {1270#(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 !(~head~0.base != 0 || ~head~0.offset != 0); {1270#(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-23 12:56:51,621 INFO L273 TraceCheckUtils]: 17: Hoare triple {1270#(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 := ~new_head~0.base, ~new_head~0.offset;#t~post4 := ~len;~len := #t~post4 - 1;havoc #t~post4; {1270#(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-23 12:56:51,622 INFO L273 TraceCheckUtils]: 18: Hoare triple {1270#(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 > 0); {1270#(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-23 12:56:51,623 INFO L256 TraceCheckUtils]: 19: Hoare triple {1270#(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~ret3.base, #t~ret3.offset := node_create(~data); {1269#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:56:51,624 INFO L273 TraceCheckUtils]: 20: Hoare triple {1269#(= |#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; {1271#(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-23 12:56:51,626 INFO L273 TraceCheckUtils]: 21: Hoare triple {1271#(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); {1271#(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-23 12:56:51,629 INFO L273 TraceCheckUtils]: 22: Hoare triple {1271#(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, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {1272#(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-23 12:56:51,631 INFO L273 TraceCheckUtils]: 23: Hoare triple {1272#(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; {1272#(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-23 12:56:51,635 INFO L268 TraceCheckUtils]: 24: Hoare quadruple {1272#(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|)))))} {1270#(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|)))))} #134#return; {1273#(and (not (= 0 |dll_create_#t~ret3.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-23 12:56:51,641 INFO L273 TraceCheckUtils]: 25: Hoare triple {1273#(and (not (= 0 |dll_create_#t~ret3.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~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call write~int(~data, ~new_head~0.base, ~new_head~0.offset, 4);call write~$Pointer$(~head~0.base, ~head~0.offset, ~new_head~0.base, 4 + ~new_head~0.offset, 4); {1274#(and (not (= 0 dll_create_~new_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-23 12:56:51,643 INFO L273 TraceCheckUtils]: 26: Hoare triple {1274#(and (not (= 0 dll_create_~new_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 ~head~0.base != 0 || ~head~0.offset != 0;call write~$Pointer$(~new_head~0.base, ~new_head~0.offset, ~head~0.base, 8 + ~head~0.offset, 4); {1274#(and (not (= 0 dll_create_~new_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-23 12:56:51,645 INFO L273 TraceCheckUtils]: 27: Hoare triple {1274#(and (not (= 0 dll_create_~new_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|)))))} ~head~0.base, ~head~0.offset := ~new_head~0.base, ~new_head~0.offset;#t~post4 := ~len;~len := #t~post4 - 1;havoc #t~post4; {1275#(and (not (= 0 dll_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-23 12:56:51,648 INFO L273 TraceCheckUtils]: 28: Hoare triple {1275#(and (not (= 0 dll_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 > 0); {1275#(and (not (= 0 dll_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-23 12:56:51,650 INFO L273 TraceCheckUtils]: 29: Hoare triple {1275#(and (not (= 0 dll_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|)))))} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {1276#(and (not (= 0 |dll_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-23 12:56:51,652 INFO L273 TraceCheckUtils]: 30: Hoare triple {1276#(and (not (= 0 |dll_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; {1276#(and (not (= 0 |dll_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-23 12:56:51,656 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1276#(and (not (= 0 |dll_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|)))))} {1268#(= (select |#valid| |main_~#s~0.base|) 1)} #128#return; {1277#(and (not (= 0 |main_#t~ret11.base|)) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-23 12:56:51,657 INFO L273 TraceCheckUtils]: 32: Hoare triple {1277#(and (not (= 0 |main_#t~ret11.base|)) (= (select |#valid| |main_~#s~0.base|) 1))} call write~init~$Pointer$(#t~ret11.base, #t~ret11.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret11.base, #t~ret11.offset;~uneq~0 := 5; {1278#(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-23 12:56:51,659 INFO L256 TraceCheckUtils]: 33: Hoare triple {1278#(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_append(~#s~0.base, ~#s~0.offset, ~uneq~0); {1279#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:56:51,660 INFO L273 TraceCheckUtils]: 34: Hoare triple {1279#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {1280#(and (= (select |#memory_$Pointer$.base| dll_append_~head.base) (select |old(#memory_$Pointer$.base)| dll_append_~head.base)) (= |#valid| |old(#valid)|) (= dll_append_~head.offset |dll_append_#in~head.offset|) (= dll_append_~head.base |dll_append_#in~head.base|))} is VALID [2018-11-23 12:56:51,662 INFO L256 TraceCheckUtils]: 35: Hoare triple {1280#(and (= (select |#memory_$Pointer$.base| dll_append_~head.base) (select |old(#memory_$Pointer$.base)| dll_append_~head.base)) (= |#valid| |old(#valid)|) (= dll_append_~head.offset |dll_append_#in~head.offset|) (= dll_append_~head.base |dll_append_#in~head.base|))} call #t~ret6.base, #t~ret6.offset := node_create(~data); {1279#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:56:51,663 INFO L273 TraceCheckUtils]: 36: Hoare triple {1279#(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; {1281#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:56:51,664 INFO L273 TraceCheckUtils]: 37: Hoare triple {1281#(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); {1281#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:56:51,667 INFO L273 TraceCheckUtils]: 38: Hoare triple {1281#(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, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {1282#(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-23 12:56:51,668 INFO L273 TraceCheckUtils]: 39: Hoare triple {1282#(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; {1282#(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-23 12:56:51,672 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {1282#(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|)))))} {1280#(and (= (select |#memory_$Pointer$.base| dll_append_~head.base) (select |old(#memory_$Pointer$.base)| dll_append_~head.base)) (= |#valid| |old(#valid)|) (= dll_append_~head.offset |dll_append_#in~head.offset|) (= dll_append_~head.base |dll_append_#in~head.base|))} #136#return; {1283#(and (or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= (select |#memory_$Pointer$.base| dll_append_~head.base) (select |old(#memory_$Pointer$.base)| dll_append_~head.base))) (= dll_append_~head.offset |dll_append_#in~head.offset|) (= dll_append_~head.base |dll_append_#in~head.base|))} is VALID [2018-11-23 12:56:51,673 INFO L273 TraceCheckUtils]: 41: Hoare triple {1283#(and (or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= (select |#memory_$Pointer$.base| dll_append_~head.base) (select |old(#memory_$Pointer$.base)| dll_append_~head.base))) (= dll_append_~head.offset |dll_append_#in~head.offset|) (= dll_append_~head.base |dll_append_#in~head.base|))} ~new_last~0.base, ~new_last~0.offset := #t~ret6.base, #t~ret6.offset;havoc #t~ret6.base, #t~ret6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~head.base, ~head.offset, 4); {1284#(and (= (select (select |#memory_$Pointer$.base| dll_append_~head.base) dll_append_~head.offset) |dll_append_#t~mem7.base|) (or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= (select |#memory_$Pointer$.base| dll_append_~head.base) (select |old(#memory_$Pointer$.base)| dll_append_~head.base))) (= dll_append_~head.offset |dll_append_#in~head.offset|) (= dll_append_~head.base |dll_append_#in~head.base|))} is VALID [2018-11-23 12:56:51,675 INFO L273 TraceCheckUtils]: 42: Hoare triple {1284#(and (= (select (select |#memory_$Pointer$.base| dll_append_~head.base) dll_append_~head.offset) |dll_append_#t~mem7.base|) (or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= (select |#memory_$Pointer$.base| dll_append_~head.base) (select |old(#memory_$Pointer$.base)| dll_append_~head.base))) (= dll_append_~head.offset |dll_append_#in~head.offset|) (= dll_append_~head.base |dll_append_#in~head.base|))} assume 0 == #t~mem7.base && 0 == #t~mem7.offset;havoc #t~mem7.base, #t~mem7.offset;call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~head.base, ~head.offset, 4); {1285#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= 0 (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)))} is VALID [2018-11-23 12:56:51,676 INFO L273 TraceCheckUtils]: 43: Hoare triple {1285#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= 0 (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)))} assume true; {1285#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= 0 (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)))} is VALID [2018-11-23 12:56:51,677 INFO L268 TraceCheckUtils]: 44: Hoare quadruple {1285#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= 0 (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)))} {1278#(and (not (= 0 (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (= (select |#valid| |main_~#s~0.base|) 1))} #130#return; {1267#false} is VALID [2018-11-23 12:56:51,678 INFO L273 TraceCheckUtils]: 45: Hoare triple {1267#false} call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;~count~0 := 0;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4); {1267#false} is VALID [2018-11-23 12:56:51,678 INFO L273 TraceCheckUtils]: 46: Hoare triple {1267#false} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset; {1267#false} is VALID [2018-11-23 12:56:51,679 INFO L273 TraceCheckUtils]: 47: Hoare triple {1267#false} assume ~count~0 != 1 + ~len~0; {1267#false} is VALID [2018-11-23 12:56:51,679 INFO L273 TraceCheckUtils]: 48: Hoare triple {1267#false} assume !false; {1267#false} is VALID [2018-11-23 12:56:51,697 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 2 proven. 19 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 12:56:51,698 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:56:51,698 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:56:51,716 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:56:51,781 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:56:51,813 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:56:51,818 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:56:51,878 INFO L478 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-23 12:56:51,881 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 12:56:51,949 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:56:51,950 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:10, output treesize:9 [2018-11-23 12:56:51,963 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:56:51,963 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_27|]. (and (= |#valid| (store |v_#valid_27| |main_~#s~0.base| 1)) (= |main_~#s~0.offset| 0)) [2018-11-23 12:56:51,964 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= |main_~#s~0.offset| 0) (= (select |#valid| |main_~#s~0.base|) 1)) [2018-11-23 12:56:56,403 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:56:56,404 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:56:56,407 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:56:56,409 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 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-23 12:56:56,428 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 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-23 12:56:56,430 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:56:56,443 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:56:56,460 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2018-11-23 12:56:56,461 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:35, output treesize:35 [2018-11-23 12:56:56,465 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:56:56,465 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_BEFORE_CALL_6|, v_prenex_1, |node_create_#t~malloc2.base|]. (let ((.cse0 (store |v_#valid_BEFORE_CALL_6| v_prenex_1 1))) (and (= (select |v_#valid_BEFORE_CALL_6| |main_~#s~0.base|) 1) (not (= 0 |main_#t~ret11.base|)) (= |main_~#s~0.offset| 0) (= 0 (select .cse0 |node_create_#t~malloc2.base|)) (= |#valid| (store .cse0 |node_create_#t~malloc2.base| 1)) (= 0 (select |v_#valid_BEFORE_CALL_6| v_prenex_1)))) [2018-11-23 12:56:56,465 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_1, |node_create_#t~malloc2.base|]. (and (= 1 (select |#valid| v_prenex_1)) (not (= |main_~#s~0.base| v_prenex_1)) (not (= 0 |main_#t~ret11.base|)) (= |main_~#s~0.offset| 0) (not (= |node_create_#t~malloc2.base| v_prenex_1)) (not (= |node_create_#t~malloc2.base| |main_~#s~0.base|)) (= (select |#valid| |main_~#s~0.base|) 1) (= 1 (select |#valid| |node_create_#t~malloc2.base|))) [2018-11-23 12:57:35,353 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 12:57:35,357 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 12:57:35,366 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2018-11-23 12:57:35,366 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:38, output treesize:31 [2018-11-23 12:57:35,376 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:57:35,377 WARN L384 uantifierElimination]: Input elimination task: ∃ [node_create_~temp~0.base, node_create_~temp~0.offset, |#memory_$Pointer$.base|]. (and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset (select (select |#memory_$Pointer$.base| node_create_~temp~0.base) node_create_~temp~0.offset)))) (= (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#t~mem7.base|)) [2018-11-23 12:57:35,377 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [node_create_~temp~0.base, node_create_~temp~0.offset, v_DerPreprocessor_2]. (and (= (select (select (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset v_DerPreprocessor_2)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#t~mem7.base|) (= 0 (select |old(#valid)| node_create_~temp~0.base))) [2018-11-23 12:57:35,689 INFO L256 TraceCheckUtils]: 0: Hoare triple {1266#true} call ULTIMATE.init(); {1266#true} is VALID [2018-11-23 12:57:35,689 INFO L273 TraceCheckUtils]: 1: Hoare triple {1266#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1266#true} is VALID [2018-11-23 12:57:35,690 INFO L273 TraceCheckUtils]: 2: Hoare triple {1266#true} assume true; {1266#true} is VALID [2018-11-23 12:57:35,690 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1266#true} {1266#true} #138#return; {1266#true} is VALID [2018-11-23 12:57:35,690 INFO L256 TraceCheckUtils]: 4: Hoare triple {1266#true} call #t~ret21 := main(); {1266#true} is VALID [2018-11-23 12:57:35,691 INFO L273 TraceCheckUtils]: 5: Hoare triple {1266#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {1304#(and (= |main_~#s~0.offset| 0) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-23 12:57:35,692 INFO L256 TraceCheckUtils]: 6: Hoare triple {1304#(and (= |main_~#s~0.offset| 0) (= (select |#valid| |main_~#s~0.base|) 1))} call #t~ret11.base, #t~ret11.offset := dll_create(~len~0, ~data~0); {1269#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:57:35,692 INFO L273 TraceCheckUtils]: 7: Hoare triple {1269#(= |#valid| |old(#valid)|)} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {1269#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:57:35,693 INFO L273 TraceCheckUtils]: 8: Hoare triple {1269#(= |#valid| |old(#valid)|)} assume !!(~len > 0); {1269#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:57:35,693 INFO L256 TraceCheckUtils]: 9: Hoare triple {1269#(= |#valid| |old(#valid)|)} call #t~ret3.base, #t~ret3.offset := node_create(~data); {1269#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:57:35,694 INFO L273 TraceCheckUtils]: 10: Hoare triple {1269#(= |#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; {1320#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| node_create_~temp~0.base 1)))} is VALID [2018-11-23 12:57:35,695 INFO L273 TraceCheckUtils]: 11: Hoare triple {1320#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| node_create_~temp~0.base 1)))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {1320#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| node_create_~temp~0.base 1)))} is VALID [2018-11-23 12:57:35,697 INFO L273 TraceCheckUtils]: 12: Hoare triple {1320#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#valid| (store |old(#valid)| node_create_~temp~0.base 1)))} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {1327#(and (= |#valid| (store |old(#valid)| |node_create_#res.base| 1)) (= 0 (select |old(#valid)| |node_create_#res.base|)))} is VALID [2018-11-23 12:57:35,697 INFO L273 TraceCheckUtils]: 13: Hoare triple {1327#(and (= |#valid| (store |old(#valid)| |node_create_#res.base| 1)) (= 0 (select |old(#valid)| |node_create_#res.base|)))} assume true; {1327#(and (= |#valid| (store |old(#valid)| |node_create_#res.base| 1)) (= 0 (select |old(#valid)| |node_create_#res.base|)))} is VALID [2018-11-23 12:57:35,706 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {1327#(and (= |#valid| (store |old(#valid)| |node_create_#res.base| 1)) (= 0 (select |old(#valid)| |node_create_#res.base|)))} {1269#(= |#valid| |old(#valid)|)} #134#return; {1334#(and (= (select |old(#valid)| |dll_create_#t~ret3.base|) 0) (= |#valid| (store |old(#valid)| |dll_create_#t~ret3.base| 1)))} is VALID [2018-11-23 12:57:35,707 INFO L273 TraceCheckUtils]: 15: Hoare triple {1334#(and (= (select |old(#valid)| |dll_create_#t~ret3.base|) 0) (= |#valid| (store |old(#valid)| |dll_create_#t~ret3.base| 1)))} ~new_head~0.base, ~new_head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call write~int(~data, ~new_head~0.base, ~new_head~0.offset, 4);call write~$Pointer$(~head~0.base, ~head~0.offset, ~new_head~0.base, 4 + ~new_head~0.offset, 4); {1338#(and (= 0 (select |old(#valid)| dll_create_~new_head~0.base)) (= |#valid| (store |old(#valid)| dll_create_~new_head~0.base 1)))} is VALID [2018-11-23 12:57:35,708 INFO L273 TraceCheckUtils]: 16: Hoare triple {1338#(and (= 0 (select |old(#valid)| dll_create_~new_head~0.base)) (= |#valid| (store |old(#valid)| dll_create_~new_head~0.base 1)))} assume !(~head~0.base != 0 || ~head~0.offset != 0); {1338#(and (= 0 (select |old(#valid)| dll_create_~new_head~0.base)) (= |#valid| (store |old(#valid)| dll_create_~new_head~0.base 1)))} is VALID [2018-11-23 12:57:35,709 INFO L273 TraceCheckUtils]: 17: Hoare triple {1338#(and (= 0 (select |old(#valid)| dll_create_~new_head~0.base)) (= |#valid| (store |old(#valid)| dll_create_~new_head~0.base 1)))} ~head~0.base, ~head~0.offset := ~new_head~0.base, ~new_head~0.offset;#t~post4 := ~len;~len := #t~post4 - 1;havoc #t~post4; {1345#(exists ((dll_create_~head~0.base Int)) (and (= |#valid| (store |old(#valid)| dll_create_~head~0.base 1)) (= (select |old(#valid)| dll_create_~head~0.base) 0)))} is VALID [2018-11-23 12:57:35,709 INFO L273 TraceCheckUtils]: 18: Hoare triple {1345#(exists ((dll_create_~head~0.base Int)) (and (= |#valid| (store |old(#valid)| dll_create_~head~0.base 1)) (= (select |old(#valid)| dll_create_~head~0.base) 0)))} assume !!(~len > 0); {1345#(exists ((dll_create_~head~0.base Int)) (and (= |#valid| (store |old(#valid)| dll_create_~head~0.base 1)) (= (select |old(#valid)| dll_create_~head~0.base) 0)))} is VALID [2018-11-23 12:57:35,711 INFO L256 TraceCheckUtils]: 19: Hoare triple {1345#(exists ((dll_create_~head~0.base Int)) (and (= |#valid| (store |old(#valid)| dll_create_~head~0.base 1)) (= (select |old(#valid)| dll_create_~head~0.base) 0)))} call #t~ret3.base, #t~ret3.offset := node_create(~data); {1269#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:57:35,712 INFO L273 TraceCheckUtils]: 20: Hoare triple {1269#(= |#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; {1355#(and (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))) (= node_create_~temp~0.offset 0))} is VALID [2018-11-23 12:57:35,713 INFO L273 TraceCheckUtils]: 21: Hoare triple {1355#(and (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))) (= node_create_~temp~0.offset 0))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {1359#(and (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))) (not (= 0 node_create_~temp~0.base)))} is VALID [2018-11-23 12:57:35,715 INFO L273 TraceCheckUtils]: 22: Hoare triple {1359#(and (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))) (not (= 0 node_create_~temp~0.base)))} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {1363#(and (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))) (not (= 0 |node_create_#res.base|)))} is VALID [2018-11-23 12:57:35,716 INFO L273 TraceCheckUtils]: 23: Hoare triple {1363#(and (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))) (not (= 0 |node_create_#res.base|)))} assume true; {1363#(and (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))) (not (= 0 |node_create_#res.base|)))} is VALID [2018-11-23 12:57:35,718 INFO L268 TraceCheckUtils]: 24: Hoare quadruple {1363#(and (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))) (not (= 0 |node_create_#res.base|)))} {1345#(exists ((dll_create_~head~0.base Int)) (and (= |#valid| (store |old(#valid)| dll_create_~head~0.base 1)) (= (select |old(#valid)| dll_create_~head~0.base) 0)))} #134#return; {1370#(and (exists ((|node_create_#t~malloc2.base| Int) (dll_create_~head~0.base Int)) (and (= |#valid| (store (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base| 1)) (= 0 (select (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base|)) (= (select |old(#valid)| dll_create_~head~0.base) 0))) (not (= |dll_create_#t~ret3.base| 0)))} is VALID [2018-11-23 12:57:35,720 INFO L273 TraceCheckUtils]: 25: Hoare triple {1370#(and (exists ((|node_create_#t~malloc2.base| Int) (dll_create_~head~0.base Int)) (and (= |#valid| (store (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base| 1)) (= 0 (select (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base|)) (= (select |old(#valid)| dll_create_~head~0.base) 0))) (not (= |dll_create_#t~ret3.base| 0)))} ~new_head~0.base, ~new_head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call write~int(~data, ~new_head~0.base, ~new_head~0.offset, 4);call write~$Pointer$(~head~0.base, ~head~0.offset, ~new_head~0.base, 4 + ~new_head~0.offset, 4); {1374#(and (not (= dll_create_~new_head~0.base 0)) (exists ((|node_create_#t~malloc2.base| Int) (dll_create_~head~0.base Int)) (and (= |#valid| (store (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base| 1)) (= 0 (select (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base|)) (= (select |old(#valid)| dll_create_~head~0.base) 0))))} is VALID [2018-11-23 12:57:35,721 INFO L273 TraceCheckUtils]: 26: Hoare triple {1374#(and (not (= dll_create_~new_head~0.base 0)) (exists ((|node_create_#t~malloc2.base| Int) (dll_create_~head~0.base Int)) (and (= |#valid| (store (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base| 1)) (= 0 (select (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base|)) (= (select |old(#valid)| dll_create_~head~0.base) 0))))} assume ~head~0.base != 0 || ~head~0.offset != 0;call write~$Pointer$(~new_head~0.base, ~new_head~0.offset, ~head~0.base, 8 + ~head~0.offset, 4); {1374#(and (not (= dll_create_~new_head~0.base 0)) (exists ((|node_create_#t~malloc2.base| Int) (dll_create_~head~0.base Int)) (and (= |#valid| (store (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base| 1)) (= 0 (select (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base|)) (= (select |old(#valid)| dll_create_~head~0.base) 0))))} is VALID [2018-11-23 12:57:35,723 INFO L273 TraceCheckUtils]: 27: Hoare triple {1374#(and (not (= dll_create_~new_head~0.base 0)) (exists ((|node_create_#t~malloc2.base| Int) (dll_create_~head~0.base Int)) (and (= |#valid| (store (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base| 1)) (= 0 (select (store |old(#valid)| dll_create_~head~0.base 1) |node_create_#t~malloc2.base|)) (= (select |old(#valid)| dll_create_~head~0.base) 0))))} ~head~0.base, ~head~0.offset := ~new_head~0.base, ~new_head~0.offset;#t~post4 := ~len;~len := #t~post4 - 1;havoc #t~post4; {1381#(and (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= (select |old(#valid)| v_prenex_1) 0) (= (store (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base| 1) |#valid|) (= 0 (select (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base|)))) (not (= 0 dll_create_~head~0.base)))} is VALID [2018-11-23 12:57:35,724 INFO L273 TraceCheckUtils]: 28: Hoare triple {1381#(and (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= (select |old(#valid)| v_prenex_1) 0) (= (store (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base| 1) |#valid|) (= 0 (select (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base|)))) (not (= 0 dll_create_~head~0.base)))} assume !(~len > 0); {1381#(and (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= (select |old(#valid)| v_prenex_1) 0) (= (store (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base| 1) |#valid|) (= 0 (select (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base|)))) (not (= 0 dll_create_~head~0.base)))} is VALID [2018-11-23 12:57:35,726 INFO L273 TraceCheckUtils]: 29: Hoare triple {1381#(and (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= (select |old(#valid)| v_prenex_1) 0) (= (store (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base| 1) |#valid|) (= 0 (select (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base|)))) (not (= 0 dll_create_~head~0.base)))} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {1388#(and (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= (select |old(#valid)| v_prenex_1) 0) (= (store (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base| 1) |#valid|) (= 0 (select (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base|)))) (not (= |dll_create_#res.base| 0)))} is VALID [2018-11-23 12:57:35,729 INFO L273 TraceCheckUtils]: 30: Hoare triple {1388#(and (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= (select |old(#valid)| v_prenex_1) 0) (= (store (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base| 1) |#valid|) (= 0 (select (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base|)))) (not (= |dll_create_#res.base| 0)))} assume true; {1388#(and (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= (select |old(#valid)| v_prenex_1) 0) (= (store (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base| 1) |#valid|) (= 0 (select (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base|)))) (not (= |dll_create_#res.base| 0)))} is VALID [2018-11-23 12:57:35,733 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1388#(and (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= (select |old(#valid)| v_prenex_1) 0) (= (store (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base| 1) |#valid|) (= 0 (select (store |old(#valid)| v_prenex_1 1) |node_create_#t~malloc2.base|)))) (not (= |dll_create_#res.base| 0)))} {1304#(and (= |main_~#s~0.offset| 0) (= (select |#valid| |main_~#s~0.base|) 1))} #128#return; {1395#(and (not (= 0 |main_#t~ret11.base|)) (= |main_~#s~0.offset| 0) (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= 1 (select |#valid| v_prenex_1)) (not (= |main_~#s~0.base| v_prenex_1)) (not (= |node_create_#t~malloc2.base| v_prenex_1)) (not (= |node_create_#t~malloc2.base| |main_~#s~0.base|)) (= 1 (select |#valid| |node_create_#t~malloc2.base|)))) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-23 12:57:35,741 INFO L273 TraceCheckUtils]: 32: Hoare triple {1395#(and (not (= 0 |main_#t~ret11.base|)) (= |main_~#s~0.offset| 0) (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= 1 (select |#valid| v_prenex_1)) (not (= |main_~#s~0.base| v_prenex_1)) (not (= |node_create_#t~malloc2.base| v_prenex_1)) (not (= |node_create_#t~malloc2.base| |main_~#s~0.base|)) (= 1 (select |#valid| |node_create_#t~malloc2.base|)))) (= (select |#valid| |main_~#s~0.base|) 1))} call write~init~$Pointer$(#t~ret11.base, #t~ret11.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret11.base, #t~ret11.offset;~uneq~0 := 5; {1399#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|) 0)) (= |main_~#s~0.offset| 0) (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= 1 (select |#valid| v_prenex_1)) (not (= |main_~#s~0.base| v_prenex_1)) (not (= |node_create_#t~malloc2.base| v_prenex_1)) (not (= |node_create_#t~malloc2.base| |main_~#s~0.base|)) (= 1 (select |#valid| |node_create_#t~malloc2.base|)))) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-23 12:57:35,742 INFO L256 TraceCheckUtils]: 33: Hoare triple {1399#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|) 0)) (= |main_~#s~0.offset| 0) (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= 1 (select |#valid| v_prenex_1)) (not (= |main_~#s~0.base| v_prenex_1)) (not (= |node_create_#t~malloc2.base| v_prenex_1)) (not (= |node_create_#t~malloc2.base| |main_~#s~0.base|)) (= 1 (select |#valid| |node_create_#t~malloc2.base|)))) (= (select |#valid| |main_~#s~0.base|) 1))} call dll_append(~#s~0.base, ~#s~0.offset, ~uneq~0); {1279#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:57:35,743 INFO L273 TraceCheckUtils]: 34: Hoare triple {1279#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {1406#(and (= |dll_append_#in~head.offset| dll_append_~head.offset) (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= dll_append_~head.base |dll_append_#in~head.base|))} is VALID [2018-11-23 12:57:35,744 INFO L256 TraceCheckUtils]: 35: Hoare triple {1406#(and (= |dll_append_#in~head.offset| dll_append_~head.offset) (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= dll_append_~head.base |dll_append_#in~head.base|))} call #t~ret6.base, #t~ret6.offset := node_create(~data); {1279#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:57:35,745 INFO L273 TraceCheckUtils]: 36: Hoare triple {1279#(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; {1281#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:57:35,747 INFO L273 TraceCheckUtils]: 37: Hoare triple {1281#(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); {1281#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:57:35,748 INFO L273 TraceCheckUtils]: 38: Hoare triple {1281#(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, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {1419#(exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int)) (and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset (select (select |#memory_$Pointer$.base| node_create_~temp~0.base) node_create_~temp~0.offset))))))} is VALID [2018-11-23 12:57:35,749 INFO L273 TraceCheckUtils]: 39: Hoare triple {1419#(exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int)) (and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset (select (select |#memory_$Pointer$.base| node_create_~temp~0.base) node_create_~temp~0.offset))))))} assume true; {1419#(exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int)) (and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset (select (select |#memory_$Pointer$.base| node_create_~temp~0.base) node_create_~temp~0.offset))))))} is VALID [2018-11-23 12:57:35,751 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {1419#(exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int)) (and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset (select (select |#memory_$Pointer$.base| node_create_~temp~0.base) node_create_~temp~0.offset))))))} {1406#(and (= |dll_append_#in~head.offset| dll_append_~head.offset) (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= dll_append_~head.base |dll_append_#in~head.base|))} #136#return; {1426#(and (= |dll_append_#in~head.offset| dll_append_~head.offset) (exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int)) (and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset (select (select |#memory_$Pointer$.base| node_create_~temp~0.base) node_create_~temp~0.offset)))))) (= dll_append_~head.base |dll_append_#in~head.base|))} is VALID [2018-11-23 12:57:35,754 INFO L273 TraceCheckUtils]: 41: Hoare triple {1426#(and (= |dll_append_#in~head.offset| dll_append_~head.offset) (exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int)) (and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset (select (select |#memory_$Pointer$.base| node_create_~temp~0.base) node_create_~temp~0.offset)))))) (= dll_append_~head.base |dll_append_#in~head.base|))} ~new_last~0.base, ~new_last~0.offset := #t~ret6.base, #t~ret6.offset;havoc #t~ret6.base, #t~ret6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~head.base, ~head.offset, 4); {1430#(exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int) (v_DerPreprocessor_2 Int)) (and (= (select (select (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset v_DerPreprocessor_2)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#t~mem7.base|) (= 0 (select |old(#valid)| node_create_~temp~0.base))))} is VALID [2018-11-23 12:57:35,755 INFO L273 TraceCheckUtils]: 42: Hoare triple {1430#(exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int) (v_DerPreprocessor_2 Int)) (and (= (select (select (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset v_DerPreprocessor_2)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#t~mem7.base|) (= 0 (select |old(#valid)| node_create_~temp~0.base))))} assume 0 == #t~mem7.base && 0 == #t~mem7.offset;havoc #t~mem7.base, #t~mem7.offset;call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~head.base, ~head.offset, 4); {1434#(exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int) (v_DerPreprocessor_2 Int)) (and (= (select (select (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset v_DerPreprocessor_2)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|) 0) (= 0 (select |old(#valid)| node_create_~temp~0.base))))} is VALID [2018-11-23 12:57:35,756 INFO L273 TraceCheckUtils]: 43: Hoare triple {1434#(exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int) (v_DerPreprocessor_2 Int)) (and (= (select (select (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset v_DerPreprocessor_2)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|) 0) (= 0 (select |old(#valid)| node_create_~temp~0.base))))} assume true; {1434#(exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int) (v_DerPreprocessor_2 Int)) (and (= (select (select (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset v_DerPreprocessor_2)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|) 0) (= 0 (select |old(#valid)| node_create_~temp~0.base))))} is VALID [2018-11-23 12:57:35,758 INFO L268 TraceCheckUtils]: 44: Hoare quadruple {1434#(exists ((node_create_~temp~0.offset Int) (node_create_~temp~0.base Int) (v_DerPreprocessor_2 Int)) (and (= (select (select (store |old(#memory_$Pointer$.base)| node_create_~temp~0.base (store (store (store (select |old(#memory_$Pointer$.base)| node_create_~temp~0.base) (+ node_create_~temp~0.offset 4) 0) (+ node_create_~temp~0.offset 8) 0) node_create_~temp~0.offset v_DerPreprocessor_2)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|) 0) (= 0 (select |old(#valid)| node_create_~temp~0.base))))} {1399#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|) 0)) (= |main_~#s~0.offset| 0) (exists ((|node_create_#t~malloc2.base| Int) (v_prenex_1 Int)) (and (= 1 (select |#valid| v_prenex_1)) (not (= |main_~#s~0.base| v_prenex_1)) (not (= |node_create_#t~malloc2.base| v_prenex_1)) (not (= |node_create_#t~malloc2.base| |main_~#s~0.base|)) (= 1 (select |#valid| |node_create_#t~malloc2.base|)))) (= (select |#valid| |main_~#s~0.base|) 1))} #130#return; {1267#false} is VALID [2018-11-23 12:57:35,759 INFO L273 TraceCheckUtils]: 45: Hoare triple {1267#false} call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;~count~0 := 0;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4); {1267#false} is VALID [2018-11-23 12:57:35,759 INFO L273 TraceCheckUtils]: 46: Hoare triple {1267#false} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset; {1267#false} is VALID [2018-11-23 12:57:35,759 INFO L273 TraceCheckUtils]: 47: Hoare triple {1267#false} assume ~count~0 != 1 + ~len~0; {1267#false} is VALID [2018-11-23 12:57:35,759 INFO L273 TraceCheckUtils]: 48: Hoare triple {1267#false} assume !false; {1267#false} is VALID [2018-11-23 12:57:35,770 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 2 proven. 19 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 12:57:35,790 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:57:35,790 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 25] total 40 [2018-11-23 12:57:35,791 INFO L78 Accepts]: Start accepts. Automaton has 40 states. Word has length 49 [2018-11-23 12:57:35,793 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:57:35,793 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 40 states. [2018-11-23 12:57:35,985 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 84 edges. 84 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:57:35,985 INFO L459 AbstractCegarLoop]: Interpolant automaton has 40 states [2018-11-23 12:57:35,985 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 40 interpolants. [2018-11-23 12:57:35,987 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=127, Invalid=1409, Unknown=24, NotChecked=0, Total=1560 [2018-11-23 12:57:35,987 INFO L87 Difference]: Start difference. First operand 48 states and 57 transitions. Second operand 40 states. [2018-11-23 12:57:43,452 WARN L180 SmtUtils]: Spent 729.00 ms on a formula simplification that was a NOOP. DAG size: 27 [2018-11-23 12:58:01,635 WARN L180 SmtUtils]: Spent 4.10 s on a formula simplification. DAG size of input: 44 DAG size of output: 33 [2018-11-23 12:58:07,632 WARN L180 SmtUtils]: Spent 4.17 s on a formula simplification. DAG size of input: 49 DAG size of output: 32 [2018-11-23 12:58:45,153 WARN L180 SmtUtils]: Spent 2.84 s on a formula simplification that was a NOOP. DAG size: 38 [2018-11-23 12:58:51,527 WARN L180 SmtUtils]: Spent 6.01 s on a formula simplification. DAG size of input: 56 DAG size of output: 42 [2018-11-23 12:58:53,080 WARN L180 SmtUtils]: Spent 827.00 ms on a formula simplification that was a NOOP. DAG size: 34 [2018-11-23 12:58:54,967 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:58:54,968 INFO L93 Difference]: Finished difference Result 105 states and 131 transitions. [2018-11-23 12:58:54,968 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2018-11-23 12:58:54,968 INFO L78 Accepts]: Start accepts. Automaton has 40 states. Word has length 49 [2018-11-23 12:58:54,969 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:58:54,969 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2018-11-23 12:58:54,973 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 131 transitions. [2018-11-23 12:58:54,973 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2018-11-23 12:58:54,977 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 131 transitions. [2018-11-23 12:58:54,978 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states and 131 transitions. [2018-11-23 12:58:55,164 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 131 edges. 131 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:58:55,169 INFO L225 Difference]: With dead ends: 105 [2018-11-23 12:58:55,169 INFO L226 Difference]: Without dead ends: 71 [2018-11-23 12:58:55,171 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 86 GetRequests, 36 SyntacticMatches, 0 SemanticMatches, 50 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 635 ImplicationChecksByTransitivity, 69.6s TimeCoverageRelationStatistics Valid=228, Invalid=2397, Unknown=27, NotChecked=0, Total=2652 [2018-11-23 12:58:55,171 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 71 states. [2018-11-23 12:58:55,257 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 71 to 60. [2018-11-23 12:58:55,257 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:58:55,257 INFO L82 GeneralOperation]: Start isEquivalent. First operand 71 states. Second operand 60 states. [2018-11-23 12:58:55,257 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 60 states. [2018-11-23 12:58:55,258 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 60 states. [2018-11-23 12:58:55,262 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:58:55,262 INFO L93 Difference]: Finished difference Result 71 states and 87 transitions. [2018-11-23 12:58:55,262 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 87 transitions. [2018-11-23 12:58:55,263 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:58:55,263 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:58:55,263 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 71 states. [2018-11-23 12:58:55,263 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 71 states. [2018-11-23 12:58:55,267 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:58:55,267 INFO L93 Difference]: Finished difference Result 71 states and 87 transitions. [2018-11-23 12:58:55,267 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 87 transitions. [2018-11-23 12:58:55,268 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:58:55,268 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:58:55,268 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:58:55,268 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:58:55,269 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 60 states. [2018-11-23 12:58:55,271 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 60 states to 60 states and 72 transitions. [2018-11-23 12:58:55,272 INFO L78 Accepts]: Start accepts. Automaton has 60 states and 72 transitions. Word has length 49 [2018-11-23 12:58:55,272 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:58:55,272 INFO L480 AbstractCegarLoop]: Abstraction has 60 states and 72 transitions. [2018-11-23 12:58:55,272 INFO L481 AbstractCegarLoop]: Interpolant automaton has 40 states. [2018-11-23 12:58:55,272 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 72 transitions. [2018-11-23 12:58:55,273 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2018-11-23 12:58:55,273 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:58:55,273 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:58:55,274 INFO L423 AbstractCegarLoop]: === Iteration 6 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:58:55,274 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:58:55,274 INFO L82 PathProgramCache]: Analyzing trace with hash 1312635146, now seen corresponding path program 1 times [2018-11-23 12:58:55,274 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:58:55,274 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:58:55,275 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:58:55,276 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:58:55,276 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:58:55,338 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:58:59,115 WARN L180 SmtUtils]: Spent 190.00 ms on a formula simplification. DAG size of input: 56 DAG size of output: 56 [2018-11-23 12:58:59,338 INFO L256 TraceCheckUtils]: 0: Hoare triple {1837#true} call ULTIMATE.init(); {1837#true} is VALID [2018-11-23 12:58:59,338 INFO L273 TraceCheckUtils]: 1: Hoare triple {1837#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1837#true} is VALID [2018-11-23 12:58:59,338 INFO L273 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2018-11-23 12:58:59,339 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #138#return; {1837#true} is VALID [2018-11-23 12:58:59,339 INFO L256 TraceCheckUtils]: 4: Hoare triple {1837#true} call #t~ret21 := main(); {1837#true} is VALID [2018-11-23 12:58:59,340 INFO L273 TraceCheckUtils]: 5: Hoare triple {1837#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {1839#(= (select |#valid| |main_~#s~0.base|) 1)} is VALID [2018-11-23 12:58:59,341 INFO L256 TraceCheckUtils]: 6: Hoare triple {1839#(= (select |#valid| |main_~#s~0.base|) 1)} call #t~ret11.base, #t~ret11.offset := dll_create(~len~0, ~data~0); {1840#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:58:59,342 INFO L273 TraceCheckUtils]: 7: Hoare triple {1840#(= |#valid| |old(#valid)|)} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {1840#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:58:59,343 INFO L273 TraceCheckUtils]: 8: Hoare triple {1840#(= |#valid| |old(#valid)|)} assume !!(~len > 0); {1840#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:58:59,344 INFO L256 TraceCheckUtils]: 9: Hoare triple {1840#(= |#valid| |old(#valid)|)} call #t~ret3.base, #t~ret3.offset := node_create(~data); {1840#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:58:59,345 INFO L273 TraceCheckUtils]: 10: Hoare triple {1840#(= |#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; {1841#(and (= (select |#valid| node_create_~temp~0.base) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (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-23 12:58:59,348 INFO L273 TraceCheckUtils]: 11: Hoare triple {1841#(and (= (select |#valid| node_create_~temp~0.base) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (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); {1841#(and (= (select |#valid| node_create_~temp~0.base) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (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-23 12:58:59,350 INFO L273 TraceCheckUtils]: 12: Hoare triple {1841#(and (= (select |#valid| node_create_~temp~0.base) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (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, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {1842#(and (= (select |#valid| |node_create_#res.base|) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (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-23 12:58:59,352 INFO L273 TraceCheckUtils]: 13: Hoare triple {1842#(and (= (select |#valid| |node_create_#res.base|) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (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; {1842#(and (= (select |#valid| |node_create_#res.base|) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (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-23 12:58:59,355 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {1842#(and (= (select |#valid| |node_create_#res.base|) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (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|)))))} {1840#(= |#valid| |old(#valid)|)} #134#return; {1843#(and (not (= 0 |dll_create_#t~ret3.base|)) (= (select |#valid| |dll_create_#t~ret3.base|) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,358 INFO L273 TraceCheckUtils]: 15: Hoare triple {1843#(and (not (= 0 |dll_create_#t~ret3.base|)) (= (select |#valid| |dll_create_#t~ret3.base|) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} ~new_head~0.base, ~new_head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call write~int(~data, ~new_head~0.base, ~new_head~0.offset, 4);call write~$Pointer$(~head~0.base, ~head~0.offset, ~new_head~0.base, 4 + ~new_head~0.offset, 4); {1844#(and (not (= 0 dll_create_~new_head~0.base)) (= (select |#valid| dll_create_~new_head~0.base) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,360 INFO L273 TraceCheckUtils]: 16: Hoare triple {1844#(and (not (= 0 dll_create_~new_head~0.base)) (= (select |#valid| dll_create_~new_head~0.base) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume !(~head~0.base != 0 || ~head~0.offset != 0); {1844#(and (not (= 0 dll_create_~new_head~0.base)) (= (select |#valid| dll_create_~new_head~0.base) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,363 INFO L273 TraceCheckUtils]: 17: Hoare triple {1844#(and (not (= 0 dll_create_~new_head~0.base)) (= (select |#valid| dll_create_~new_head~0.base) 1) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} ~head~0.base, ~head~0.offset := ~new_head~0.base, ~new_head~0.offset;#t~post4 := ~len;~len := #t~post4 - 1;havoc #t~post4; {1845#(and (= (select |#valid| dll_create_~head~0.base) 1) (not (= 0 dll_create_~head~0.base)) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,365 INFO L273 TraceCheckUtils]: 18: Hoare triple {1845#(and (= (select |#valid| dll_create_~head~0.base) 1) (not (= 0 dll_create_~head~0.base)) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume !!(~len > 0); {1845#(and (= (select |#valid| dll_create_~head~0.base) 1) (not (= 0 dll_create_~head~0.base)) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,367 INFO L256 TraceCheckUtils]: 19: Hoare triple {1845#(and (= (select |#valid| dll_create_~head~0.base) 1) (not (= 0 dll_create_~head~0.base)) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} call #t~ret3.base, #t~ret3.offset := node_create(~data); {1840#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:58:59,368 INFO L273 TraceCheckUtils]: 20: Hoare triple {1840#(= |#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; {1846#(and (= (select |#valid| node_create_~temp~0.base) 1) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= 0 node_create_~temp~0.offset) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,371 INFO L273 TraceCheckUtils]: 21: Hoare triple {1846#(and (= (select |#valid| node_create_~temp~0.base) 1) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= 0 node_create_~temp~0.offset) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {1846#(and (= (select |#valid| node_create_~temp~0.base) 1) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= 0 node_create_~temp~0.offset) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,372 INFO L273 TraceCheckUtils]: 22: Hoare triple {1846#(and (= (select |#valid| node_create_~temp~0.base) 1) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= 0 node_create_~temp~0.offset) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {1847#(and (= (select |#valid| |node_create_#res.base|) 1) (= 0 (select |old(#valid)| |node_create_#res.base|)) (= 0 |node_create_#res.offset|) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,374 INFO L273 TraceCheckUtils]: 23: Hoare triple {1847#(and (= (select |#valid| |node_create_#res.base|) 1) (= 0 (select |old(#valid)| |node_create_#res.base|)) (= 0 |node_create_#res.offset|) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume true; {1847#(and (= (select |#valid| |node_create_#res.base|) 1) (= 0 (select |old(#valid)| |node_create_#res.base|)) (= 0 |node_create_#res.offset|) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,379 INFO L268 TraceCheckUtils]: 24: Hoare quadruple {1847#(and (= (select |#valid| |node_create_#res.base|) 1) (= 0 (select |old(#valid)| |node_create_#res.base|)) (= 0 |node_create_#res.offset|) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} {1845#(and (= (select |#valid| dll_create_~head~0.base) 1) (not (= 0 dll_create_~head~0.base)) (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= |#valid| |old(#valid)|)) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} #134#return; {1848#(and (not (= dll_create_~head~0.base |dll_create_#t~ret3.base|)) (= 0 (select |old(#valid)| |dll_create_#t~ret3.base|)) (not (= 0 dll_create_~head~0.base)) (= 0 |dll_create_#t~ret3.offset|) (= |#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|)))) (= (select |#valid| |dll_create_#t~ret3.base|) 1) (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) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,383 INFO L273 TraceCheckUtils]: 25: Hoare triple {1848#(and (not (= dll_create_~head~0.base |dll_create_#t~ret3.base|)) (= 0 (select |old(#valid)| |dll_create_#t~ret3.base|)) (not (= 0 dll_create_~head~0.base)) (= 0 |dll_create_#t~ret3.offset|) (= |#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|)))) (= (select |#valid| |dll_create_#t~ret3.base|) 1) (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) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} ~new_head~0.base, ~new_head~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call write~int(~data, ~new_head~0.base, ~new_head~0.offset, 4);call write~$Pointer$(~head~0.base, ~head~0.offset, ~new_head~0.base, 4 + ~new_head~0.offset, 4); {1849#(and (not (= 0 (select (select (store |#memory_$Pointer$.base| dll_create_~head~0.base (store (select |#memory_$Pointer$.base| dll_create_~head~0.base) (+ dll_create_~head~0.offset 8) dll_create_~new_head~0.base)) dll_create_~new_head~0.base) (+ dll_create_~new_head~0.offset 4)))) (= 0 (select |old(#valid)| dll_create_~new_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|)))) (= (select |#valid| dll_create_~new_head~0.base) 1) (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) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= 0 dll_create_~new_head~0.offset) (not (= dll_create_~new_head~0.base dll_create_~head~0.base)))} is VALID [2018-11-23 12:58:59,388 INFO L273 TraceCheckUtils]: 26: Hoare triple {1849#(and (not (= 0 (select (select (store |#memory_$Pointer$.base| dll_create_~head~0.base (store (select |#memory_$Pointer$.base| dll_create_~head~0.base) (+ dll_create_~head~0.offset 8) dll_create_~new_head~0.base)) dll_create_~new_head~0.base) (+ dll_create_~new_head~0.offset 4)))) (= 0 (select |old(#valid)| dll_create_~new_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|)))) (= (select |#valid| dll_create_~new_head~0.base) 1) (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) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= 0 dll_create_~new_head~0.offset) (not (= dll_create_~new_head~0.base dll_create_~head~0.base)))} assume ~head~0.base != 0 || ~head~0.offset != 0;call write~$Pointer$(~new_head~0.base, ~new_head~0.offset, ~head~0.base, 8 + ~head~0.offset, 4); {1850#(and (= 0 (select |old(#valid)| dll_create_~new_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|)))) (= (select |#valid| dll_create_~new_head~0.base) 1) (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) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= 0 dll_create_~new_head~0.offset) (not (= 0 (select (select |#memory_$Pointer$.base| dll_create_~new_head~0.base) (+ dll_create_~new_head~0.offset 4)))))} is VALID [2018-11-23 12:58:59,392 INFO L273 TraceCheckUtils]: 27: Hoare triple {1850#(and (= 0 (select |old(#valid)| dll_create_~new_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|)))) (= (select |#valid| dll_create_~new_head~0.base) 1) (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) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= 0 dll_create_~new_head~0.offset) (not (= 0 (select (select |#memory_$Pointer$.base| dll_create_~new_head~0.base) (+ dll_create_~new_head~0.offset 4)))))} ~head~0.base, ~head~0.offset := ~new_head~0.base, ~new_head~0.offset;#t~post4 := ~len;~len := #t~post4 - 1;havoc #t~post4; {1851#(and (not (= 0 (select (select |#memory_$Pointer$.base| dll_create_~head~0.base) 4))) (= (select |#valid| dll_create_~head~0.base) 1) (= 0 (select |old(#valid)| dll_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|))))) (= 0 dll_create_~head~0.offset) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,396 INFO L273 TraceCheckUtils]: 28: Hoare triple {1851#(and (not (= 0 (select (select |#memory_$Pointer$.base| dll_create_~head~0.base) 4))) (= (select |#valid| dll_create_~head~0.base) 1) (= 0 (select |old(#valid)| dll_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|))))) (= 0 dll_create_~head~0.offset) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} assume !(~len > 0); {1851#(and (not (= 0 (select (select |#memory_$Pointer$.base| dll_create_~head~0.base) 4))) (= (select |#valid| dll_create_~head~0.base) 1) (= 0 (select |old(#valid)| dll_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|))))) (= 0 dll_create_~head~0.offset) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,400 INFO L273 TraceCheckUtils]: 29: Hoare triple {1851#(and (not (= 0 (select (select |#memory_$Pointer$.base| dll_create_~head~0.base) 4))) (= (select |#valid| dll_create_~head~0.base) 1) (= 0 (select |old(#valid)| dll_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|))))) (= 0 dll_create_~head~0.offset) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {1852#(and (= 0 (select |old(#valid)| |dll_create_#res.base|)) (= 0 |dll_create_#res.offset|) (= |#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|)))) (= (select |#valid| |dll_create_#res.base|) 1) (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|))))) (not (= 0 (select (select |#memory_$Pointer$.base| |dll_create_#res.base|) 4))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,404 INFO L273 TraceCheckUtils]: 30: Hoare triple {1852#(and (= 0 (select |old(#valid)| |dll_create_#res.base|)) (= 0 |dll_create_#res.offset|) (= |#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|)))) (= (select |#valid| |dll_create_#res.base|) 1) (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|))))) (not (= 0 (select (select |#memory_$Pointer$.base| |dll_create_#res.base|) 4))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} assume true; {1852#(and (= 0 (select |old(#valid)| |dll_create_#res.base|)) (= 0 |dll_create_#res.offset|) (= |#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|)))) (= (select |#valid| |dll_create_#res.base|) 1) (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|))))) (not (= 0 (select (select |#memory_$Pointer$.base| |dll_create_#res.base|) 4))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:58:59,406 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1852#(and (= 0 (select |old(#valid)| |dll_create_#res.base|)) (= 0 |dll_create_#res.offset|) (= |#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|)))) (= (select |#valid| |dll_create_#res.base|) 1) (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|))))) (not (= 0 (select (select |#memory_$Pointer$.base| |dll_create_#res.base|) 4))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} {1839#(= (select |#valid| |main_~#s~0.base|) 1)} #128#return; {1853#(and (not (= |main_~#s~0.base| |main_#t~ret11.base|)) (= (select |#valid| |main_#t~ret11.base|) 1) (= 0 |main_#t~ret11.offset|) (= (select |#valid| |main_~#s~0.base|) 1) (not (= 0 (select (select |#memory_$Pointer$.base| |main_#t~ret11.base|) 4))))} is VALID [2018-11-23 12:58:59,407 INFO L273 TraceCheckUtils]: 32: Hoare triple {1853#(and (not (= |main_~#s~0.base| |main_#t~ret11.base|)) (= (select |#valid| |main_#t~ret11.base|) 1) (= 0 |main_#t~ret11.offset|) (= (select |#valid| |main_~#s~0.base|) 1) (not (= 0 (select (select |#memory_$Pointer$.base| |main_#t~ret11.base|) 4))))} call write~init~$Pointer$(#t~ret11.base, #t~ret11.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret11.base, #t~ret11.offset;~uneq~0 := 5; {1854#(and (not (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 4))) (not (= |main_~#s~0.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) |main_~#s~0.offset|)) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 1) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-23 12:58:59,408 INFO L256 TraceCheckUtils]: 33: Hoare triple {1854#(and (not (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 4))) (not (= |main_~#s~0.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) |main_~#s~0.offset|)) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 1) (= (select |#valid| |main_~#s~0.base|) 1))} call dll_append(~#s~0.base, ~#s~0.offset, ~uneq~0); {1855#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 12:58:59,409 INFO L273 TraceCheckUtils]: 34: Hoare triple {1855#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {1856#(and (= |#valid| |old(#valid)|) (= dll_append_~head.offset |dll_append_#in~head.offset|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= dll_append_~head.base |dll_append_#in~head.base|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 12:58:59,410 INFO L256 TraceCheckUtils]: 35: Hoare triple {1856#(and (= |#valid| |old(#valid)|) (= dll_append_~head.offset |dll_append_#in~head.offset|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= dll_append_~head.base |dll_append_#in~head.base|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call #t~ret6.base, #t~ret6.offset := node_create(~data); {1855#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 12:58:59,413 INFO L273 TraceCheckUtils]: 36: Hoare triple {1855#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~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; {1857#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (not (= 0 node_create_~temp~0.base)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 12:58:59,414 INFO L273 TraceCheckUtils]: 37: Hoare triple {1857#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (not (= 0 node_create_~temp~0.base)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {1857#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (not (= 0 node_create_~temp~0.base)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 12:58:59,417 INFO L273 TraceCheckUtils]: 38: Hoare triple {1857#(and (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (not (= 0 node_create_~temp~0.base)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} call write~$Pointer$(0, 0, ~temp~0.base, 4 + ~temp~0.offset, 4);call write~$Pointer$(0, 0, ~temp~0.base, 8 + ~temp~0.offset, 4);call write~int(~data, ~temp~0.base, ~temp~0.offset, 4);#res.base, #res.offset := ~temp~0.base, ~temp~0.offset; {1858#(and (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (= 0 (select |old(#valid)| |node_create_#res.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|)))) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (not (= 0 |node_create_#res.base|)))} is VALID [2018-11-23 12:58:59,420 INFO L273 TraceCheckUtils]: 39: Hoare triple {1858#(and (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (= 0 (select |old(#valid)| |node_create_#res.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|)))) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (not (= 0 |node_create_#res.base|)))} assume true; {1858#(and (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (= 0 (select |old(#valid)| |node_create_#res.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|)))) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (not (= 0 |node_create_#res.base|)))} is VALID [2018-11-23 12:58:59,424 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {1858#(and (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (= 0 (select |old(#valid)| |node_create_#res.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|)))) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (not (= 0 |node_create_#res.base|)))} {1856#(and (= |#valid| |old(#valid)|) (= dll_append_~head.offset |dll_append_#in~head.offset|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= dll_append_~head.base |dll_append_#in~head.base|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} #136#return; {1859#(and (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (= 0 (select |old(#valid)| |dll_append_#t~ret6.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|)))) (= dll_append_~head.offset |dll_append_#in~head.offset|) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (not (= 0 |dll_append_#t~ret6.base|)) (= dll_append_~head.base |dll_append_#in~head.base|))} is VALID [2018-11-23 12:58:59,426 INFO L273 TraceCheckUtils]: 41: Hoare triple {1859#(and (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (= 0 (select |old(#valid)| |dll_append_#t~ret6.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|)))) (= dll_append_~head.offset |dll_append_#in~head.offset|) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (not (= 0 |dll_append_#t~ret6.base|)) (= dll_append_~head.base |dll_append_#in~head.base|))} ~new_last~0.base, ~new_last~0.offset := #t~ret6.base, #t~ret6.offset;havoc #t~ret6.base, #t~ret6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~head.base, ~head.offset, 4); {1860#(and (= 0 (select |old(#valid)| dll_append_~new_last~0.base)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (not (= 0 dll_append_~new_last~0.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|)))) (= dll_append_~head.offset |dll_append_#in~head.offset|) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= dll_append_~head.base |dll_append_#in~head.base|))} is VALID [2018-11-23 12:58:59,429 INFO L273 TraceCheckUtils]: 42: Hoare triple {1860#(and (= 0 (select |old(#valid)| dll_append_~new_last~0.base)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (not (= 0 dll_append_~new_last~0.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|)))) (= dll_append_~head.offset |dll_append_#in~head.offset|) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= dll_append_~head.base |dll_append_#in~head.base|))} assume !(0 == #t~mem7.base && 0 == #t~mem7.offset);havoc #t~mem7.base, #t~mem7.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~head.base, ~head.offset, 4);~last~0.base, ~last~0.offset := #t~mem8.base, #t~mem8.offset;havoc #t~mem8.base, #t~mem8.offset; {1861#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (and (= 0 (select |old(#valid)| dll_append_~new_last~0.base)) (not (= 0 dll_append_~new_last~0.base)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) dll_append_~last~0.base) (or (= dll_append_~last~0.base (select (select (store (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base (store (select (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base) (+ dll_append_~new_last~0.offset 8) dll_append_~last~0.base)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#in~head.base|)) (= (select |old(#memory_$Pointer$.base)| dll_append_~last~0.base) (select |#memory_$Pointer$.base| dll_append_~last~0.base))))} is VALID [2018-11-23 12:58:59,430 INFO L273 TraceCheckUtils]: 43: Hoare triple {1861#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (and (= 0 (select |old(#valid)| dll_append_~new_last~0.base)) (not (= 0 dll_append_~new_last~0.base)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) dll_append_~last~0.base) (or (= dll_append_~last~0.base (select (select (store (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base (store (select (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base) (+ dll_append_~new_last~0.offset 8) dll_append_~last~0.base)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#in~head.base|)) (= (select |old(#memory_$Pointer$.base)| dll_append_~last~0.base) (select |#memory_$Pointer$.base| dll_append_~last~0.base))))} call #t~mem10.base, #t~mem10.offset := read~$Pointer$(~last~0.base, 4 + ~last~0.offset, 4); {1861#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (and (= 0 (select |old(#valid)| dll_append_~new_last~0.base)) (not (= 0 dll_append_~new_last~0.base)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) dll_append_~last~0.base) (or (= dll_append_~last~0.base (select (select (store (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base (store (select (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base) (+ dll_append_~new_last~0.offset 8) dll_append_~last~0.base)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#in~head.base|)) (= (select |old(#memory_$Pointer$.base)| dll_append_~last~0.base) (select |#memory_$Pointer$.base| dll_append_~last~0.base))))} is VALID [2018-11-23 12:58:59,430 INFO L273 TraceCheckUtils]: 44: Hoare triple {1861#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (and (= 0 (select |old(#valid)| dll_append_~new_last~0.base)) (not (= 0 dll_append_~new_last~0.base)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) dll_append_~last~0.base) (or (= dll_append_~last~0.base (select (select (store (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base (store (select (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base) (+ dll_append_~new_last~0.offset 8) dll_append_~last~0.base)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#in~head.base|)) (= (select |old(#memory_$Pointer$.base)| dll_append_~last~0.base) (select |#memory_$Pointer$.base| dll_append_~last~0.base))))} assume !(#t~mem10.base != 0 || #t~mem10.offset != 0);havoc #t~mem10.base, #t~mem10.offset; {1861#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (and (= 0 (select |old(#valid)| dll_append_~new_last~0.base)) (not (= 0 dll_append_~new_last~0.base)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) dll_append_~last~0.base) (or (= dll_append_~last~0.base (select (select (store (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base (store (select (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base) (+ dll_append_~new_last~0.offset 8) dll_append_~last~0.base)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#in~head.base|)) (= (select |old(#memory_$Pointer$.base)| dll_append_~last~0.base) (select |#memory_$Pointer$.base| dll_append_~last~0.base))))} is VALID [2018-11-23 12:58:59,437 INFO L273 TraceCheckUtils]: 45: Hoare triple {1861#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (and (= 0 (select |old(#valid)| dll_append_~new_last~0.base)) (not (= 0 dll_append_~new_last~0.base)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) dll_append_~last~0.base) (or (= dll_append_~last~0.base (select (select (store (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base (store (select (store |#memory_$Pointer$.base| dll_append_~last~0.base (store (select |#memory_$Pointer$.base| dll_append_~last~0.base) (+ dll_append_~last~0.offset 4) dll_append_~new_last~0.base)) dll_append_~new_last~0.base) (+ dll_append_~new_last~0.offset 8) dll_append_~last~0.base)) |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#in~head.base|)) (= (select |old(#memory_$Pointer$.base)| dll_append_~last~0.base) (select |#memory_$Pointer$.base| dll_append_~last~0.base))))} call write~$Pointer$(~new_last~0.base, ~new_last~0.offset, ~last~0.base, 4 + ~last~0.offset, 4);call write~$Pointer$(~last~0.base, ~last~0.offset, ~new_last~0.base, 8 + ~new_last~0.offset, 4); {1862#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (and (or (and (= (store (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))))) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (or (= (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (not (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)))))))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#in~head.base|)) (or (= (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= 0 (select |old(#valid)| (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (or (= 0 (select |old(#valid)| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (store (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))))} is VALID [2018-11-23 12:58:59,442 INFO L273 TraceCheckUtils]: 46: Hoare triple {1862#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (and (or (and (= (store (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))))) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (or (= (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (not (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)))))))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#in~head.base|)) (or (= (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= 0 (select |old(#valid)| (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (or (= 0 (select |old(#valid)| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (store (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))))} assume true; {1862#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (and (or (and (= (store (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))))) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (or (= (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (not (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)))))))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#in~head.base|)) (or (= (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= 0 (select |old(#valid)| (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (or (= 0 (select |old(#valid)| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (store (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))))} is VALID [2018-11-23 12:58:59,446 INFO L268 TraceCheckUtils]: 47: Hoare quadruple {1862#(or (= 0 (select |old(#valid)| |dll_append_#in~head.base|)) (and (or (and (= (store (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))))) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (or (= (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))) (not (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (@diff (select |old(#memory_$Pointer$.base)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)) (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |dll_append_#in~head.base|) |dll_append_#in~head.offset|)))))))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) |dll_append_#in~head.base|)) (or (= (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= 0 (select |old(#valid)| (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (or (= 0 (select |old(#valid)| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (= (store (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|))) |#memory_$Pointer$.offset|) (or (= 0 (select |old(#valid)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|))) (= (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|) (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_append_#in~head.base|) |dll_append_#in~head.offset|))))} {1854#(and (not (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 4))) (not (= |main_~#s~0.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) |main_~#s~0.offset|)) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 1) (= (select |#valid| |main_~#s~0.base|) 1))} #130#return; {1863#(and (not (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 4))) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) |main_~#s~0.offset|)))} is VALID [2018-11-23 12:58:59,447 INFO L273 TraceCheckUtils]: 48: Hoare triple {1863#(and (not (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 4))) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) |main_~#s~0.offset|)))} call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;~count~0 := 0;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4); {1864#(not (= 0 |main_#t~mem13.base|))} is VALID [2018-11-23 12:58:59,448 INFO L273 TraceCheckUtils]: 49: Hoare triple {1864#(not (= 0 |main_#t~mem13.base|))} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset; {1838#false} is VALID [2018-11-23 12:58:59,448 INFO L273 TraceCheckUtils]: 50: Hoare triple {1838#false} assume ~count~0 != 1 + ~len~0; {1838#false} is VALID [2018-11-23 12:58:59,448 INFO L273 TraceCheckUtils]: 51: Hoare triple {1838#false} assume !false; {1838#false} is VALID [2018-11-23 12:58:59,467 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 2 proven. 19 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 12:58:59,467 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:58:59,467 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:58:59,478 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:58:59,537 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:58:59,576 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:58:59,579 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:58:59,648 INFO L478 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-23 12:58:59,658 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 12:58:59,667 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:58:59,667 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:10, output treesize:9 [2018-11-23 12:58:59,669 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:58:59,669 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_31|]. (and (= |#valid| (store |v_#valid_31| |main_~#s~0.base| 1)) (= |main_~#s~0.offset| 0)) [2018-11-23 12:58:59,669 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= |main_~#s~0.offset| 0) (= (select |#valid| |main_~#s~0.base|) 1)) [2018-11-23 12:59:01,083 WARN L521 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 4 z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:59:01,085 FATAL L265 ToolchainWalker]: An unrecoverable error occured during an interaction with an SMT solver: de.uni_freiburg.informatik.ultimate.logic.SMTLIBException: line 82815 column 46: unknown constant v_old(#valid)_BEFORE_CALL_5 at de.uni_freiburg.informatik.ultimate.smtsolver.external.Parser$Action$.CUP$do_action(Parser.java:1420) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Parser.do_action(Parser.java:630) at com.github.jhoenicke.javacup.runtime.LRParser.parse(LRParser.java:419) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor.parse(Executor.java:205) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor.parseSuccess(Executor.java:221) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Scriptor.assertTerm(Scriptor.java:147) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.arrays.DiffWrapperScript$DiffTransformer.checkOrAddAxiom(DiffWrapperScript.java:164) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.arrays.DiffWrapperScript$DiffTransformer.convertApplicationTerm(DiffWrapperScript.java:174) at de.uni_freiburg.informatik.ultimate.logic.TermTransformer$BuildApplicationTerm.walk(TermTransformer.java:320) 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.logic.TermTransformer.transform(TermTransformer.java:253) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.arrays.DiffWrapperScript.assertTerm(DiffWrapperScript.java:112) at de.uni_freiburg.informatik.ultimate.logic.Util.checkSat(Util.java:59) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.normalforms.NnfTransformer.transform(NnfTransformer.java:150) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.tryToEliminate(PartialQuantifierElimination.java:87) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer$QuantifierEliminationPostprocessor.postprocess(IterativePredicateTransformer.java:245) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer.applyPostprocessors(IterativePredicateTransformer.java:439) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer.computeStrongestPostconditionSequence(IterativePredicateTransformer.java:200) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.computeInterpolantsUsingUnsatCore(TraceCheckSpWp.java:286) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.computeInterpolants(TraceCheckSpWp.java:175) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.(TraceCheckSpWp.java:162) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructForwardBackward(TraceCheckConstructor.java:224) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructTraceCheck(TraceCheckConstructor.java:188) 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:456) 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:334) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:174) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:126) 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-23 12:59:01,090 INFO L168 Benchmark]: Toolchain (without parser) took 139167.90 ms. Allocated memory was 1.5 GB in the beginning and 2.6 GB in the end (delta: 1.1 GB). Free memory was 1.4 GB in the beginning and 1.7 GB in the end (delta: -275.2 MB). Peak memory consumption was 792.8 MB. Max. memory is 7.1 GB. [2018-11-23 12:59:01,092 INFO L168 Benchmark]: CDTParser took 0.29 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 12:59:01,092 INFO L168 Benchmark]: CACSL2BoogieTranslator took 755.68 ms. Allocated memory was 1.5 GB in the beginning and 2.3 GB in the end (delta: 747.1 MB). Free memory was 1.4 GB in the beginning and 2.2 GB in the end (delta: -794.8 MB). Peak memory consumption was 38.9 MB. Max. memory is 7.1 GB. [2018-11-23 12:59:01,093 INFO L168 Benchmark]: Boogie Procedure Inliner took 51.72 ms. Allocated memory is still 2.3 GB. Free memory was 2.2 GB in the beginning and 2.2 GB in the end (delta: 13.5 MB). Peak memory consumption was 13.5 MB. Max. memory is 7.1 GB. [2018-11-23 12:59:01,093 INFO L168 Benchmark]: Boogie Preprocessor took 96.80 ms. Allocated memory is still 2.3 GB. Free memory is still 2.2 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 12:59:01,094 INFO L168 Benchmark]: RCFGBuilder took 1140.05 ms. Allocated memory is still 2.3 GB. Free memory was 2.2 GB in the beginning and 2.2 GB in the end (delta: 51.4 MB). Peak memory consumption was 51.4 MB. Max. memory is 7.1 GB. [2018-11-23 12:59:01,094 INFO L168 Benchmark]: TraceAbstraction took 137118.08 ms. Allocated memory was 2.3 GB in the beginning and 2.6 GB in the end (delta: 320.9 MB). Free memory was 2.2 GB in the beginning and 1.7 GB in the end (delta: 454.8 MB). Peak memory consumption was 775.6 MB. Max. memory is 7.1 GB. [2018-11-23 12:59:01,100 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.29 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 755.68 ms. Allocated memory was 1.5 GB in the beginning and 2.3 GB in the end (delta: 747.1 MB). Free memory was 1.4 GB in the beginning and 2.2 GB in the end (delta: -794.8 MB). Peak memory consumption was 38.9 MB. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 51.72 ms. Allocated memory is still 2.3 GB. Free memory was 2.2 GB in the beginning and 2.2 GB in the end (delta: 13.5 MB). Peak memory consumption was 13.5 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 96.80 ms. Allocated memory is still 2.3 GB. Free memory is still 2.2 GB. There was no memory consumed. Max. memory is 7.1 GB. * RCFGBuilder took 1140.05 ms. Allocated memory is still 2.3 GB. Free memory was 2.2 GB in the beginning and 2.2 GB in the end (delta: 51.4 MB). Peak memory consumption was 51.4 MB. Max. memory is 7.1 GB. * TraceAbstraction took 137118.08 ms. Allocated memory was 2.3 GB in the beginning and 2.6 GB in the end (delta: 320.9 MB). Free memory was 2.2 GB in the beginning and 1.7 GB in the end (delta: 454.8 MB). Peak memory consumption was 775.6 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - ExceptionOrErrorResult: SMTLIBException: line 82815 column 46: unknown constant v_old(#valid)_BEFORE_CALL_5 de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: SMTLIBException: line 82815 column 46: unknown constant v_old(#valid)_BEFORE_CALL_5: de.uni_freiburg.informatik.ultimate.smtsolver.external.Parser$Action$.CUP$do_action(Parser.java:1420) RESULT: Ultimate could not prove your program: Toolchain returned no result. Received shutdown request...