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_prepend_equal_true-unreach-call_true-valid-memsafety.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-61f4311 [2018-11-23 12:56:56,737 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 12:56:56,739 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 12:56:56,751 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 12:56:56,752 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 12:56:56,753 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 12:56:56,754 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 12:56:56,756 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 12:56:56,759 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 12:56:56,760 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 12:56:56,761 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 12:56:56,762 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 12:56:56,765 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 12:56:56,768 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 12:56:56,770 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 12:56:56,770 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 12:56:56,772 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 12:56:56,776 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 12:56:56,782 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 12:56:56,783 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 12:56:56,785 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 12:56:56,786 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 12:56:56,788 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 12:56:56,788 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 12:56:56,788 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 12:56:56,789 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 12:56:56,790 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 12:56:56,791 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 12:56:56,793 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 12:56:56,794 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 12:56:56,794 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 12:56:56,795 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 12:56:56,795 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 12:56:56,796 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 12:56:56,797 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 12:56:56,797 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 12:56:56,798 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:56,826 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 12:56:56,826 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 12:56:56,827 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 12:56:56,827 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 12:56:56,831 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 12:56:56,832 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 12:56:56,832 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 12:56:56,832 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 12:56:56,832 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 12:56:56,833 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 12:56:56,833 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 12:56:56,833 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 12:56:56,833 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 12:56:56,833 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 12:56:56,833 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 12:56:56,834 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 12:56:56,834 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 12:56:56,835 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 12:56:56,835 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 12:56:56,835 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 12:56:56,835 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 12:56:56,835 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 12:56:56,837 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 12:56:56,838 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 12:56:56,838 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 12:56:56,838 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 12:56:56,838 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 12:56:56,839 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-23 12:56:56,839 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 12:56:56,839 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 12:56:56,839 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-23 12:56:56,891 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 12:56:56,911 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 12:56:56,915 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 12:56:56,917 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 12:56:56,917 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 12:56:56,918 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/list-simple/dll2n_prepend_equal_true-unreach-call_true-valid-memsafety.i [2018-11-23 12:56:56,994 INFO L221 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/55033001b/7890e9a03d264b449e5e0e7f17033032/FLAGc8961f753 [2018-11-23 12:56:57,597 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 12:56:57,598 INFO L161 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/list-simple/dll2n_prepend_equal_true-unreach-call_true-valid-memsafety.i [2018-11-23 12:56:57,615 INFO L355 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/55033001b/7890e9a03d264b449e5e0e7f17033032/FLAGc8961f753 [2018-11-23 12:56:57,815 INFO L363 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/55033001b/7890e9a03d264b449e5e0e7f17033032 [2018-11-23 12:56:57,826 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 12:56:57,828 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 12:56:57,828 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 12:56:57,829 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 12:56:57,832 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 12:56:57,834 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:56:57" (1/1) ... [2018-11-23 12:56:57,837 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@1be1c72a and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:57, skipping insertion in model container [2018-11-23 12:56:57,838 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:56:57" (1/1) ... [2018-11-23 12:56:57,848 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 12:56:57,909 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 12:56:58,289 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:56:58,305 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 12:56:58,366 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:56:58,442 INFO L195 MainTranslator]: Completed translation [2018-11-23 12:56:58,443 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:58 WrapperNode [2018-11-23 12:56:58,443 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 12:56:58,444 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 12:56:58,444 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 12:56:58,444 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 12:56:58,453 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:58" (1/1) ... [2018-11-23 12:56:58,556 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:58" (1/1) ... [2018-11-23 12:56:58,570 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 12:56:58,570 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 12:56:58,571 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 12:56:58,571 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 12:56:58,582 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:58" (1/1) ... [2018-11-23 12:56:58,582 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:58" (1/1) ... [2018-11-23 12:56:58,587 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:58" (1/1) ... [2018-11-23 12:56:58,587 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:58" (1/1) ... [2018-11-23 12:56:58,618 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:58" (1/1) ... [2018-11-23 12:56:58,633 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:58" (1/1) ... [2018-11-23 12:56:58,639 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:58" (1/1) ... [2018-11-23 12:56:58,648 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 12:56:58,649 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 12:56:58,649 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 12:56:58,649 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 12:56:58,650 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:58" (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:58,717 INFO L130 BoogieDeclarations]: Found specification of procedure dll_destroy [2018-11-23 12:56:58,717 INFO L138 BoogieDeclarations]: Found implementation of procedure dll_destroy [2018-11-23 12:56:58,718 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 12:56:58,718 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-23 12:56:58,718 INFO L130 BoogieDeclarations]: Found specification of procedure exit [2018-11-23 12:56:58,718 INFO L138 BoogieDeclarations]: Found implementation of procedure exit [2018-11-23 12:56:58,719 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-23 12:56:58,719 INFO L130 BoogieDeclarations]: Found specification of procedure node_create [2018-11-23 12:56:58,719 INFO L138 BoogieDeclarations]: Found implementation of procedure node_create [2018-11-23 12:56:58,719 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 12:56:58,719 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 12:56:58,720 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 12:56:58,720 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 12:56:58,720 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2018-11-23 12:56:58,720 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2018-11-23 12:56:58,720 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-23 12:56:58,721 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2018-11-23 12:56:58,721 INFO L130 BoogieDeclarations]: Found specification of procedure dll_create [2018-11-23 12:56:58,721 INFO L138 BoogieDeclarations]: Found implementation of procedure dll_create [2018-11-23 12:56:58,721 INFO L130 BoogieDeclarations]: Found specification of procedure dll_prepend [2018-11-23 12:56:58,722 INFO L138 BoogieDeclarations]: Found implementation of procedure dll_prepend [2018-11-23 12:56:58,722 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 12:56:58,722 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 12:56:59,788 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 12:56:59,789 INFO L280 CfgBuilder]: Removed 3 assue(true) statements. [2018-11-23 12:56:59,789 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:56:59 BoogieIcfgContainer [2018-11-23 12:56:59,789 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 12:56:59,790 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 12:56:59,790 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 12:56:59,794 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 12:56:59,794 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 12:56:57" (1/3) ... [2018-11-23 12:56:59,795 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@e70bd44 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:56:59, skipping insertion in model container [2018-11-23 12:56:59,795 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:56:58" (2/3) ... [2018-11-23 12:56:59,795 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@e70bd44 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:56:59, skipping insertion in model container [2018-11-23 12:56:59,796 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:56:59" (3/3) ... [2018-11-23 12:56:59,797 INFO L112 eAbstractionObserver]: Analyzing ICFG dll2n_prepend_equal_true-unreach-call_true-valid-memsafety.i [2018-11-23 12:56:59,808 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 12:56:59,818 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 12:56:59,837 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 12:56:59,867 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 12:56:59,868 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 12:56:59,868 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 12:56:59,868 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 12:56:59,869 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 12:56:59,869 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 12:56:59,869 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 12:56:59,869 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 12:56:59,869 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 12:56:59,889 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states. [2018-11-23 12:56:59,897 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2018-11-23 12:56:59,897 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:56:59,898 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, 1] [2018-11-23 12:56:59,901 INFO L423 AbstractCegarLoop]: === Iteration 1 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:56:59,907 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:56:59,908 INFO L82 PathProgramCache]: Analyzing trace with hash -8262080, now seen corresponding path program 1 times [2018-11-23 12:56:59,910 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:56:59,910 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:56:59,963 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:56:59,963 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:56:59,963 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:57:00,051 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:57:00,169 INFO L256 TraceCheckUtils]: 0: Hoare triple {53#true} call ULTIMATE.init(); {53#true} is VALID [2018-11-23 12:57:00,172 INFO L273 TraceCheckUtils]: 1: Hoare triple {53#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {53#true} is VALID [2018-11-23 12:57:00,173 INFO L273 TraceCheckUtils]: 2: Hoare triple {53#true} assume true; {53#true} is VALID [2018-11-23 12:57:00,173 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {53#true} {53#true} #118#return; {53#true} is VALID [2018-11-23 12:57:00,173 INFO L256 TraceCheckUtils]: 4: Hoare triple {53#true} call #t~ret16 := main(); {53#true} is VALID [2018-11-23 12:57:00,174 INFO L273 TraceCheckUtils]: 5: Hoare triple {53#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {53#true} is VALID [2018-11-23 12:57:00,174 INFO L256 TraceCheckUtils]: 6: Hoare triple {53#true} call #t~ret10.base, #t~ret10.offset := dll_create(~len~0, ~data~0); {53#true} is VALID [2018-11-23 12:57:00,174 INFO L273 TraceCheckUtils]: 7: Hoare triple {53#true} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {53#true} is VALID [2018-11-23 12:57:00,175 INFO L273 TraceCheckUtils]: 8: Hoare triple {53#true} assume !(~len > 0); {53#true} is VALID [2018-11-23 12:57:00,175 INFO L273 TraceCheckUtils]: 9: Hoare triple {53#true} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {53#true} is VALID [2018-11-23 12:57:00,175 INFO L273 TraceCheckUtils]: 10: Hoare triple {53#true} assume true; {53#true} is VALID [2018-11-23 12:57:00,176 INFO L268 TraceCheckUtils]: 11: Hoare quadruple {53#true} {53#true} #108#return; {53#true} is VALID [2018-11-23 12:57:00,176 INFO L273 TraceCheckUtils]: 12: Hoare triple {53#true} call write~init~$Pointer$(#t~ret10.base, #t~ret10.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret10.base, #t~ret10.offset; {53#true} is VALID [2018-11-23 12:57:00,176 INFO L256 TraceCheckUtils]: 13: Hoare triple {53#true} call dll_prepend(~#s~0.base, ~#s~0.offset, ~data~0); {53#true} is VALID [2018-11-23 12:57:00,177 INFO L273 TraceCheckUtils]: 14: Hoare triple {53#true} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {53#true} is VALID [2018-11-23 12:57:00,177 INFO L256 TraceCheckUtils]: 15: Hoare triple {53#true} call #t~ret6.base, #t~ret6.offset := node_create(~data); {53#true} is VALID [2018-11-23 12:57:00,177 INFO L273 TraceCheckUtils]: 16: Hoare triple {53#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; {53#true} is VALID [2018-11-23 12:57:00,178 INFO L273 TraceCheckUtils]: 17: Hoare triple {53#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {53#true} is VALID [2018-11-23 12:57:00,178 INFO L273 TraceCheckUtils]: 18: Hoare triple {53#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; {53#true} is VALID [2018-11-23 12:57:00,179 INFO L273 TraceCheckUtils]: 19: Hoare triple {53#true} assume true; {53#true} is VALID [2018-11-23 12:57:00,179 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {53#true} {53#true} #116#return; {53#true} is VALID [2018-11-23 12:57:00,179 INFO L273 TraceCheckUtils]: 21: Hoare triple {53#true} ~new_head~1.base, ~new_head~1.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);call write~$Pointer$(#t~mem7.base, #t~mem7.offset, ~new_head~1.base, 4 + ~new_head~1.offset, 4);havoc #t~mem7.base, #t~mem7.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~head.base, ~head.offset, 4); {53#true} is VALID [2018-11-23 12:57:00,180 INFO L273 TraceCheckUtils]: 22: Hoare triple {53#true} assume #t~mem8.base != 0 || #t~mem8.offset != 0;havoc #t~mem8.base, #t~mem8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4);call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, #t~mem9.base, 8 + #t~mem9.offset, 4);havoc #t~mem9.base, #t~mem9.offset; {53#true} is VALID [2018-11-23 12:57:00,180 INFO L273 TraceCheckUtils]: 23: Hoare triple {53#true} call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, ~head.base, ~head.offset, 4); {53#true} is VALID [2018-11-23 12:57:00,180 INFO L273 TraceCheckUtils]: 24: Hoare triple {53#true} assume true; {53#true} is VALID [2018-11-23 12:57:00,181 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {53#true} {53#true} #110#return; {53#true} is VALID [2018-11-23 12:57:00,181 INFO L273 TraceCheckUtils]: 26: Hoare triple {53#true} call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem11.base, #t~mem11.offset;havoc #t~mem11.base, #t~mem11.offset;~count~0 := 0; {53#true} is VALID [2018-11-23 12:57:00,194 INFO L273 TraceCheckUtils]: 27: Hoare triple {53#true} assume !true; {54#false} is VALID [2018-11-23 12:57:00,195 INFO L273 TraceCheckUtils]: 28: Hoare triple {54#false} assume ~count~0 != 1 + ~len~0; {54#false} is VALID [2018-11-23 12:57:00,195 INFO L273 TraceCheckUtils]: 29: Hoare triple {54#false} assume !false; {54#false} is VALID [2018-11-23 12:57:00,202 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:57:00,205 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:57:00,205 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-23 12:57:00,211 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 30 [2018-11-23 12:57:00,214 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:57:00,218 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2018-11-23 12:57:00,579 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:57:00,579 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-23 12:57:00,588 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-23 12:57:00,589 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 12:57:00,591 INFO L87 Difference]: Start difference. First operand 50 states. Second operand 2 states. [2018-11-23 12:57:01,032 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:01,033 INFO L93 Difference]: Finished difference Result 86 states and 105 transitions. [2018-11-23 12:57:01,033 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-23 12:57:01,033 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 30 [2018-11-23 12:57:01,033 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:57:01,035 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 12:57:01,047 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 105 transitions. [2018-11-23 12:57:01,048 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 12:57:01,054 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 105 transitions. [2018-11-23 12:57:01,054 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 105 transitions. [2018-11-23 12:57:01,628 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 105 edges. 105 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:57:01,642 INFO L225 Difference]: With dead ends: 86 [2018-11-23 12:57:01,642 INFO L226 Difference]: Without dead ends: 36 [2018-11-23 12:57:01,646 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:57:01,662 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2018-11-23 12:57:01,689 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 36. [2018-11-23 12:57:01,690 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:57:01,690 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand 36 states. [2018-11-23 12:57:01,691 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 36 states. [2018-11-23 12:57:01,691 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 36 states. [2018-11-23 12:57:01,696 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:01,696 INFO L93 Difference]: Finished difference Result 36 states and 40 transitions. [2018-11-23 12:57:01,696 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 40 transitions. [2018-11-23 12:57:01,697 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:57:01,697 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:57:01,697 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 36 states. [2018-11-23 12:57:01,698 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 36 states. [2018-11-23 12:57:01,702 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:01,703 INFO L93 Difference]: Finished difference Result 36 states and 40 transitions. [2018-11-23 12:57:01,703 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 40 transitions. [2018-11-23 12:57:01,704 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:57:01,704 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:57:01,704 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:57:01,704 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:57:01,704 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2018-11-23 12:57:01,708 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 40 transitions. [2018-11-23 12:57:01,710 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 40 transitions. Word has length 30 [2018-11-23 12:57:01,710 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:57:01,710 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 40 transitions. [2018-11-23 12:57:01,711 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-23 12:57:01,711 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 40 transitions. [2018-11-23 12:57:01,712 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2018-11-23 12:57:01,712 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:57:01,713 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, 1] [2018-11-23 12:57:01,713 INFO L423 AbstractCegarLoop]: === Iteration 2 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:57:01,713 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:57:01,713 INFO L82 PathProgramCache]: Analyzing trace with hash -8270729, now seen corresponding path program 1 times [2018-11-23 12:57:01,714 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:57:01,714 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:57:01,716 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:57:01,716 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:57:01,716 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:57:01,757 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:57:02,121 INFO L256 TraceCheckUtils]: 0: Hoare triple {296#true} call ULTIMATE.init(); {296#true} is VALID [2018-11-23 12:57:02,122 INFO L273 TraceCheckUtils]: 1: Hoare triple {296#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {296#true} is VALID [2018-11-23 12:57:02,122 INFO L273 TraceCheckUtils]: 2: Hoare triple {296#true} assume true; {296#true} is VALID [2018-11-23 12:57:02,123 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {296#true} {296#true} #118#return; {296#true} is VALID [2018-11-23 12:57:02,123 INFO L256 TraceCheckUtils]: 4: Hoare triple {296#true} call #t~ret16 := main(); {296#true} is VALID [2018-11-23 12:57:02,124 INFO L273 TraceCheckUtils]: 5: Hoare triple {296#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {296#true} is VALID [2018-11-23 12:57:02,124 INFO L256 TraceCheckUtils]: 6: Hoare triple {296#true} call #t~ret10.base, #t~ret10.offset := dll_create(~len~0, ~data~0); {296#true} is VALID [2018-11-23 12:57:02,124 INFO L273 TraceCheckUtils]: 7: Hoare triple {296#true} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {296#true} is VALID [2018-11-23 12:57:02,124 INFO L273 TraceCheckUtils]: 8: Hoare triple {296#true} assume !(~len > 0); {296#true} is VALID [2018-11-23 12:57:02,125 INFO L273 TraceCheckUtils]: 9: Hoare triple {296#true} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {296#true} is VALID [2018-11-23 12:57:02,125 INFO L273 TraceCheckUtils]: 10: Hoare triple {296#true} assume true; {296#true} is VALID [2018-11-23 12:57:02,125 INFO L268 TraceCheckUtils]: 11: Hoare quadruple {296#true} {296#true} #108#return; {296#true} is VALID [2018-11-23 12:57:02,126 INFO L273 TraceCheckUtils]: 12: Hoare triple {296#true} call write~init~$Pointer$(#t~ret10.base, #t~ret10.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret10.base, #t~ret10.offset; {296#true} is VALID [2018-11-23 12:57:02,126 INFO L256 TraceCheckUtils]: 13: Hoare triple {296#true} call dll_prepend(~#s~0.base, ~#s~0.offset, ~data~0); {296#true} is VALID [2018-11-23 12:57:02,127 INFO L273 TraceCheckUtils]: 14: Hoare triple {296#true} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {298#(and (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} is VALID [2018-11-23 12:57:02,127 INFO L256 TraceCheckUtils]: 15: Hoare triple {298#(and (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} call #t~ret6.base, #t~ret6.offset := node_create(~data); {296#true} is VALID [2018-11-23 12:57:02,128 INFO L273 TraceCheckUtils]: 16: Hoare triple {296#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; {299#(not (= 0 node_create_~temp~0.base))} is VALID [2018-11-23 12:57:02,128 INFO L273 TraceCheckUtils]: 17: Hoare triple {299#(not (= 0 node_create_~temp~0.base))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {299#(not (= 0 node_create_~temp~0.base))} is VALID [2018-11-23 12:57:02,129 INFO L273 TraceCheckUtils]: 18: Hoare triple {299#(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; {300#(not (= 0 |node_create_#res.base|))} is VALID [2018-11-23 12:57:02,130 INFO L273 TraceCheckUtils]: 19: Hoare triple {300#(not (= 0 |node_create_#res.base|))} assume true; {300#(not (= 0 |node_create_#res.base|))} is VALID [2018-11-23 12:57:02,136 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {300#(not (= 0 |node_create_#res.base|))} {298#(and (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} #116#return; {301#(and (not (= 0 |dll_prepend_#t~ret6.base|)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} is VALID [2018-11-23 12:57:02,138 INFO L273 TraceCheckUtils]: 21: Hoare triple {301#(and (not (= 0 |dll_prepend_#t~ret6.base|)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} ~new_head~1.base, ~new_head~1.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);call write~$Pointer$(#t~mem7.base, #t~mem7.offset, ~new_head~1.base, 4 + ~new_head~1.offset, 4);havoc #t~mem7.base, #t~mem7.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~head.base, ~head.offset, 4); {302#(and (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (not (= 0 dll_prepend_~new_head~1.base)) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} is VALID [2018-11-23 12:57:02,151 INFO L273 TraceCheckUtils]: 22: Hoare triple {302#(and (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (not (= 0 dll_prepend_~new_head~1.base)) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} assume #t~mem8.base != 0 || #t~mem8.offset != 0;havoc #t~mem8.base, #t~mem8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4);call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, #t~mem9.base, 8 + #t~mem9.offset, 4);havoc #t~mem9.base, #t~mem9.offset; {302#(and (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (not (= 0 dll_prepend_~new_head~1.base)) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} is VALID [2018-11-23 12:57:02,152 INFO L273 TraceCheckUtils]: 23: Hoare triple {302#(and (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (not (= 0 dll_prepend_~new_head~1.base)) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, ~head.base, ~head.offset, 4); {303#(not (= 0 (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)))} is VALID [2018-11-23 12:57:02,153 INFO L273 TraceCheckUtils]: 24: Hoare triple {303#(not (= 0 (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)))} assume true; {303#(not (= 0 (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)))} is VALID [2018-11-23 12:57:02,155 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {303#(not (= 0 (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)))} {296#true} #110#return; {304#(not (= 0 (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)))} is VALID [2018-11-23 12:57:02,157 INFO L273 TraceCheckUtils]: 26: Hoare triple {304#(not (= 0 (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)))} call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem11.base, #t~mem11.offset;havoc #t~mem11.base, #t~mem11.offset;~count~0 := 0; {305#(not (= 0 main_~ptr~0.base))} is VALID [2018-11-23 12:57:02,157 INFO L273 TraceCheckUtils]: 27: Hoare triple {305#(not (= 0 main_~ptr~0.base))} assume !(~ptr~0.base != 0 || ~ptr~0.offset != 0); {297#false} is VALID [2018-11-23 12:57:02,158 INFO L273 TraceCheckUtils]: 28: Hoare triple {297#false} assume ~count~0 != 1 + ~len~0; {297#false} is VALID [2018-11-23 12:57:02,158 INFO L273 TraceCheckUtils]: 29: Hoare triple {297#false} assume !false; {297#false} is VALID [2018-11-23 12:57:02,161 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:57:02,162 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:57:02,162 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2018-11-23 12:57:02,164 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 30 [2018-11-23 12:57:02,164 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:57:02,165 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2018-11-23 12:57:02,252 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:57:02,252 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2018-11-23 12:57:02,253 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2018-11-23 12:57:02,253 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=71, Unknown=0, NotChecked=0, Total=90 [2018-11-23 12:57:02,253 INFO L87 Difference]: Start difference. First operand 36 states and 40 transitions. Second operand 10 states. [2018-11-23 12:57:03,012 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:03,012 INFO L93 Difference]: Finished difference Result 43 states and 47 transitions. [2018-11-23 12:57:03,013 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2018-11-23 12:57:03,013 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 30 [2018-11-23 12:57:03,014 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:57:03,014 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2018-11-23 12:57:03,017 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 47 transitions. [2018-11-23 12:57:03,017 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2018-11-23 12:57:03,020 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 47 transitions. [2018-11-23 12:57:03,020 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 47 transitions. [2018-11-23 12:57:03,154 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:57:03,158 INFO L225 Difference]: With dead ends: 43 [2018-11-23 12:57:03,158 INFO L226 Difference]: Without dead ends: 40 [2018-11-23 12:57:03,159 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 13 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=32, Invalid=124, Unknown=0, NotChecked=0, Total=156 [2018-11-23 12:57:03,160 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2018-11-23 12:57:03,196 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 37. [2018-11-23 12:57:03,196 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:57:03,196 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 37 states. [2018-11-23 12:57:03,196 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 37 states. [2018-11-23 12:57:03,196 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 37 states. [2018-11-23 12:57:03,200 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:03,200 INFO L93 Difference]: Finished difference Result 40 states and 44 transitions. [2018-11-23 12:57:03,200 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 44 transitions. [2018-11-23 12:57:03,201 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:57:03,201 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:57:03,201 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 40 states. [2018-11-23 12:57:03,202 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 40 states. [2018-11-23 12:57:03,205 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:03,205 INFO L93 Difference]: Finished difference Result 40 states and 44 transitions. [2018-11-23 12:57:03,205 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 44 transitions. [2018-11-23 12:57:03,206 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:57:03,206 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:57:03,206 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:57:03,206 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:57:03,207 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2018-11-23 12:57:03,209 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 41 transitions. [2018-11-23 12:57:03,210 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 41 transitions. Word has length 30 [2018-11-23 12:57:03,210 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:57:03,210 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 41 transitions. [2018-11-23 12:57:03,210 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2018-11-23 12:57:03,210 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 41 transitions. [2018-11-23 12:57:03,212 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2018-11-23 12:57:03,212 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:57:03,212 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, 1] [2018-11-23 12:57:03,212 INFO L423 AbstractCegarLoop]: === Iteration 3 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:57:03,213 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:57:03,213 INFO L82 PathProgramCache]: Analyzing trace with hash -8269055, now seen corresponding path program 1 times [2018-11-23 12:57:03,213 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:57:03,213 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:57:03,215 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:57:03,215 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:57:03,215 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:57:03,240 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:57:03,341 INFO L256 TraceCheckUtils]: 0: Hoare triple {504#true} call ULTIMATE.init(); {504#true} is VALID [2018-11-23 12:57:03,342 INFO L273 TraceCheckUtils]: 1: Hoare triple {504#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {504#true} is VALID [2018-11-23 12:57:03,342 INFO L273 TraceCheckUtils]: 2: Hoare triple {504#true} assume true; {504#true} is VALID [2018-11-23 12:57:03,343 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {504#true} {504#true} #118#return; {504#true} is VALID [2018-11-23 12:57:03,343 INFO L256 TraceCheckUtils]: 4: Hoare triple {504#true} call #t~ret16 := main(); {504#true} is VALID [2018-11-23 12:57:03,345 INFO L273 TraceCheckUtils]: 5: Hoare triple {504#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {506#(<= 2 main_~len~0)} is VALID [2018-11-23 12:57:03,345 INFO L256 TraceCheckUtils]: 6: Hoare triple {506#(<= 2 main_~len~0)} call #t~ret10.base, #t~ret10.offset := dll_create(~len~0, ~data~0); {504#true} is VALID [2018-11-23 12:57:03,349 INFO L273 TraceCheckUtils]: 7: Hoare triple {504#true} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {507#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:57:03,350 INFO L273 TraceCheckUtils]: 8: Hoare triple {507#(<= |dll_create_#in~len| dll_create_~len)} assume !(~len > 0); {508#(<= |dll_create_#in~len| 0)} is VALID [2018-11-23 12:57:03,351 INFO L273 TraceCheckUtils]: 9: Hoare triple {508#(<= |dll_create_#in~len| 0)} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {508#(<= |dll_create_#in~len| 0)} is VALID [2018-11-23 12:57:03,351 INFO L273 TraceCheckUtils]: 10: Hoare triple {508#(<= |dll_create_#in~len| 0)} assume true; {508#(<= |dll_create_#in~len| 0)} is VALID [2018-11-23 12:57:03,353 INFO L268 TraceCheckUtils]: 11: Hoare quadruple {508#(<= |dll_create_#in~len| 0)} {506#(<= 2 main_~len~0)} #108#return; {505#false} is VALID [2018-11-23 12:57:03,353 INFO L273 TraceCheckUtils]: 12: Hoare triple {505#false} call write~init~$Pointer$(#t~ret10.base, #t~ret10.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret10.base, #t~ret10.offset; {505#false} is VALID [2018-11-23 12:57:03,354 INFO L256 TraceCheckUtils]: 13: Hoare triple {505#false} call dll_prepend(~#s~0.base, ~#s~0.offset, ~data~0); {504#true} is VALID [2018-11-23 12:57:03,354 INFO L273 TraceCheckUtils]: 14: Hoare triple {504#true} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {504#true} is VALID [2018-11-23 12:57:03,355 INFO L256 TraceCheckUtils]: 15: Hoare triple {504#true} call #t~ret6.base, #t~ret6.offset := node_create(~data); {504#true} is VALID [2018-11-23 12:57:03,355 INFO L273 TraceCheckUtils]: 16: Hoare triple {504#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; {504#true} is VALID [2018-11-23 12:57:03,356 INFO L273 TraceCheckUtils]: 17: Hoare triple {504#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {504#true} is VALID [2018-11-23 12:57:03,356 INFO L273 TraceCheckUtils]: 18: Hoare triple {504#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; {504#true} is VALID [2018-11-23 12:57:03,356 INFO L273 TraceCheckUtils]: 19: Hoare triple {504#true} assume true; {504#true} is VALID [2018-11-23 12:57:03,356 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {504#true} {504#true} #116#return; {504#true} is VALID [2018-11-23 12:57:03,357 INFO L273 TraceCheckUtils]: 21: Hoare triple {504#true} ~new_head~1.base, ~new_head~1.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);call write~$Pointer$(#t~mem7.base, #t~mem7.offset, ~new_head~1.base, 4 + ~new_head~1.offset, 4);havoc #t~mem7.base, #t~mem7.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~head.base, ~head.offset, 4); {504#true} is VALID [2018-11-23 12:57:03,357 INFO L273 TraceCheckUtils]: 22: Hoare triple {504#true} assume #t~mem8.base != 0 || #t~mem8.offset != 0;havoc #t~mem8.base, #t~mem8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4);call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, #t~mem9.base, 8 + #t~mem9.offset, 4);havoc #t~mem9.base, #t~mem9.offset; {504#true} is VALID [2018-11-23 12:57:03,358 INFO L273 TraceCheckUtils]: 23: Hoare triple {504#true} call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, ~head.base, ~head.offset, 4); {504#true} is VALID [2018-11-23 12:57:03,358 INFO L273 TraceCheckUtils]: 24: Hoare triple {504#true} assume true; {504#true} is VALID [2018-11-23 12:57:03,358 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {504#true} {505#false} #110#return; {505#false} is VALID [2018-11-23 12:57:03,358 INFO L273 TraceCheckUtils]: 26: Hoare triple {505#false} call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem11.base, #t~mem11.offset;havoc #t~mem11.base, #t~mem11.offset;~count~0 := 0; {505#false} is VALID [2018-11-23 12:57:03,359 INFO L273 TraceCheckUtils]: 27: Hoare triple {505#false} assume !!(~ptr~0.base != 0 || ~ptr~0.offset != 0);call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4);~temp~2.base, ~temp~2.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;call #t~mem13 := read~int(~ptr~0.base, ~ptr~0.offset, 4); {505#false} is VALID [2018-11-23 12:57:03,359 INFO L273 TraceCheckUtils]: 28: Hoare triple {505#false} assume ~data~0 != #t~mem13;havoc #t~mem13; {505#false} is VALID [2018-11-23 12:57:03,360 INFO L273 TraceCheckUtils]: 29: Hoare triple {505#false} assume !false; {505#false} is VALID [2018-11-23 12:57:03,361 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:57:03,362 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:57:03,362 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 12:57:03,362 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 30 [2018-11-23 12:57:03,363 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:57:03,363 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2018-11-23 12:57:03,414 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:57:03,414 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 12:57:03,415 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 12:57:03,415 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:57:03,416 INFO L87 Difference]: Start difference. First operand 37 states and 41 transitions. Second operand 5 states. [2018-11-23 12:57:03,658 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:03,658 INFO L93 Difference]: Finished difference Result 66 states and 74 transitions. [2018-11-23 12:57:03,658 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 12:57:03,658 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 30 [2018-11-23 12:57:03,659 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:57:03,659 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:57:03,663 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 72 transitions. [2018-11-23 12:57:03,663 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:57:03,666 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 72 transitions. [2018-11-23 12:57:03,667 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 72 transitions. [2018-11-23 12:57:03,777 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 72 edges. 72 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:57:03,780 INFO L225 Difference]: With dead ends: 66 [2018-11-23 12:57:03,780 INFO L226 Difference]: Without dead ends: 42 [2018-11-23 12:57:03,781 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:57:03,781 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 42 states. [2018-11-23 12:57:03,818 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 42 to 38. [2018-11-23 12:57:03,818 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:57:03,819 INFO L82 GeneralOperation]: Start isEquivalent. First operand 42 states. Second operand 38 states. [2018-11-23 12:57:03,819 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand 38 states. [2018-11-23 12:57:03,819 INFO L87 Difference]: Start difference. First operand 42 states. Second operand 38 states. [2018-11-23 12:57:03,821 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:03,822 INFO L93 Difference]: Finished difference Result 42 states and 47 transitions. [2018-11-23 12:57:03,822 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 47 transitions. [2018-11-23 12:57:03,823 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:57:03,823 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:57:03,823 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 42 states. [2018-11-23 12:57:03,823 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 42 states. [2018-11-23 12:57:03,826 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:03,826 INFO L93 Difference]: Finished difference Result 42 states and 47 transitions. [2018-11-23 12:57:03,826 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 47 transitions. [2018-11-23 12:57:03,827 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:57:03,827 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:57:03,828 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:57:03,828 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:57:03,828 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 38 states. [2018-11-23 12:57:03,830 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 38 states to 38 states and 42 transitions. [2018-11-23 12:57:03,830 INFO L78 Accepts]: Start accepts. Automaton has 38 states and 42 transitions. Word has length 30 [2018-11-23 12:57:03,831 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:57:03,831 INFO L480 AbstractCegarLoop]: Abstraction has 38 states and 42 transitions. [2018-11-23 12:57:03,831 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 12:57:03,831 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 42 transitions. [2018-11-23 12:57:03,832 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2018-11-23 12:57:03,832 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:57:03,833 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, 1, 1, 1, 1, 1, 1] [2018-11-23 12:57:03,833 INFO L423 AbstractCegarLoop]: === Iteration 4 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:57:03,833 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:57:03,833 INFO L82 PathProgramCache]: Analyzing trace with hash 8420605, now seen corresponding path program 1 times [2018-11-23 12:57:03,833 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:57:03,834 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:57:03,835 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:57:03,835 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:57:03,835 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:57:03,853 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:57:03,943 INFO L256 TraceCheckUtils]: 0: Hoare triple {738#true} call ULTIMATE.init(); {738#true} is VALID [2018-11-23 12:57:03,944 INFO L273 TraceCheckUtils]: 1: Hoare triple {738#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {738#true} is VALID [2018-11-23 12:57:03,944 INFO L273 TraceCheckUtils]: 2: Hoare triple {738#true} assume true; {738#true} is VALID [2018-11-23 12:57:03,944 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {738#true} {738#true} #118#return; {738#true} is VALID [2018-11-23 12:57:03,944 INFO L256 TraceCheckUtils]: 4: Hoare triple {738#true} call #t~ret16 := main(); {738#true} is VALID [2018-11-23 12:57:03,945 INFO L273 TraceCheckUtils]: 5: Hoare triple {738#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {738#true} is VALID [2018-11-23 12:57:03,945 INFO L256 TraceCheckUtils]: 6: Hoare triple {738#true} call #t~ret10.base, #t~ret10.offset := dll_create(~len~0, ~data~0); {738#true} is VALID [2018-11-23 12:57:03,945 INFO L273 TraceCheckUtils]: 7: Hoare triple {738#true} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {740#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} is VALID [2018-11-23 12:57:03,949 INFO L273 TraceCheckUtils]: 8: Hoare triple {740#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} assume !!(~len > 0);call #t~malloc3.base, #t~malloc3.offset := #Ultimate.alloc(12);~new_head~0.base, ~new_head~0.offset := #t~malloc3.base, #t~malloc3.offset; {740#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} is VALID [2018-11-23 12:57:03,949 INFO L273 TraceCheckUtils]: 9: Hoare triple {740#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} assume !(0 == ~new_head~0.base && 0 == ~new_head~0.offset); {740#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} is VALID [2018-11-23 12:57:03,951 INFO L273 TraceCheckUtils]: 10: Hoare triple {740#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} 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);call write~$Pointer$(0, 0, ~new_head~0.base, 8 + ~new_head~0.offset, 4); {740#(and (= dll_create_~head~0.base 0) (= dll_create_~head~0.offset 0))} is VALID [2018-11-23 12:57:03,953 INFO L273 TraceCheckUtils]: 11: Hoare triple {740#(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); {739#false} is VALID [2018-11-23 12:57:03,953 INFO L273 TraceCheckUtils]: 12: Hoare triple {739#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; {739#false} is VALID [2018-11-23 12:57:03,953 INFO L273 TraceCheckUtils]: 13: Hoare triple {739#false} assume !(~len > 0); {739#false} is VALID [2018-11-23 12:57:03,954 INFO L273 TraceCheckUtils]: 14: Hoare triple {739#false} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {739#false} is VALID [2018-11-23 12:57:03,954 INFO L273 TraceCheckUtils]: 15: Hoare triple {739#false} assume true; {739#false} is VALID [2018-11-23 12:57:03,954 INFO L268 TraceCheckUtils]: 16: Hoare quadruple {739#false} {738#true} #108#return; {739#false} is VALID [2018-11-23 12:57:03,954 INFO L273 TraceCheckUtils]: 17: Hoare triple {739#false} call write~init~$Pointer$(#t~ret10.base, #t~ret10.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret10.base, #t~ret10.offset; {739#false} is VALID [2018-11-23 12:57:03,955 INFO L256 TraceCheckUtils]: 18: Hoare triple {739#false} call dll_prepend(~#s~0.base, ~#s~0.offset, ~data~0); {738#true} is VALID [2018-11-23 12:57:03,955 INFO L273 TraceCheckUtils]: 19: Hoare triple {738#true} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {738#true} is VALID [2018-11-23 12:57:03,955 INFO L256 TraceCheckUtils]: 20: Hoare triple {738#true} call #t~ret6.base, #t~ret6.offset := node_create(~data); {738#true} is VALID [2018-11-23 12:57:03,956 INFO L273 TraceCheckUtils]: 21: Hoare triple {738#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; {738#true} is VALID [2018-11-23 12:57:03,956 INFO L273 TraceCheckUtils]: 22: Hoare triple {738#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {738#true} is VALID [2018-11-23 12:57:03,956 INFO L273 TraceCheckUtils]: 23: Hoare triple {738#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; {738#true} is VALID [2018-11-23 12:57:03,957 INFO L273 TraceCheckUtils]: 24: Hoare triple {738#true} assume true; {738#true} is VALID [2018-11-23 12:57:03,957 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {738#true} {738#true} #116#return; {738#true} is VALID [2018-11-23 12:57:03,957 INFO L273 TraceCheckUtils]: 26: Hoare triple {738#true} ~new_head~1.base, ~new_head~1.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);call write~$Pointer$(#t~mem7.base, #t~mem7.offset, ~new_head~1.base, 4 + ~new_head~1.offset, 4);havoc #t~mem7.base, #t~mem7.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~head.base, ~head.offset, 4); {738#true} is VALID [2018-11-23 12:57:03,958 INFO L273 TraceCheckUtils]: 27: Hoare triple {738#true} assume #t~mem8.base != 0 || #t~mem8.offset != 0;havoc #t~mem8.base, #t~mem8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4);call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, #t~mem9.base, 8 + #t~mem9.offset, 4);havoc #t~mem9.base, #t~mem9.offset; {738#true} is VALID [2018-11-23 12:57:03,958 INFO L273 TraceCheckUtils]: 28: Hoare triple {738#true} call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, ~head.base, ~head.offset, 4); {738#true} is VALID [2018-11-23 12:57:03,958 INFO L273 TraceCheckUtils]: 29: Hoare triple {738#true} assume true; {738#true} is VALID [2018-11-23 12:57:03,958 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {738#true} {739#false} #110#return; {739#false} is VALID [2018-11-23 12:57:03,959 INFO L273 TraceCheckUtils]: 31: Hoare triple {739#false} call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem11.base, #t~mem11.offset;havoc #t~mem11.base, #t~mem11.offset;~count~0 := 0; {739#false} is VALID [2018-11-23 12:57:03,959 INFO L273 TraceCheckUtils]: 32: Hoare triple {739#false} assume !!(~ptr~0.base != 0 || ~ptr~0.offset != 0);call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4);~temp~2.base, ~temp~2.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;call #t~mem13 := read~int(~ptr~0.base, ~ptr~0.offset, 4); {739#false} is VALID [2018-11-23 12:57:03,959 INFO L273 TraceCheckUtils]: 33: Hoare triple {739#false} assume ~data~0 != #t~mem13;havoc #t~mem13; {739#false} is VALID [2018-11-23 12:57:03,960 INFO L273 TraceCheckUtils]: 34: Hoare triple {739#false} assume !false; {739#false} is VALID [2018-11-23 12:57:03,962 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:57:03,963 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:57:03,963 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 12:57:03,963 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 35 [2018-11-23 12:57:03,964 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:57:03,964 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2018-11-23 12:57:04,086 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:57:04,086 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 12:57:04,086 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 12:57:04,086 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 12:57:04,087 INFO L87 Difference]: Start difference. First operand 38 states and 42 transitions. Second operand 3 states. [2018-11-23 12:57:04,231 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:04,231 INFO L93 Difference]: Finished difference Result 71 states and 80 transitions. [2018-11-23 12:57:04,231 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 12:57:04,231 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 35 [2018-11-23 12:57:04,232 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:57:04,232 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 12:57:04,235 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 78 transitions. [2018-11-23 12:57:04,235 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 12:57:04,238 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 78 transitions. [2018-11-23 12:57:04,239 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 78 transitions. [2018-11-23 12:57:04,358 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:57:04,360 INFO L225 Difference]: With dead ends: 71 [2018-11-23 12:57:04,360 INFO L226 Difference]: Without dead ends: 42 [2018-11-23 12:57:04,361 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:57:04,361 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 42 states. [2018-11-23 12:57:04,436 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 42 to 41. [2018-11-23 12:57:04,436 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:57:04,437 INFO L82 GeneralOperation]: Start isEquivalent. First operand 42 states. Second operand 41 states. [2018-11-23 12:57:04,437 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand 41 states. [2018-11-23 12:57:04,437 INFO L87 Difference]: Start difference. First operand 42 states. Second operand 41 states. [2018-11-23 12:57:04,440 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:04,441 INFO L93 Difference]: Finished difference Result 42 states and 46 transitions. [2018-11-23 12:57:04,441 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 46 transitions. [2018-11-23 12:57:04,442 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:57:04,442 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:57:04,442 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 42 states. [2018-11-23 12:57:04,442 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 42 states. [2018-11-23 12:57:04,447 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:04,447 INFO L93 Difference]: Finished difference Result 42 states and 46 transitions. [2018-11-23 12:57:04,447 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 46 transitions. [2018-11-23 12:57:04,448 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:57:04,448 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:57:04,448 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:57:04,448 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:57:04,448 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2018-11-23 12:57:04,450 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 45 transitions. [2018-11-23 12:57:04,451 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 45 transitions. Word has length 35 [2018-11-23 12:57:04,451 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:57:04,451 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 45 transitions. [2018-11-23 12:57:04,451 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 12:57:04,452 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 45 transitions. [2018-11-23 12:57:04,452 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2018-11-23 12:57:04,453 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:57:04,453 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, 1, 1, 1, 1, 1, 1] [2018-11-23 12:57:04,453 INFO L423 AbstractCegarLoop]: === Iteration 5 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:57:04,453 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:57:04,454 INFO L82 PathProgramCache]: Analyzing trace with hash -125592901, now seen corresponding path program 1 times [2018-11-23 12:57:04,454 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:57:04,454 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:57:04,455 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:57:04,455 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:57:04,456 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:57:04,490 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:57:04,621 INFO L256 TraceCheckUtils]: 0: Hoare triple {977#true} call ULTIMATE.init(); {977#true} is VALID [2018-11-23 12:57:04,621 INFO L273 TraceCheckUtils]: 1: Hoare triple {977#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {977#true} is VALID [2018-11-23 12:57:04,622 INFO L273 TraceCheckUtils]: 2: Hoare triple {977#true} assume true; {977#true} is VALID [2018-11-23 12:57:04,622 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {977#true} {977#true} #118#return; {977#true} is VALID [2018-11-23 12:57:04,622 INFO L256 TraceCheckUtils]: 4: Hoare triple {977#true} call #t~ret16 := main(); {977#true} is VALID [2018-11-23 12:57:04,636 INFO L273 TraceCheckUtils]: 5: Hoare triple {977#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {979#(<= 2 main_~len~0)} is VALID [2018-11-23 12:57:04,636 INFO L256 TraceCheckUtils]: 6: Hoare triple {979#(<= 2 main_~len~0)} call #t~ret10.base, #t~ret10.offset := dll_create(~len~0, ~data~0); {977#true} is VALID [2018-11-23 12:57:04,638 INFO L273 TraceCheckUtils]: 7: Hoare triple {977#true} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {980#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:57:04,638 INFO L273 TraceCheckUtils]: 8: Hoare triple {980#(<= |dll_create_#in~len| dll_create_~len)} assume !!(~len > 0);call #t~malloc3.base, #t~malloc3.offset := #Ultimate.alloc(12);~new_head~0.base, ~new_head~0.offset := #t~malloc3.base, #t~malloc3.offset; {980#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:57:04,640 INFO L273 TraceCheckUtils]: 9: Hoare triple {980#(<= |dll_create_#in~len| dll_create_~len)} assume !(0 == ~new_head~0.base && 0 == ~new_head~0.offset); {980#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:57:04,641 INFO L273 TraceCheckUtils]: 10: Hoare triple {980#(<= |dll_create_#in~len| dll_create_~len)} 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);call write~$Pointer$(0, 0, ~new_head~0.base, 8 + ~new_head~0.offset, 4); {980#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:57:04,642 INFO L273 TraceCheckUtils]: 11: Hoare triple {980#(<= |dll_create_#in~len| dll_create_~len)} assume !(~head~0.base != 0 || ~head~0.offset != 0); {980#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:57:04,646 INFO L273 TraceCheckUtils]: 12: Hoare triple {980#(<= |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; {981#(<= |dll_create_#in~len| (+ dll_create_~len 1))} is VALID [2018-11-23 12:57:04,647 INFO L273 TraceCheckUtils]: 13: Hoare triple {981#(<= |dll_create_#in~len| (+ dll_create_~len 1))} assume !(~len > 0); {982#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:57:04,648 INFO L273 TraceCheckUtils]: 14: Hoare triple {982#(<= |dll_create_#in~len| 1)} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {982#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:57:04,648 INFO L273 TraceCheckUtils]: 15: Hoare triple {982#(<= |dll_create_#in~len| 1)} assume true; {982#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:57:04,650 INFO L268 TraceCheckUtils]: 16: Hoare quadruple {982#(<= |dll_create_#in~len| 1)} {979#(<= 2 main_~len~0)} #108#return; {978#false} is VALID [2018-11-23 12:57:04,650 INFO L273 TraceCheckUtils]: 17: Hoare triple {978#false} call write~init~$Pointer$(#t~ret10.base, #t~ret10.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret10.base, #t~ret10.offset; {978#false} is VALID [2018-11-23 12:57:04,650 INFO L256 TraceCheckUtils]: 18: Hoare triple {978#false} call dll_prepend(~#s~0.base, ~#s~0.offset, ~data~0); {977#true} is VALID [2018-11-23 12:57:04,650 INFO L273 TraceCheckUtils]: 19: Hoare triple {977#true} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {977#true} is VALID [2018-11-23 12:57:04,651 INFO L256 TraceCheckUtils]: 20: Hoare triple {977#true} call #t~ret6.base, #t~ret6.offset := node_create(~data); {977#true} is VALID [2018-11-23 12:57:04,651 INFO L273 TraceCheckUtils]: 21: Hoare triple {977#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; {977#true} is VALID [2018-11-23 12:57:04,652 INFO L273 TraceCheckUtils]: 22: Hoare triple {977#true} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {977#true} is VALID [2018-11-23 12:57:04,652 INFO L273 TraceCheckUtils]: 23: Hoare triple {977#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; {977#true} is VALID [2018-11-23 12:57:04,653 INFO L273 TraceCheckUtils]: 24: Hoare triple {977#true} assume true; {977#true} is VALID [2018-11-23 12:57:04,653 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {977#true} {977#true} #116#return; {977#true} is VALID [2018-11-23 12:57:04,653 INFO L273 TraceCheckUtils]: 26: Hoare triple {977#true} ~new_head~1.base, ~new_head~1.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);call write~$Pointer$(#t~mem7.base, #t~mem7.offset, ~new_head~1.base, 4 + ~new_head~1.offset, 4);havoc #t~mem7.base, #t~mem7.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~head.base, ~head.offset, 4); {977#true} is VALID [2018-11-23 12:57:04,654 INFO L273 TraceCheckUtils]: 27: Hoare triple {977#true} assume #t~mem8.base != 0 || #t~mem8.offset != 0;havoc #t~mem8.base, #t~mem8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4);call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, #t~mem9.base, 8 + #t~mem9.offset, 4);havoc #t~mem9.base, #t~mem9.offset; {977#true} is VALID [2018-11-23 12:57:04,654 INFO L273 TraceCheckUtils]: 28: Hoare triple {977#true} call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, ~head.base, ~head.offset, 4); {977#true} is VALID [2018-11-23 12:57:04,654 INFO L273 TraceCheckUtils]: 29: Hoare triple {977#true} assume true; {977#true} is VALID [2018-11-23 12:57:04,654 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {977#true} {978#false} #110#return; {978#false} is VALID [2018-11-23 12:57:04,654 INFO L273 TraceCheckUtils]: 31: Hoare triple {978#false} call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem11.base, #t~mem11.offset;havoc #t~mem11.base, #t~mem11.offset;~count~0 := 0; {978#false} is VALID [2018-11-23 12:57:04,655 INFO L273 TraceCheckUtils]: 32: Hoare triple {978#false} assume !!(~ptr~0.base != 0 || ~ptr~0.offset != 0);call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4);~temp~2.base, ~temp~2.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;call #t~mem13 := read~int(~ptr~0.base, ~ptr~0.offset, 4); {978#false} is VALID [2018-11-23 12:57:04,655 INFO L273 TraceCheckUtils]: 33: Hoare triple {978#false} assume ~data~0 != #t~mem13;havoc #t~mem13; {978#false} is VALID [2018-11-23 12:57:04,655 INFO L273 TraceCheckUtils]: 34: Hoare triple {978#false} assume !false; {978#false} is VALID [2018-11-23 12:57:04,657 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:57:04,658 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:57:04,658 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:57:04,678 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:57:04,735 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:57:04,768 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:57:04,774 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:57:05,075 INFO L256 TraceCheckUtils]: 0: Hoare triple {977#true} call ULTIMATE.init(); {977#true} is VALID [2018-11-23 12:57:05,076 INFO L273 TraceCheckUtils]: 1: Hoare triple {977#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {977#true} is VALID [2018-11-23 12:57:05,076 INFO L273 TraceCheckUtils]: 2: Hoare triple {977#true} assume true; {977#true} is VALID [2018-11-23 12:57:05,077 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {977#true} {977#true} #118#return; {977#true} is VALID [2018-11-23 12:57:05,077 INFO L256 TraceCheckUtils]: 4: Hoare triple {977#true} call #t~ret16 := main(); {977#true} is VALID [2018-11-23 12:57:05,079 INFO L273 TraceCheckUtils]: 5: Hoare triple {977#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {979#(<= 2 main_~len~0)} is VALID [2018-11-23 12:57:05,079 INFO L256 TraceCheckUtils]: 6: Hoare triple {979#(<= 2 main_~len~0)} call #t~ret10.base, #t~ret10.offset := dll_create(~len~0, ~data~0); {977#true} is VALID [2018-11-23 12:57:05,080 INFO L273 TraceCheckUtils]: 7: Hoare triple {977#true} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {980#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:57:05,080 INFO L273 TraceCheckUtils]: 8: Hoare triple {980#(<= |dll_create_#in~len| dll_create_~len)} assume !!(~len > 0);call #t~malloc3.base, #t~malloc3.offset := #Ultimate.alloc(12);~new_head~0.base, ~new_head~0.offset := #t~malloc3.base, #t~malloc3.offset; {980#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:57:05,081 INFO L273 TraceCheckUtils]: 9: Hoare triple {980#(<= |dll_create_#in~len| dll_create_~len)} assume !(0 == ~new_head~0.base && 0 == ~new_head~0.offset); {980#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:57:05,081 INFO L273 TraceCheckUtils]: 10: Hoare triple {980#(<= |dll_create_#in~len| dll_create_~len)} 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);call write~$Pointer$(0, 0, ~new_head~0.base, 8 + ~new_head~0.offset, 4); {980#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:57:05,082 INFO L273 TraceCheckUtils]: 11: Hoare triple {980#(<= |dll_create_#in~len| dll_create_~len)} assume !(~head~0.base != 0 || ~head~0.offset != 0); {980#(<= |dll_create_#in~len| dll_create_~len)} is VALID [2018-11-23 12:57:05,083 INFO L273 TraceCheckUtils]: 12: Hoare triple {980#(<= |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; {981#(<= |dll_create_#in~len| (+ dll_create_~len 1))} is VALID [2018-11-23 12:57:05,085 INFO L273 TraceCheckUtils]: 13: Hoare triple {981#(<= |dll_create_#in~len| (+ dll_create_~len 1))} assume !(~len > 0); {982#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:57:05,085 INFO L273 TraceCheckUtils]: 14: Hoare triple {982#(<= |dll_create_#in~len| 1)} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {982#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:57:05,086 INFO L273 TraceCheckUtils]: 15: Hoare triple {982#(<= |dll_create_#in~len| 1)} assume true; {982#(<= |dll_create_#in~len| 1)} is VALID [2018-11-23 12:57:05,088 INFO L268 TraceCheckUtils]: 16: Hoare quadruple {982#(<= |dll_create_#in~len| 1)} {979#(<= 2 main_~len~0)} #108#return; {978#false} is VALID [2018-11-23 12:57:05,088 INFO L273 TraceCheckUtils]: 17: Hoare triple {978#false} call write~init~$Pointer$(#t~ret10.base, #t~ret10.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret10.base, #t~ret10.offset; {978#false} is VALID [2018-11-23 12:57:05,089 INFO L256 TraceCheckUtils]: 18: Hoare triple {978#false} call dll_prepend(~#s~0.base, ~#s~0.offset, ~data~0); {978#false} is VALID [2018-11-23 12:57:05,089 INFO L273 TraceCheckUtils]: 19: Hoare triple {978#false} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {978#false} is VALID [2018-11-23 12:57:05,090 INFO L256 TraceCheckUtils]: 20: Hoare triple {978#false} call #t~ret6.base, #t~ret6.offset := node_create(~data); {978#false} is VALID [2018-11-23 12:57:05,090 INFO L273 TraceCheckUtils]: 21: Hoare triple {978#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; {978#false} is VALID [2018-11-23 12:57:05,091 INFO L273 TraceCheckUtils]: 22: Hoare triple {978#false} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {978#false} is VALID [2018-11-23 12:57:05,091 INFO L273 TraceCheckUtils]: 23: Hoare triple {978#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; {978#false} is VALID [2018-11-23 12:57:05,091 INFO L273 TraceCheckUtils]: 24: Hoare triple {978#false} assume true; {978#false} is VALID [2018-11-23 12:57:05,092 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {978#false} {978#false} #116#return; {978#false} is VALID [2018-11-23 12:57:05,092 INFO L273 TraceCheckUtils]: 26: Hoare triple {978#false} ~new_head~1.base, ~new_head~1.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);call write~$Pointer$(#t~mem7.base, #t~mem7.offset, ~new_head~1.base, 4 + ~new_head~1.offset, 4);havoc #t~mem7.base, #t~mem7.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~head.base, ~head.offset, 4); {978#false} is VALID [2018-11-23 12:57:05,092 INFO L273 TraceCheckUtils]: 27: Hoare triple {978#false} assume #t~mem8.base != 0 || #t~mem8.offset != 0;havoc #t~mem8.base, #t~mem8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4);call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, #t~mem9.base, 8 + #t~mem9.offset, 4);havoc #t~mem9.base, #t~mem9.offset; {978#false} is VALID [2018-11-23 12:57:05,093 INFO L273 TraceCheckUtils]: 28: Hoare triple {978#false} call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, ~head.base, ~head.offset, 4); {978#false} is VALID [2018-11-23 12:57:05,093 INFO L273 TraceCheckUtils]: 29: Hoare triple {978#false} assume true; {978#false} is VALID [2018-11-23 12:57:05,093 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {978#false} {978#false} #110#return; {978#false} is VALID [2018-11-23 12:57:05,094 INFO L273 TraceCheckUtils]: 31: Hoare triple {978#false} call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem11.base, #t~mem11.offset;havoc #t~mem11.base, #t~mem11.offset;~count~0 := 0; {978#false} is VALID [2018-11-23 12:57:05,094 INFO L273 TraceCheckUtils]: 32: Hoare triple {978#false} assume !!(~ptr~0.base != 0 || ~ptr~0.offset != 0);call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4);~temp~2.base, ~temp~2.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;call #t~mem13 := read~int(~ptr~0.base, ~ptr~0.offset, 4); {978#false} is VALID [2018-11-23 12:57:05,094 INFO L273 TraceCheckUtils]: 33: Hoare triple {978#false} assume ~data~0 != #t~mem13;havoc #t~mem13; {978#false} is VALID [2018-11-23 12:57:05,094 INFO L273 TraceCheckUtils]: 34: Hoare triple {978#false} assume !false; {978#false} is VALID [2018-11-23 12:57:05,097 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:57:05,120 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:57:05,121 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 6] total 6 [2018-11-23 12:57:05,121 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 35 [2018-11-23 12:57:05,122 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:57:05,122 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2018-11-23 12:57:05,266 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:57:05,266 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 12:57:05,267 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 12:57:05,267 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=10, Invalid=20, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:57:05,267 INFO L87 Difference]: Start difference. First operand 41 states and 45 transitions. Second operand 6 states. [2018-11-23 12:57:05,726 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:05,726 INFO L93 Difference]: Finished difference Result 71 states and 79 transitions. [2018-11-23 12:57:05,726 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 12:57:05,727 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 35 [2018-11-23 12:57:05,727 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:57:05,727 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 12:57:05,730 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 77 transitions. [2018-11-23 12:57:05,730 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 12:57:05,733 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 77 transitions. [2018-11-23 12:57:05,733 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 77 transitions. [2018-11-23 12:57:05,895 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 77 edges. 77 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:57:05,897 INFO L225 Difference]: With dead ends: 71 [2018-11-23 12:57:05,897 INFO L226 Difference]: Without dead ends: 47 [2018-11-23 12:57:05,897 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 41 GetRequests, 36 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:57:05,898 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2018-11-23 12:57:05,923 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 43. [2018-11-23 12:57:05,924 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:57:05,924 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand 43 states. [2018-11-23 12:57:05,924 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 43 states. [2018-11-23 12:57:05,924 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 43 states. [2018-11-23 12:57:05,927 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:05,927 INFO L93 Difference]: Finished difference Result 47 states and 52 transitions. [2018-11-23 12:57:05,928 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 52 transitions. [2018-11-23 12:57:05,928 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:57:05,928 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:57:05,929 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 47 states. [2018-11-23 12:57:05,929 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 47 states. [2018-11-23 12:57:05,931 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:57:05,931 INFO L93 Difference]: Finished difference Result 47 states and 52 transitions. [2018-11-23 12:57:05,932 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 52 transitions. [2018-11-23 12:57:05,932 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:57:05,932 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:57:05,933 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:57:05,933 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:57:05,933 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 43 states. [2018-11-23 12:57:05,935 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 47 transitions. [2018-11-23 12:57:05,935 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 47 transitions. Word has length 35 [2018-11-23 12:57:05,935 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:57:05,936 INFO L480 AbstractCegarLoop]: Abstraction has 43 states and 47 transitions. [2018-11-23 12:57:05,936 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 12:57:05,936 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 47 transitions. [2018-11-23 12:57:05,937 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 41 [2018-11-23 12:57:05,937 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:57:05,937 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, 1] [2018-11-23 12:57:05,938 INFO L423 AbstractCegarLoop]: === Iteration 6 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:57:05,938 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:57:05,938 INFO L82 PathProgramCache]: Analyzing trace with hash 1374189955, now seen corresponding path program 1 times [2018-11-23 12:57:05,938 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:57:05,938 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:57:05,940 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:57:05,940 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:57:05,940 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:57:06,075 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:57:08,346 WARN L180 SmtUtils]: Spent 261.00 ms on a formula simplification. DAG size of input: 81 DAG size of output: 63 [2018-11-23 12:57:08,535 WARN L180 SmtUtils]: Spent 103.00 ms on a formula simplification. DAG size of input: 56 DAG size of output: 38 [2018-11-23 12:57:09,017 INFO L256 TraceCheckUtils]: 0: Hoare triple {1336#true} call ULTIMATE.init(); {1336#true} is VALID [2018-11-23 12:57:09,017 INFO L273 TraceCheckUtils]: 1: Hoare triple {1336#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1336#true} is VALID [2018-11-23 12:57:09,018 INFO L273 TraceCheckUtils]: 2: Hoare triple {1336#true} assume true; {1336#true} is VALID [2018-11-23 12:57:09,018 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1336#true} {1336#true} #118#return; {1336#true} is VALID [2018-11-23 12:57:09,018 INFO L256 TraceCheckUtils]: 4: Hoare triple {1336#true} call #t~ret16 := main(); {1336#true} is VALID [2018-11-23 12:57:09,019 INFO L273 TraceCheckUtils]: 5: Hoare triple {1336#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {1338#(and (<= main_~data~0 1) (<= 1 main_~data~0) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-23 12:57:09,020 INFO L256 TraceCheckUtils]: 6: Hoare triple {1338#(and (<= main_~data~0 1) (<= 1 main_~data~0) (= (select |#valid| |main_~#s~0.base|) 1))} call #t~ret10.base, #t~ret10.offset := dll_create(~len~0, ~data~0); {1339#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:57:09,020 INFO L273 TraceCheckUtils]: 7: Hoare triple {1339#(= |#valid| |old(#valid)|)} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {1339#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:57:09,021 INFO L273 TraceCheckUtils]: 8: Hoare triple {1339#(= |#valid| |old(#valid)|)} assume !!(~len > 0);call #t~malloc3.base, #t~malloc3.offset := #Ultimate.alloc(12);~new_head~0.base, ~new_head~0.offset := #t~malloc3.base, #t~malloc3.offset; {1340#(and (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:57:09,022 INFO L273 TraceCheckUtils]: 9: Hoare triple {1340#(and (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 !(0 == ~new_head~0.base && 0 == ~new_head~0.offset); {1340#(and (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:57:09,024 INFO L273 TraceCheckUtils]: 10: Hoare triple {1340#(and (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 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);call write~$Pointer$(0, 0, ~new_head~0.base, 8 + ~new_head~0.offset, 4); {1340#(and (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:57:09,050 INFO L273 TraceCheckUtils]: 11: Hoare triple {1340#(and (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); {1340#(and (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:57:09,064 INFO L273 TraceCheckUtils]: 12: Hoare triple {1340#(and (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; {1340#(and (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:57:09,067 INFO L273 TraceCheckUtils]: 13: Hoare triple {1340#(and (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);call #t~malloc3.base, #t~malloc3.offset := #Ultimate.alloc(12);~new_head~0.base, ~new_head~0.offset := #t~malloc3.base, #t~malloc3.offset; {1341#(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|)))))} is VALID [2018-11-23 12:57:09,068 INFO L273 TraceCheckUtils]: 14: Hoare triple {1341#(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|)))))} assume !(0 == ~new_head~0.base && 0 == ~new_head~0.offset); {1341#(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|)))))} is VALID [2018-11-23 12:57:09,069 INFO L273 TraceCheckUtils]: 15: Hoare triple {1341#(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|)))))} 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);call write~$Pointer$(0, 0, ~new_head~0.base, 8 + ~new_head~0.offset, 4); {1341#(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|)))))} is VALID [2018-11-23 12:57:09,071 INFO L273 TraceCheckUtils]: 16: Hoare triple {1341#(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|)))))} 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); {1341#(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|)))))} is VALID [2018-11-23 12:57:09,072 INFO L273 TraceCheckUtils]: 17: Hoare triple {1341#(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|)))))} ~head~0.base, ~head~0.offset := ~new_head~0.base, ~new_head~0.offset;#t~post4 := ~len;~len := #t~post4 - 1;havoc #t~post4; {1342#(and (= (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|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:57:09,073 INFO L273 TraceCheckUtils]: 18: Hoare triple {1342#(and (= (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|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} assume !(~len > 0); {1342#(and (= (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|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:57:09,075 INFO L273 TraceCheckUtils]: 19: Hoare triple {1342#(and (= (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|))))) (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; {1343#(and (= 0 (select |old(#valid)| |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|)))) (= (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|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:57:09,077 INFO L273 TraceCheckUtils]: 20: Hoare triple {1343#(and (= 0 (select |old(#valid)| |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|)))) (= (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|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} assume true; {1343#(and (= 0 (select |old(#valid)| |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|)))) (= (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|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 12:57:09,080 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {1343#(and (= 0 (select |old(#valid)| |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|)))) (= (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|))))) (or (= (select |#valid| (@diff |old(#valid)| |#valid|)) 1) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))))} {1338#(and (<= main_~data~0 1) (<= 1 main_~data~0) (= (select |#valid| |main_~#s~0.base|) 1))} #108#return; {1344#(and (not (= |main_~#s~0.base| |main_#t~ret10.base|)) (<= main_~data~0 1) (not (= (select |#valid| |main_~#s~0.base|) 0)) (<= 1 main_~data~0) (not (= (select |#valid| |main_#t~ret10.base|) 0)))} is VALID [2018-11-23 12:57:09,082 INFO L273 TraceCheckUtils]: 22: Hoare triple {1344#(and (not (= |main_~#s~0.base| |main_#t~ret10.base|)) (<= main_~data~0 1) (not (= (select |#valid| |main_~#s~0.base|) 0)) (<= 1 main_~data~0) (not (= (select |#valid| |main_#t~ret10.base|) 0)))} call write~init~$Pointer$(#t~ret10.base, #t~ret10.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret10.base, #t~ret10.offset; {1345#(and (<= main_~data~0 1) (not (= (select |#valid| |main_~#s~0.base|) 0)) (not (= |main_~#s~0.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (<= 1 main_~data~0) (not (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 0)))} is VALID [2018-11-23 12:57:09,083 INFO L256 TraceCheckUtils]: 23: Hoare triple {1345#(and (<= main_~data~0 1) (not (= (select |#valid| |main_~#s~0.base|) 0)) (not (= |main_~#s~0.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (<= 1 main_~data~0) (not (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 0)))} call dll_prepend(~#s~0.base, ~#s~0.offset, ~data~0); {1346#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:57:09,083 INFO L273 TraceCheckUtils]: 24: Hoare triple {1346#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {1347#(and (= (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) (select |#memory_$Pointer$.base| dll_prepend_~head.base)) (= |#valid| |old(#valid)|) (<= |dll_prepend_#in~data| dll_prepend_~data) (<= dll_prepend_~data |dll_prepend_#in~data|) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} is VALID [2018-11-23 12:57:09,084 INFO L256 TraceCheckUtils]: 25: Hoare triple {1347#(and (= (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) (select |#memory_$Pointer$.base| dll_prepend_~head.base)) (= |#valid| |old(#valid)|) (<= |dll_prepend_#in~data| dll_prepend_~data) (<= dll_prepend_~data |dll_prepend_#in~data|) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} call #t~ret6.base, #t~ret6.offset := node_create(~data); {1346#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:57:09,085 INFO L273 TraceCheckUtils]: 26: Hoare triple {1346#(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; {1348#(and (or (= 1 node_create_~data) (and (or (<= node_create_~data |node_create_#in~data|) (<= node_create_~data 0)) (or (< 0 node_create_~data) (<= |node_create_#in~data| node_create_~data)))) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= node_create_~temp~0.offset 0))} is VALID [2018-11-23 12:57:09,086 INFO L273 TraceCheckUtils]: 27: Hoare triple {1348#(and (or (= 1 node_create_~data) (and (or (<= node_create_~data |node_create_#in~data|) (<= node_create_~data 0)) (or (< 0 node_create_~data) (<= |node_create_#in~data| node_create_~data)))) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= node_create_~temp~0.offset 0))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {1348#(and (or (= 1 node_create_~data) (and (or (<= node_create_~data |node_create_#in~data|) (<= node_create_~data 0)) (or (< 0 node_create_~data) (<= |node_create_#in~data| node_create_~data)))) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= node_create_~temp~0.offset 0))} is VALID [2018-11-23 12:57:09,089 INFO L273 TraceCheckUtils]: 28: Hoare triple {1348#(and (or (= 1 node_create_~data) (and (or (<= node_create_~data |node_create_#in~data|) (<= node_create_~data 0)) (or (< 0 node_create_~data) (<= |node_create_#in~data| node_create_~data)))) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= node_create_~temp~0.offset 0))} 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; {1349#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (or (= (select (select |#memory_int| |node_create_#res.base|) |node_create_#res.offset|) 1) (<= 2 |node_create_#in~data|) (<= |node_create_#in~data| 0)) (= 0 |node_create_#res.offset|) (= |#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 (= (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) |node_create_#res.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)))} is VALID [2018-11-23 12:57:09,090 INFO L273 TraceCheckUtils]: 29: Hoare triple {1349#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (or (= (select (select |#memory_int| |node_create_#res.base|) |node_create_#res.offset|) 1) (<= 2 |node_create_#in~data|) (<= |node_create_#in~data| 0)) (= 0 |node_create_#res.offset|) (= |#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 (= (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) |node_create_#res.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)))} assume true; {1349#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (or (= (select (select |#memory_int| |node_create_#res.base|) |node_create_#res.offset|) 1) (<= 2 |node_create_#in~data|) (<= |node_create_#in~data| 0)) (= 0 |node_create_#res.offset|) (= |#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 (= (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) |node_create_#res.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)))} is VALID [2018-11-23 12:57:09,094 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {1349#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (or (= (select (select |#memory_int| |node_create_#res.base|) |node_create_#res.offset|) 1) (<= 2 |node_create_#in~data|) (<= |node_create_#in~data| 0)) (= 0 |node_create_#res.offset|) (= |#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 (= (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) |node_create_#res.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)))} {1347#(and (= (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) (select |#memory_$Pointer$.base| dll_prepend_~head.base)) (= |#valid| |old(#valid)|) (<= |dll_prepend_#in~data| dll_prepend_~data) (<= dll_prepend_~data |dll_prepend_#in~data|) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} #116#return; {1350#(and (= 0 |dll_prepend_#t~ret6.offset|) (or (<= |dll_prepend_#in~data| 0) (<= 2 |dll_prepend_#in~data|) (= (select (select |#memory_int| |dll_prepend_#t~ret6.base|) |dll_prepend_#t~ret6.offset|) 1)) (= 0 (select |old(#valid)| |dll_prepend_#t~ret6.base|)) (or (= dll_prepend_~head.base |dll_prepend_#t~ret6.base|) (= (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) (select |#memory_$Pointer$.base| dll_prepend_~head.base))) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} is VALID [2018-11-23 12:57:09,097 INFO L273 TraceCheckUtils]: 31: Hoare triple {1350#(and (= 0 |dll_prepend_#t~ret6.offset|) (or (<= |dll_prepend_#in~data| 0) (<= 2 |dll_prepend_#in~data|) (= (select (select |#memory_int| |dll_prepend_#t~ret6.base|) |dll_prepend_#t~ret6.offset|) 1)) (= 0 (select |old(#valid)| |dll_prepend_#t~ret6.base|)) (or (= dll_prepend_~head.base |dll_prepend_#t~ret6.base|) (= (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) (select |#memory_$Pointer$.base| dll_prepend_~head.base))) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))} ~new_head~1.base, ~new_head~1.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);call write~$Pointer$(#t~mem7.base, #t~mem7.offset, ~new_head~1.base, 4 + ~new_head~1.offset, 4);havoc #t~mem7.base, #t~mem7.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~head.base, ~head.offset, 4); {1351#(and (or (= dll_prepend_~head.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset)) (and (or (and (or (and (or (<= |dll_prepend_#in~data| 0) (= (select (select |#memory_int| dll_prepend_~new_head~1.base) dll_prepend_~new_head~1.offset) 1) (<= 2 |dll_prepend_#in~data|)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|)) (= dll_prepend_~new_head~1.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset))) (or (and (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base)) (= (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) (select (store |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset) (store (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset)) (+ (select (select |#memory_$Pointer$.offset| dll_prepend_~head.base) dll_prepend_~head.offset) 8) dll_prepend_~new_head~1.base)) dll_prepend_~head.base)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|)) (not (= dll_prepend_~new_head~1.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset))))) (= dll_prepend_~new_head~1.base dll_prepend_~head.base)) (or (not (= dll_prepend_~new_head~1.base dll_prepend_~head.base)) (= 0 (select |old(#valid)| |dll_prepend_#in~head.base|))))) (or (and (or (and (= (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) (select |#memory_$Pointer$.base| dll_prepend_~head.base)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|)) (= dll_prepend_~new_head~1.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset))) (or (not (= dll_prepend_~new_head~1.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset))) (= 0 (select |old(#valid)| |dll_prepend_#in~head.base|)))) (not (= dll_prepend_~head.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset)))))} is VALID [2018-11-23 12:57:09,099 INFO L273 TraceCheckUtils]: 32: Hoare triple {1351#(and (or (= dll_prepend_~head.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset)) (and (or (and (or (and (or (<= |dll_prepend_#in~data| 0) (= (select (select |#memory_int| dll_prepend_~new_head~1.base) dll_prepend_~new_head~1.offset) 1) (<= 2 |dll_prepend_#in~data|)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|)) (= dll_prepend_~new_head~1.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset))) (or (and (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base)) (= (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) (select (store |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset) (store (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset)) (+ (select (select |#memory_$Pointer$.offset| dll_prepend_~head.base) dll_prepend_~head.offset) 8) dll_prepend_~new_head~1.base)) dll_prepend_~head.base)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|)) (not (= dll_prepend_~new_head~1.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset))))) (= dll_prepend_~new_head~1.base dll_prepend_~head.base)) (or (not (= dll_prepend_~new_head~1.base dll_prepend_~head.base)) (= 0 (select |old(#valid)| |dll_prepend_#in~head.base|))))) (or (and (or (and (= (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) (select |#memory_$Pointer$.base| dll_prepend_~head.base)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|)) (= dll_prepend_~new_head~1.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset))) (or (not (= dll_prepend_~new_head~1.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset))) (= 0 (select |old(#valid)| |dll_prepend_#in~head.base|)))) (not (= dll_prepend_~head.base (select (select |#memory_$Pointer$.base| dll_prepend_~head.base) dll_prepend_~head.offset)))))} assume #t~mem8.base != 0 || #t~mem8.offset != 0;havoc #t~mem8.base, #t~mem8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4);call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, #t~mem9.base, 8 + #t~mem9.offset, 4);havoc #t~mem9.base, #t~mem9.offset; {1352#(or (and (or (and (or (<= |dll_prepend_#in~data| 0) (= (select (select |#memory_int| dll_prepend_~new_head~1.base) dll_prepend_~new_head~1.offset) 1) (<= 2 |dll_prepend_#in~data|)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|)) (and (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) dll_prepend_~head.offset))) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))) (not (= dll_prepend_~new_head~1.base dll_prepend_~head.base))) (and (not (= dll_prepend_~new_head~1.base dll_prepend_~head.base)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|) (= (select (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) dll_prepend_~head.offset) |dll_prepend_#in~head.base|)) (= 0 (select |old(#valid)| |dll_prepend_#in~head.base|)))} is VALID [2018-11-23 12:57:09,101 INFO L273 TraceCheckUtils]: 33: Hoare triple {1352#(or (and (or (and (or (<= |dll_prepend_#in~data| 0) (= (select (select |#memory_int| dll_prepend_~new_head~1.base) dll_prepend_~new_head~1.offset) 1) (<= 2 |dll_prepend_#in~data|)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|)) (and (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) dll_prepend_~head.offset))) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|))) (not (= dll_prepend_~new_head~1.base dll_prepend_~head.base))) (and (not (= dll_prepend_~new_head~1.base dll_prepend_~head.base)) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= dll_prepend_~head.base |dll_prepend_#in~head.base|) (= (select (select |old(#memory_$Pointer$.base)| dll_prepend_~head.base) dll_prepend_~head.offset) |dll_prepend_#in~head.base|)) (= 0 (select |old(#valid)| |dll_prepend_#in~head.base|)))} call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, ~head.base, ~head.offset, 4); {1353#(or (<= |dll_prepend_#in~data| 0) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 1) (<= 2 |dll_prepend_#in~data|) (= (select (select |old(#memory_$Pointer$.base)| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) |dll_prepend_#in~head.base|) (= 0 (select |old(#valid)| |dll_prepend_#in~head.base|)) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))))} is VALID [2018-11-23 12:57:09,102 INFO L273 TraceCheckUtils]: 34: Hoare triple {1353#(or (<= |dll_prepend_#in~data| 0) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 1) (<= 2 |dll_prepend_#in~data|) (= (select (select |old(#memory_$Pointer$.base)| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) |dll_prepend_#in~head.base|) (= 0 (select |old(#valid)| |dll_prepend_#in~head.base|)) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))))} assume true; {1353#(or (<= |dll_prepend_#in~data| 0) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 1) (<= 2 |dll_prepend_#in~data|) (= (select (select |old(#memory_$Pointer$.base)| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) |dll_prepend_#in~head.base|) (= 0 (select |old(#valid)| |dll_prepend_#in~head.base|)) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))))} is VALID [2018-11-23 12:57:09,105 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {1353#(or (<= |dll_prepend_#in~data| 0) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 1) (<= 2 |dll_prepend_#in~data|) (= (select (select |old(#memory_$Pointer$.base)| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) |dll_prepend_#in~head.base|) (= 0 (select |old(#valid)| |dll_prepend_#in~head.base|)) (= 0 (select |old(#valid)| (select (select |old(#memory_$Pointer$.base)| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))))} {1345#(and (<= main_~data~0 1) (not (= (select |#valid| |main_~#s~0.base|) 0)) (not (= |main_~#s~0.base| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (<= 1 main_~data~0) (not (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 0)))} #110#return; {1354#(and (= main_~data~0 (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) |main_~#s~0.offset|))) (= 1 main_~data~0))} is VALID [2018-11-23 12:57:09,107 INFO L273 TraceCheckUtils]: 36: Hoare triple {1354#(and (= main_~data~0 (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) |main_~#s~0.offset|))) (= 1 main_~data~0))} call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem11.base, #t~mem11.offset;havoc #t~mem11.base, #t~mem11.offset;~count~0 := 0; {1355#(and (= 1 main_~data~0) (= main_~data~0 (select (select |#memory_int| main_~ptr~0.base) main_~ptr~0.offset)))} is VALID [2018-11-23 12:57:09,108 INFO L273 TraceCheckUtils]: 37: Hoare triple {1355#(and (= 1 main_~data~0) (= main_~data~0 (select (select |#memory_int| main_~ptr~0.base) main_~ptr~0.offset)))} assume !!(~ptr~0.base != 0 || ~ptr~0.offset != 0);call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4);~temp~2.base, ~temp~2.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;call #t~mem13 := read~int(~ptr~0.base, ~ptr~0.offset, 4); {1356#(and (= 1 main_~data~0) (= main_~data~0 |main_#t~mem13|))} is VALID [2018-11-23 12:57:09,109 INFO L273 TraceCheckUtils]: 38: Hoare triple {1356#(and (= 1 main_~data~0) (= main_~data~0 |main_#t~mem13|))} assume ~data~0 != #t~mem13;havoc #t~mem13; {1337#false} is VALID [2018-11-23 12:57:09,109 INFO L273 TraceCheckUtils]: 39: Hoare triple {1337#false} assume !false; {1337#false} is VALID [2018-11-23 12:57:09,123 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:57:09,124 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:57:09,124 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:57:09,141 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:57:09,187 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:57:09,207 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:57:09,211 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:57:09,257 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:57:09,263 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:09,276 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:09,277 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:13, output treesize:12 [2018-11-23 12:57:09,280 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:57:09,281 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) (= main_~data~0 1)) [2018-11-23 12:57:09,281 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= |main_~#s~0.offset| 0) (= main_~data~0 1) (= (select |#valid| |main_~#s~0.base|) 1)) [2018-11-23 12:57:30,007 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:57:30,009 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:57:30,011 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 27 [2018-11-23 12:57:30,035 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 20 [2018-11-23 12:57:30,042 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:30,058 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:30,081 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 12:57:30,082 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:26, output treesize:26 [2018-11-23 12:57:32,088 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:57:32,088 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_old(#valid)_AFTER_CALL_6|, v_subst_1]. (and (= 1 (select |v_old(#valid)_AFTER_CALL_6| |main_~#s~0.base|)) (= |#valid| (store (store |v_old(#valid)_AFTER_CALL_6| v_subst_1 1) |main_#t~ret10.base| 1)) (= |main_~#s~0.offset| 0) (= 0 (select |v_old(#valid)_AFTER_CALL_6| v_subst_1)) (= main_~data~0 1)) [2018-11-23 12:57:32,088 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [v_subst_1]. (and (= 1 (select |#valid| v_subst_1)) (not (= |main_~#s~0.base| v_subst_1)) (= |main_~#s~0.offset| 0) (= 1 (select |#valid| |main_#t~ret10.base|)) (= main_~data~0 1) (= (select |#valid| |main_~#s~0.base|) 1)) [2018-11-23 12:57:34,193 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 12:57:34,197 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 8 treesize of output 7 [2018-11-23 12:57:34,199 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:34,202 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:34,215 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:34,216 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:45, output treesize:41 [2018-11-23 12:57:39,123 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 22 [2018-11-23 12:57:39,130 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:57:39,133 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 14 [2018-11-23 12:57:39,136 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:39,143 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:39,175 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 12:57:39,180 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 12:57:39,254 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-2 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 12:57:39,255 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:79, output treesize:62 [2018-11-23 12:57:41,427 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:57:41,427 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_$Pointer$.base_32|, |v_#memory_int_30|]. (let ((.cse0 (select |v_#memory_int_30| dll_prepend_~new_head~1.base)) (.cse1 (select |v_#memory_$Pointer$.base_32| dll_prepend_~new_head~1.base)) (.cse2 (+ dll_prepend_~new_head~1.offset 4))) (and (= (select .cse0 0) |dll_prepend_#in~data|) (= |v_#memory_$Pointer$.base_32| (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 (select .cse1 0)))) (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base)) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= 0 dll_prepend_~new_head~1.offset) (= (store |v_#memory_int_30| dll_prepend_~new_head~1.base (store .cse0 .cse2 (select (select |#memory_int| dll_prepend_~new_head~1.base) .cse2))) |#memory_int|) (= |#memory_$Pointer$.base| (store |v_#memory_$Pointer$.base_32| dll_prepend_~new_head~1.base (store .cse1 .cse2 (select (select |v_#memory_$Pointer$.base_32| dll_prepend_~head.base) dll_prepend_~head.offset)))) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|))) [2018-11-23 12:57:41,428 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [v_DerPreprocessor_2]. (and (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base)) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= 0 dll_prepend_~new_head~1.offset) (= (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (let ((.cse0 (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2))) (store .cse0 (+ dll_prepend_~new_head~1.offset 4) (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base .cse0) dll_prepend_~head.base) dll_prepend_~head.offset)))) |#memory_$Pointer$.base|) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= (select (select |#memory_int| dll_prepend_~new_head~1.base) 0) |dll_prepend_#in~data|)) [2018-11-23 12:57:46,455 WARN L180 SmtUtils]: Spent 1.10 s on a formula simplification that was a NOOP. DAG size: 36 [2018-11-23 12:57:46,479 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 150 treesize of output 146 [2018-11-23 12:57:46,487 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 146 treesize of output 142 [2018-11-23 12:57:46,489 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:46,496 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:46,563 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 150 treesize of output 203 [2018-11-23 12:57:46,577 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 151 treesize of output 53 [2018-11-23 12:57:46,579 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:46,645 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 148 treesize of output 99 [2018-11-23 12:57:46,648 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 2 xjuncts. [2018-11-23 12:57:46,662 INFO L267 ElimStorePlain]: Start of recursive call 4: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 12:57:46,687 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-2 vars, End of recursive call: 1 dim-0 vars, and 2 xjuncts. [2018-11-23 12:57:46,687 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:172, output treesize:82 [2018-11-23 12:57:49,011 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:57:49,012 WARN L384 uantifierElimination]: Input elimination task: ∃ [v_DerPreprocessor_2, |v_#memory_$Pointer$.offset_31|, |v_#memory_int_31|]. (and (= (let ((.cse0 (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (let ((.cse2 (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2))) (store .cse2 (+ dll_prepend_~new_head~1.offset 4) (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base .cse2) dll_prepend_~head.base) dll_prepend_~head.offset)))) dll_prepend_~head.base) dll_prepend_~head.offset))) (store |v_#memory_int_31| .cse0 (let ((.cse1 (+ (select (select |v_#memory_$Pointer$.offset_31| dll_prepend_~head.base) dll_prepend_~head.offset) 8))) (store (select |v_#memory_int_31| .cse0) .cse1 (select (select |#memory_int| .cse0) .cse1))))) |#memory_int|) (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base)) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= 0 dll_prepend_~new_head~1.offset) (= (select (select |v_#memory_int_31| dll_prepend_~new_head~1.base) 0) |dll_prepend_#in~data|) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|)) [2018-11-23 12:57:49,012 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [v_DerPreprocessor_2]. (let ((.cse0 (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base))) (.cse1 (= |dll_prepend_#in~head.base| dll_prepend_~head.base)) (.cse2 (= 0 dll_prepend_~new_head~1.offset)) (.cse3 (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|))) (or (and .cse0 .cse1 .cse2 .cse3 (= (select (select |#memory_int| dll_prepend_~new_head~1.base) 0) |dll_prepend_#in~data|)) (and (= dll_prepend_~new_head~1.base (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (let ((.cse4 (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2))) (store .cse4 (+ dll_prepend_~new_head~1.offset 4) (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base .cse4) dll_prepend_~head.base) dll_prepend_~head.offset)))) dll_prepend_~head.base) dll_prepend_~head.offset)) .cse0 .cse1 .cse2 .cse3))) [2018-11-23 12:57:53,469 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 50 treesize of output 47 [2018-11-23 12:57:53,474 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 8 treesize of output 7 [2018-11-23 12:57:53,476 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:53,492 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:53,500 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 85 treesize of output 82 [2018-11-23 12:57:53,507 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 8 treesize of output 7 [2018-11-23 12:57:53,509 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:53,532 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:53,594 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 81 treesize of output 78 [2018-11-23 12:57:53,602 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 8 treesize of output 7 [2018-11-23 12:57:53,604 INFO L267 ElimStorePlain]: Start of recursive call 7: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:53,624 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:53,629 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 46 treesize of output 43 [2018-11-23 12:57:53,636 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 8 treesize of output 7 [2018-11-23 12:57:53,638 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:53,653 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:53,711 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 77 treesize of output 74 [2018-11-23 12:57:53,720 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 12 treesize of output 1 [2018-11-23 12:57:53,721 INFO L267 ElimStorePlain]: Start of recursive call 11: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:53,734 INFO L267 ElimStorePlain]: Start of recursive call 10: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:53,798 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 42 treesize of output 66 [2018-11-23 12:57:53,813 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 51 treesize of output 39 [2018-11-23 12:57:53,816 INFO L267 ElimStorePlain]: Start of recursive call 13: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:53,873 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 44 treesize of output 38 [2018-11-23 12:57:53,877 INFO L267 ElimStorePlain]: Start of recursive call 14: End of recursive call: and 2 xjuncts. [2018-11-23 12:57:53,910 INFO L267 ElimStorePlain]: Start of recursive call 12: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 12:57:53,963 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 4 dim-2 vars, End of recursive call: 1 dim-0 vars, and 3 xjuncts. [2018-11-23 12:57:53,964 INFO L202 ElimStorePlain]: Needed 14 recursive calls to eliminate 6 variables, input treesize:136, output treesize:135 [2018-11-23 12:57:54,027 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:57:54,027 WARN L384 uantifierElimination]: Input elimination task: ∃ [dll_prepend_~new_head~1.base, v_DerPreprocessor_2, |v_#memory_$Pointer$.offset_32|, v_prenex_1, |v_#memory_$Pointer$.base_34|, |v_#memory_int_32|]. (let ((.cse0 (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base))) (.cse2 (= |#memory_$Pointer$.offset| (store |v_#memory_$Pointer$.offset_32| |dll_prepend_#in~head.base| (store (select |v_#memory_$Pointer$.offset_32| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset| 0)))) (.cse1 (select (select |#memory_int| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) (.cse3 (= |#memory_$Pointer$.base| (store |v_#memory_$Pointer$.base_34| |dll_prepend_#in~head.base| (store (select |v_#memory_$Pointer$.base_34| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset| dll_prepend_~new_head~1.base))))) (or (and .cse0 (= (select (select |v_#memory_int_32| dll_prepend_~new_head~1.base) 0) |dll_prepend_#in~data|) (= (store |v_#memory_int_32| |dll_prepend_#in~head.base| (store (select |v_#memory_int_32| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset| .cse1)) |#memory_int|) .cse2 .cse3) (and .cse0 .cse2 (= (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (let ((.cse4 (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2))) (store .cse4 4 (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base .cse4) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)))) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) dll_prepend_~new_head~1.base) (= (store v_prenex_1 |dll_prepend_#in~head.base| (store (select v_prenex_1 |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset| .cse1)) |#memory_int|) .cse3))) [2018-11-23 12:57:54,027 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [v_DerPreprocessor_2]. (let ((.cse0 (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))) (let ((.cse1 (= (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) 0)) (.cse2 (= (select |old(#valid)| .cse0) 0))) (or (and (= (select (select |#memory_int| .cse0) 0) |dll_prepend_#in~data|) .cse1 .cse2) (and (= |dll_prepend_#in~head.base| .cse0) (= 0 |dll_prepend_#in~head.offset|) .cse1 .cse2) (and (= (select (select (store |old(#memory_$Pointer$.base)| .cse0 (let ((.cse3 (store (store (store (select |old(#memory_$Pointer$.base)| .cse0) 4 0) 8 0) 0 v_DerPreprocessor_2))) (store .cse3 4 (select (select (store |old(#memory_$Pointer$.base)| .cse0 .cse3) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)))) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) .cse0) .cse1 .cse2)))) [2018-11-23 12:57:58,411 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:57:58,413 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:57:58,413 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:57:58,417 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:57:58,418 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 29 treesize of output 33 [2018-11-23 12:57:58,422 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,445 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 12 treesize of output 10 [2018-11-23 12:57:58,452 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 10 treesize of output 8 [2018-11-23 12:57:58,454 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,455 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,474 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,475 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 7 variables, input treesize:166, output treesize:33 [2018-11-23 12:57:58,482 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:57:58,482 WARN L384 uantifierElimination]: Input elimination task: ∃ [v_prenex_5, v_prenex_3, v_prenex_4, |v_old(#memory_$Pointer$.base)_AFTER_CALL_6|, v_DerPreprocessor_2, |v_#valid_BEFORE_CALL_6|, v_subst_1]. (let ((.cse0 (= (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) |main_~#s~0.offset|) 0)) (.cse2 (= |main_~#s~0.offset| 0)) (.cse1 (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) (.cse3 (= main_~data~0 1))) (or (and .cse0 (= 1 (select v_prenex_3 (select (select v_prenex_5 |main_~#s~0.base|) |main_~#s~0.offset|))) (not (= |main_~#s~0.base| v_prenex_4)) (= 0 (select v_prenex_3 .cse1)) .cse2 (= (select v_prenex_3 |main_~#s~0.base|) 1) (= 1 (select v_prenex_3 v_prenex_4)) (= main_~data~0 (select (select |#memory_int| .cse1) 0)) .cse3) (and .cse0 (= 1 (select |v_#valid_BEFORE_CALL_6| v_subst_1)) (not (= |main_~#s~0.base| v_subst_1)) (= (select |v_#valid_BEFORE_CALL_6| |main_~#s~0.base|) 1) (= 1 (select |v_#valid_BEFORE_CALL_6| (select (select |v_old(#memory_$Pointer$.base)_AFTER_CALL_6| |main_~#s~0.base|) |main_~#s~0.offset|))) .cse2 (= 0 (select |v_#valid_BEFORE_CALL_6| .cse1)) (= .cse1 (select (select (store |v_old(#memory_$Pointer$.base)_AFTER_CALL_6| .cse1 (let ((.cse4 (store (store (store (select |v_old(#memory_$Pointer$.base)_AFTER_CALL_6| .cse1) 4 0) 8 0) 0 v_DerPreprocessor_2))) (store .cse4 4 (select (select (store |v_old(#memory_$Pointer$.base)_AFTER_CALL_6| .cse1 .cse4) |main_~#s~0.base|) |main_~#s~0.offset|)))) |main_~#s~0.base|) |main_~#s~0.offset|)) .cse3))) [2018-11-23 12:57:58,482 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (and (= (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) |main_~#s~0.offset|) 0) (not (= .cse0 |main_~#s~0.base|)) (= |main_~#s~0.offset| 0) (= main_~data~0 (select (select |#memory_int| .cse0) 0)) (= main_~data~0 1))) [2018-11-23 12:57:58,571 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 21 [2018-11-23 12:57:58,586 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 12 [2018-11-23 12:57:58,588 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,593 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,608 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 11 [2018-11-23 12:57:58,613 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 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 11 treesize of output 3 [2018-11-23 12:57:58,615 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,617 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,626 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,627 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:44, output treesize:14 [2018-11-23 12:57:58,630 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:57:58,630 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_$Pointer$.base|, |main_~#s~0.base|, |#memory_$Pointer$.offset|]. (let ((.cse0 (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) 0)) (.cse1 (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) 0))) (and (= .cse0 main_~ptr~0.base) (= main_~data~0 (select (select |#memory_int| .cse0) 0)) (= .cse1 0) (not (= |main_~#s~0.base| .cse0)) (= .cse1 main_~ptr~0.offset) (= main_~data~0 1))) [2018-11-23 12:57:58,630 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= main_~ptr~0.offset 0) (= main_~data~0 (select (select |#memory_int| main_~ptr~0.base) 0)) (= main_~data~0 1)) [2018-11-23 12:57:58,696 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 11 [2018-11-23 12:57:58,701 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 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 11 treesize of output 3 [2018-11-23 12:57:58,702 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,704 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,709 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:57:58,710 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:18, output treesize:7 [2018-11-23 12:57:58,712 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:57:58,712 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, main_~ptr~0.base]. (let ((.cse0 (select (select |#memory_int| main_~ptr~0.base) 0))) (and (= main_~data~0 .cse0) (= main_~data~0 1) (= |main_#t~mem13| .cse0))) [2018-11-23 12:57:58,713 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= |main_#t~mem13| main_~data~0) (= main_~data~0 1)) [2018-11-23 12:57:58,749 INFO L256 TraceCheckUtils]: 0: Hoare triple {1336#true} call ULTIMATE.init(); {1336#true} is VALID [2018-11-23 12:57:58,749 INFO L273 TraceCheckUtils]: 1: Hoare triple {1336#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1336#true} is VALID [2018-11-23 12:57:58,749 INFO L273 TraceCheckUtils]: 2: Hoare triple {1336#true} assume true; {1336#true} is VALID [2018-11-23 12:57:58,750 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1336#true} {1336#true} #118#return; {1336#true} is VALID [2018-11-23 12:57:58,750 INFO L256 TraceCheckUtils]: 4: Hoare triple {1336#true} call #t~ret16 := main(); {1336#true} is VALID [2018-11-23 12:57:58,751 INFO L273 TraceCheckUtils]: 5: Hoare triple {1336#true} ~len~0 := 2;~data~0 := 1;call ~#s~0.base, ~#s~0.offset := #Ultimate.alloc(4); {1375#(and (= |main_~#s~0.offset| 0) (= main_~data~0 1) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-23 12:57:58,751 INFO L256 TraceCheckUtils]: 6: Hoare triple {1375#(and (= |main_~#s~0.offset| 0) (= main_~data~0 1) (= (select |#valid| |main_~#s~0.base|) 1))} call #t~ret10.base, #t~ret10.offset := dll_create(~len~0, ~data~0); {1339#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:57:58,752 INFO L273 TraceCheckUtils]: 7: Hoare triple {1339#(= |#valid| |old(#valid)|)} ~len := #in~len;~data := #in~data;~head~0.base, ~head~0.offset := 0, 0; {1339#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 12:57:58,752 INFO L273 TraceCheckUtils]: 8: Hoare triple {1339#(= |#valid| |old(#valid)|)} assume !!(~len > 0);call #t~malloc3.base, #t~malloc3.offset := #Ultimate.alloc(12);~new_head~0.base, ~new_head~0.offset := #t~malloc3.base, #t~malloc3.offset; {1385#(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:58,753 INFO L273 TraceCheckUtils]: 9: Hoare triple {1385#(and (= 0 (select |old(#valid)| dll_create_~new_head~0.base)) (= |#valid| (store |old(#valid)| dll_create_~new_head~0.base 1)))} assume !(0 == ~new_head~0.base && 0 == ~new_head~0.offset); {1385#(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:58,754 INFO L273 TraceCheckUtils]: 10: Hoare triple {1385#(and (= 0 (select |old(#valid)| dll_create_~new_head~0.base)) (= |#valid| (store |old(#valid)| dll_create_~new_head~0.base 1)))} 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);call write~$Pointer$(0, 0, ~new_head~0.base, 8 + ~new_head~0.offset, 4); {1385#(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:58,754 INFO L273 TraceCheckUtils]: 11: Hoare triple {1385#(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); {1385#(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:58,755 INFO L273 TraceCheckUtils]: 12: Hoare triple {1385#(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; {1398#(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:58,757 INFO L273 TraceCheckUtils]: 13: Hoare triple {1398#(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);call #t~malloc3.base, #t~malloc3.offset := #Ultimate.alloc(12);~new_head~0.base, ~new_head~0.offset := #t~malloc3.base, #t~malloc3.offset; {1402#(exists ((dll_create_~head~0.base Int)) (and (= (store (store |old(#valid)| dll_create_~head~0.base 1) dll_create_~new_head~0.base 1) |#valid|) (= (select |old(#valid)| dll_create_~head~0.base) 0)))} is VALID [2018-11-23 12:57:58,759 INFO L273 TraceCheckUtils]: 14: Hoare triple {1402#(exists ((dll_create_~head~0.base Int)) (and (= (store (store |old(#valid)| dll_create_~head~0.base 1) dll_create_~new_head~0.base 1) |#valid|) (= (select |old(#valid)| dll_create_~head~0.base) 0)))} assume !(0 == ~new_head~0.base && 0 == ~new_head~0.offset); {1402#(exists ((dll_create_~head~0.base Int)) (and (= (store (store |old(#valid)| dll_create_~head~0.base 1) dll_create_~new_head~0.base 1) |#valid|) (= (select |old(#valid)| dll_create_~head~0.base) 0)))} is VALID [2018-11-23 12:57:58,759 INFO L273 TraceCheckUtils]: 15: Hoare triple {1402#(exists ((dll_create_~head~0.base Int)) (and (= (store (store |old(#valid)| dll_create_~head~0.base 1) dll_create_~new_head~0.base 1) |#valid|) (= (select |old(#valid)| dll_create_~head~0.base) 0)))} 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);call write~$Pointer$(0, 0, ~new_head~0.base, 8 + ~new_head~0.offset, 4); {1402#(exists ((dll_create_~head~0.base Int)) (and (= (store (store |old(#valid)| dll_create_~head~0.base 1) dll_create_~new_head~0.base 1) |#valid|) (= (select |old(#valid)| dll_create_~head~0.base) 0)))} is VALID [2018-11-23 12:57:58,760 INFO L273 TraceCheckUtils]: 16: Hoare triple {1402#(exists ((dll_create_~head~0.base Int)) (and (= (store (store |old(#valid)| dll_create_~head~0.base 1) dll_create_~new_head~0.base 1) |#valid|) (= (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); {1402#(exists ((dll_create_~head~0.base Int)) (and (= (store (store |old(#valid)| dll_create_~head~0.base 1) dll_create_~new_head~0.base 1) |#valid|) (= (select |old(#valid)| dll_create_~head~0.base) 0)))} is VALID [2018-11-23 12:57:58,761 INFO L273 TraceCheckUtils]: 17: Hoare triple {1402#(exists ((dll_create_~head~0.base Int)) (and (= (store (store |old(#valid)| dll_create_~head~0.base 1) dll_create_~new_head~0.base 1) |#valid|) (= (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; {1415#(exists ((v_subst_1 Int)) (and (= |#valid| (store (store |old(#valid)| v_subst_1 1) dll_create_~head~0.base 1)) (= (select |old(#valid)| v_subst_1) 0)))} is VALID [2018-11-23 12:57:58,763 INFO L273 TraceCheckUtils]: 18: Hoare triple {1415#(exists ((v_subst_1 Int)) (and (= |#valid| (store (store |old(#valid)| v_subst_1 1) dll_create_~head~0.base 1)) (= (select |old(#valid)| v_subst_1) 0)))} assume !(~len > 0); {1415#(exists ((v_subst_1 Int)) (and (= |#valid| (store (store |old(#valid)| v_subst_1 1) dll_create_~head~0.base 1)) (= (select |old(#valid)| v_subst_1) 0)))} is VALID [2018-11-23 12:57:58,766 INFO L273 TraceCheckUtils]: 19: Hoare triple {1415#(exists ((v_subst_1 Int)) (and (= |#valid| (store (store |old(#valid)| v_subst_1 1) dll_create_~head~0.base 1)) (= (select |old(#valid)| v_subst_1) 0)))} #res.base, #res.offset := ~head~0.base, ~head~0.offset; {1422#(exists ((v_subst_1 Int)) (and (= |#valid| (store (store |old(#valid)| v_subst_1 1) |dll_create_#res.base| 1)) (= (select |old(#valid)| v_subst_1) 0)))} is VALID [2018-11-23 12:57:58,769 INFO L273 TraceCheckUtils]: 20: Hoare triple {1422#(exists ((v_subst_1 Int)) (and (= |#valid| (store (store |old(#valid)| v_subst_1 1) |dll_create_#res.base| 1)) (= (select |old(#valid)| v_subst_1) 0)))} assume true; {1422#(exists ((v_subst_1 Int)) (and (= |#valid| (store (store |old(#valid)| v_subst_1 1) |dll_create_#res.base| 1)) (= (select |old(#valid)| v_subst_1) 0)))} is VALID [2018-11-23 12:57:58,790 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {1422#(exists ((v_subst_1 Int)) (and (= |#valid| (store (store |old(#valid)| v_subst_1 1) |dll_create_#res.base| 1)) (= (select |old(#valid)| v_subst_1) 0)))} {1375#(and (= |main_~#s~0.offset| 0) (= main_~data~0 1) (= (select |#valid| |main_~#s~0.base|) 1))} #108#return; {1429#(and (= |main_~#s~0.offset| 0) (= 1 (select |#valid| |main_#t~ret10.base|)) (= main_~data~0 1) (exists ((v_subst_1 Int)) (and (= 1 (select |#valid| v_subst_1)) (not (= |main_~#s~0.base| v_subst_1)))) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-23 12:57:58,791 INFO L273 TraceCheckUtils]: 22: Hoare triple {1429#(and (= |main_~#s~0.offset| 0) (= 1 (select |#valid| |main_#t~ret10.base|)) (= main_~data~0 1) (exists ((v_subst_1 Int)) (and (= 1 (select |#valid| v_subst_1)) (not (= |main_~#s~0.base| v_subst_1)))) (= (select |#valid| |main_~#s~0.base|) 1))} call write~init~$Pointer$(#t~ret10.base, #t~ret10.offset, ~#s~0.base, ~#s~0.offset, 4);havoc #t~ret10.base, #t~ret10.offset; {1433#(and (= 1 (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (= |main_~#s~0.offset| 0) (= main_~data~0 1) (exists ((v_subst_1 Int)) (and (= 1 (select |#valid| v_subst_1)) (not (= |main_~#s~0.base| v_subst_1)))) (= (select |#valid| |main_~#s~0.base|) 1))} is VALID [2018-11-23 12:57:58,793 INFO L256 TraceCheckUtils]: 23: Hoare triple {1433#(and (= 1 (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (= |main_~#s~0.offset| 0) (= main_~data~0 1) (exists ((v_subst_1 Int)) (and (= 1 (select |#valid| v_subst_1)) (not (= |main_~#s~0.base| v_subst_1)))) (= (select |#valid| |main_~#s~0.base|) 1))} call dll_prepend(~#s~0.base, ~#s~0.offset, ~data~0); {1346#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:57:58,793 INFO L273 TraceCheckUtils]: 24: Hoare triple {1346#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} ~head.base, ~head.offset := #in~head.base, #in~head.offset;~data := #in~data; {1440#(and (= dll_prepend_~data |dll_prepend_#in~data|) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|))} is VALID [2018-11-23 12:57:58,795 INFO L256 TraceCheckUtils]: 25: Hoare triple {1440#(and (= dll_prepend_~data |dll_prepend_#in~data|) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|))} call #t~ret6.base, #t~ret6.offset := node_create(~data); {1346#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:57:58,795 INFO L273 TraceCheckUtils]: 26: Hoare triple {1346#(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; {1447#(and (= node_create_~data |node_create_#in~data|) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= node_create_~temp~0.offset 0) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:57:58,796 INFO L273 TraceCheckUtils]: 27: Hoare triple {1447#(and (= node_create_~data |node_create_#in~data|) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= node_create_~temp~0.offset 0) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} assume !(0 == ~temp~0.base && 0 == ~temp~0.offset); {1447#(and (= node_create_~data |node_create_#in~data|) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= node_create_~temp~0.offset 0) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:57:58,798 INFO L273 TraceCheckUtils]: 28: Hoare triple {1447#(and (= node_create_~data |node_create_#in~data|) (= 0 (select |old(#valid)| node_create_~temp~0.base)) (= node_create_~temp~0.offset 0) (= |#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; {1454#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (= |node_create_#in~data| (select (select |#memory_int| |node_create_#res.base|) |node_create_#res.offset|)) (= |node_create_#res.offset| 0) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |node_create_#res.base| (store (store (store (select |old(#memory_$Pointer$.base)| |node_create_#res.base|) (+ |node_create_#res.offset| 4) 0) (+ |node_create_#res.offset| 8) 0) |node_create_#res.offset| (select (select |#memory_$Pointer$.base| |node_create_#res.base|) |node_create_#res.offset|)))))} is VALID [2018-11-23 12:57:58,799 INFO L273 TraceCheckUtils]: 29: Hoare triple {1454#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (= |node_create_#in~data| (select (select |#memory_int| |node_create_#res.base|) |node_create_#res.offset|)) (= |node_create_#res.offset| 0) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |node_create_#res.base| (store (store (store (select |old(#memory_$Pointer$.base)| |node_create_#res.base|) (+ |node_create_#res.offset| 4) 0) (+ |node_create_#res.offset| 8) 0) |node_create_#res.offset| (select (select |#memory_$Pointer$.base| |node_create_#res.base|) |node_create_#res.offset|)))))} assume true; {1454#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (= |node_create_#in~data| (select (select |#memory_int| |node_create_#res.base|) |node_create_#res.offset|)) (= |node_create_#res.offset| 0) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |node_create_#res.base| (store (store (store (select |old(#memory_$Pointer$.base)| |node_create_#res.base|) (+ |node_create_#res.offset| 4) 0) (+ |node_create_#res.offset| 8) 0) |node_create_#res.offset| (select (select |#memory_$Pointer$.base| |node_create_#res.base|) |node_create_#res.offset|)))))} is VALID [2018-11-23 12:57:58,801 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {1454#(and (= 0 (select |old(#valid)| |node_create_#res.base|)) (= |node_create_#in~data| (select (select |#memory_int| |node_create_#res.base|) |node_create_#res.offset|)) (= |node_create_#res.offset| 0) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |node_create_#res.base| (store (store (store (select |old(#memory_$Pointer$.base)| |node_create_#res.base|) (+ |node_create_#res.offset| 4) 0) (+ |node_create_#res.offset| 8) 0) |node_create_#res.offset| (select (select |#memory_$Pointer$.base| |node_create_#res.base|) |node_create_#res.offset|)))))} {1440#(and (= dll_prepend_~data |dll_prepend_#in~data|) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|))} #116#return; {1461#(and (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= 0 (select |old(#valid)| |dll_prepend_#t~ret6.base|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |dll_prepend_#t~ret6.base| (store (store (store (select |old(#memory_$Pointer$.base)| |dll_prepend_#t~ret6.base|) 4 0) 8 0) 0 (select (select |#memory_$Pointer$.base| |dll_prepend_#t~ret6.base|) 0)))) (= |dll_prepend_#t~ret6.offset| 0) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= (select (select |#memory_int| |dll_prepend_#t~ret6.base|) 0) |dll_prepend_#in~data|))} is VALID [2018-11-23 12:57:58,804 INFO L273 TraceCheckUtils]: 31: Hoare triple {1461#(and (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= 0 (select |old(#valid)| |dll_prepend_#t~ret6.base|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| |dll_prepend_#t~ret6.base| (store (store (store (select |old(#memory_$Pointer$.base)| |dll_prepend_#t~ret6.base|) 4 0) 8 0) 0 (select (select |#memory_$Pointer$.base| |dll_prepend_#t~ret6.base|) 0)))) (= |dll_prepend_#t~ret6.offset| 0) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= (select (select |#memory_int| |dll_prepend_#t~ret6.base|) 0) |dll_prepend_#in~data|))} ~new_head~1.base, ~new_head~1.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);call write~$Pointer$(#t~mem7.base, #t~mem7.offset, ~new_head~1.base, 4 + ~new_head~1.offset, 4);havoc #t~mem7.base, #t~mem7.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~head.base, ~head.offset, 4); {1465#(and (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base)) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= 0 dll_prepend_~new_head~1.offset) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (exists ((v_DerPreprocessor_2 Int)) (= (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (store (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2) (+ dll_prepend_~new_head~1.offset 4) (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2)) dll_prepend_~head.base) dll_prepend_~head.offset))) |#memory_$Pointer$.base|)) (= (select (select |#memory_int| dll_prepend_~new_head~1.base) 0) |dll_prepend_#in~data|))} is VALID [2018-11-23 12:57:58,807 INFO L273 TraceCheckUtils]: 32: Hoare triple {1465#(and (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base)) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= 0 dll_prepend_~new_head~1.offset) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (exists ((v_DerPreprocessor_2 Int)) (= (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (store (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2) (+ dll_prepend_~new_head~1.offset 4) (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2)) dll_prepend_~head.base) dll_prepend_~head.offset))) |#memory_$Pointer$.base|)) (= (select (select |#memory_int| dll_prepend_~new_head~1.base) 0) |dll_prepend_#in~data|))} assume #t~mem8.base != 0 || #t~mem8.offset != 0;havoc #t~mem8.base, #t~mem8.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~head.base, ~head.offset, 4);call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, #t~mem9.base, 8 + #t~mem9.offset, 4);havoc #t~mem9.base, #t~mem9.offset; {1469#(or (and (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base)) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= 0 dll_prepend_~new_head~1.offset) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= (select (select |#memory_int| dll_prepend_~new_head~1.base) 0) |dll_prepend_#in~data|)) (and (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base)) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (exists ((v_DerPreprocessor_2 Int)) (= dll_prepend_~new_head~1.base (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (store (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2) (+ dll_prepend_~new_head~1.offset 4) (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2)) dll_prepend_~head.base) dll_prepend_~head.offset))) dll_prepend_~head.base) dll_prepend_~head.offset))) (= 0 dll_prepend_~new_head~1.offset) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|)))} is VALID [2018-11-23 12:57:58,812 INFO L273 TraceCheckUtils]: 33: Hoare triple {1469#(or (and (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base)) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (= 0 dll_prepend_~new_head~1.offset) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|) (= (select (select |#memory_int| dll_prepend_~new_head~1.base) 0) |dll_prepend_#in~data|)) (and (= 0 (select |old(#valid)| dll_prepend_~new_head~1.base)) (= |dll_prepend_#in~head.base| dll_prepend_~head.base) (exists ((v_DerPreprocessor_2 Int)) (= dll_prepend_~new_head~1.base (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (store (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2) (+ dll_prepend_~new_head~1.offset 4) (select (select (store |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base (store (store (store (select |old(#memory_$Pointer$.base)| dll_prepend_~new_head~1.base) 4 0) 8 0) 0 v_DerPreprocessor_2)) dll_prepend_~head.base) dll_prepend_~head.offset))) dll_prepend_~head.base) dll_prepend_~head.offset))) (= 0 dll_prepend_~new_head~1.offset) (= dll_prepend_~head.offset |dll_prepend_#in~head.offset|)))} call write~$Pointer$(~new_head~1.base, ~new_head~1.offset, ~head.base, ~head.offset, 4); {1473#(or (and (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0) |dll_prepend_#in~data|) (= (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) 0) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0)) (and (exists ((v_DerPreprocessor_2 Int)) (= (select (select (store |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (store (store (store (store (select |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 4 0) 8 0) 0 v_DerPreprocessor_2) 4 (select (select (store |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (store (store (store (select |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 4 0) 8 0) 0 v_DerPreprocessor_2)) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))) (= (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) 0) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0)))} is VALID [2018-11-23 12:57:58,813 INFO L273 TraceCheckUtils]: 34: Hoare triple {1473#(or (and (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0) |dll_prepend_#in~data|) (= (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) 0) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0)) (and (exists ((v_DerPreprocessor_2 Int)) (= (select (select (store |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (store (store (store (store (select |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 4 0) 8 0) 0 v_DerPreprocessor_2) 4 (select (select (store |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (store (store (store (select |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 4 0) 8 0) 0 v_DerPreprocessor_2)) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))) (= (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) 0) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0)))} assume true; {1473#(or (and (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0) |dll_prepend_#in~data|) (= (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) 0) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0)) (and (exists ((v_DerPreprocessor_2 Int)) (= (select (select (store |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (store (store (store (store (select |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 4 0) 8 0) 0 v_DerPreprocessor_2) 4 (select (select (store |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (store (store (store (select |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 4 0) 8 0) 0 v_DerPreprocessor_2)) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))) (= (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) 0) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0)))} is VALID [2018-11-23 12:57:58,815 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {1473#(or (and (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0) |dll_prepend_#in~data|) (= (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) 0) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0)) (and (exists ((v_DerPreprocessor_2 Int)) (= (select (select (store |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (store (store (store (store (select |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 4 0) 8 0) 0 v_DerPreprocessor_2) 4 (select (select (store |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (store (store (store (select |old(#memory_$Pointer$.base)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 4 0) 8 0) 0 v_DerPreprocessor_2)) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))) |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|))) (= (select (select |#memory_$Pointer$.offset| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|) 0) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |dll_prepend_#in~head.base|) |dll_prepend_#in~head.offset|)) 0)))} {1433#(and (= 1 (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|))) (= |main_~#s~0.offset| 0) (= main_~data~0 1) (exists ((v_subst_1 Int)) (and (= 1 (select |#valid| v_subst_1)) (not (= |main_~#s~0.base| v_subst_1)))) (= (select |#valid| |main_~#s~0.base|) 1))} #110#return; {1480#(and (= (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) |main_~#s~0.offset|) 0) (not (= (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|) |main_~#s~0.base|)) (= |main_~#s~0.offset| 0) (= main_~data~0 (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 0)) (= main_~data~0 1))} is VALID [2018-11-23 12:57:58,822 INFO L273 TraceCheckUtils]: 36: Hoare triple {1480#(and (= (select (select |#memory_$Pointer$.offset| |main_~#s~0.base|) |main_~#s~0.offset|) 0) (not (= (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|) |main_~#s~0.base|)) (= |main_~#s~0.offset| 0) (= main_~data~0 (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#s~0.base|) |main_~#s~0.offset|)) 0)) (= main_~data~0 1))} call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~#s~0.base, ~#s~0.offset, 4);~ptr~0.base, ~ptr~0.offset := #t~mem11.base, #t~mem11.offset;havoc #t~mem11.base, #t~mem11.offset;~count~0 := 0; {1484#(and (= main_~ptr~0.offset 0) (= main_~data~0 (select (select |#memory_int| main_~ptr~0.base) 0)) (= main_~data~0 1))} is VALID [2018-11-23 12:57:58,824 INFO L273 TraceCheckUtils]: 37: Hoare triple {1484#(and (= main_~ptr~0.offset 0) (= main_~data~0 (select (select |#memory_int| main_~ptr~0.base) 0)) (= main_~data~0 1))} assume !!(~ptr~0.base != 0 || ~ptr~0.offset != 0);call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~ptr~0.base, 4 + ~ptr~0.offset, 4);~temp~2.base, ~temp~2.offset := #t~mem12.base, #t~mem12.offset;havoc #t~mem12.base, #t~mem12.offset;call #t~mem13 := read~int(~ptr~0.base, ~ptr~0.offset, 4); {1356#(and (= 1 main_~data~0) (= main_~data~0 |main_#t~mem13|))} is VALID [2018-11-23 12:57:58,824 INFO L273 TraceCheckUtils]: 38: Hoare triple {1356#(and (= 1 main_~data~0) (= main_~data~0 |main_#t~mem13|))} assume ~data~0 != #t~mem13;havoc #t~mem13; {1337#false} is VALID [2018-11-23 12:57:58,824 INFO L273 TraceCheckUtils]: 39: Hoare triple {1337#false} assume !false; {1337#false} is VALID [2018-11-23 12:57:58,831 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:57:58,851 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:57:58,852 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 22] total 38 [2018-11-23 12:57:58,852 INFO L78 Accepts]: Start accepts. Automaton has 38 states. Word has length 40 [2018-11-23 12:57:58,853 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:57:58,853 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 38 states. [2018-11-23 12:57:59,054 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 72 edges. 72 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:57:59,054 INFO L459 AbstractCegarLoop]: Interpolant automaton has 38 states [2018-11-23 12:57:59,054 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 38 interpolants. [2018-11-23 12:57:59,055 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=103, Invalid=1250, Unknown=53, NotChecked=0, Total=1406 [2018-11-23 12:57:59,055 INFO L87 Difference]: Start difference. First operand 43 states and 47 transitions. Second operand 38 states. [2018-11-23 12:58:24,297 WARN L180 SmtUtils]: Spent 1.60 s on a formula simplification. DAG size of input: 39 DAG size of output: 19 [2018-11-23 12:58:32,225 WARN L180 SmtUtils]: Spent 3.19 s on a formula simplification. DAG size of input: 45 DAG size of output: 21 [2018-11-23 12:59:10,231 WARN L180 SmtUtils]: Spent 4.16 s on a formula simplification. DAG size of input: 54 DAG size of output: 28 [2018-11-23 12:59:30,391 WARN L180 SmtUtils]: Spent 550.00 ms on a formula simplification that was a NOOP. DAG size: 23 [2018-11-23 12:59:56,141 WARN L180 SmtUtils]: Spent 794.00 ms on a formula simplification that was a NOOP. DAG size: 36 [2018-11-23 13:00:13,089 WARN L180 SmtUtils]: Spent 918.00 ms on a formula simplification that was a NOOP. DAG size: 40 [2018-11-23 13:00:30,746 WARN L180 SmtUtils]: Spent 1.91 s on a formula simplification that was a NOOP. DAG size: 45