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/heap-manipulation/dancing_true-unreach-call_false-valid-memtrack.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-61f4311 [2018-11-23 12:51:48,138 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 12:51:48,141 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 12:51:48,159 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 12:51:48,159 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 12:51:48,160 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 12:51:48,162 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 12:51:48,165 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 12:51:48,167 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 12:51:48,173 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 12:51:48,174 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 12:51:48,178 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 12:51:48,179 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 12:51:48,180 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 12:51:48,183 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 12:51:48,184 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 12:51:48,185 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 12:51:48,188 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 12:51:48,191 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 12:51:48,195 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 12:51:48,196 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 12:51:48,199 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 12:51:48,201 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 12:51:48,202 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 12:51:48,202 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 12:51:48,203 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 12:51:48,204 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 12:51:48,204 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 12:51:48,205 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 12:51:48,206 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 12:51:48,206 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 12:51:48,207 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 12:51:48,207 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 12:51:48,207 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 12:51:48,208 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 12:51:48,209 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 12:51:48,209 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:51:48,224 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 12:51:48,225 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 12:51:48,226 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 12:51:48,226 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 12:51:48,226 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 12:51:48,227 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 12:51:48,228 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 12:51:48,228 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 12:51:48,228 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 12:51:48,228 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 12:51:48,228 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 12:51:48,229 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 12:51:48,229 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 12:51:48,229 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 12:51:48,229 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 12:51:48,229 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 12:51:48,229 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 12:51:48,231 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 12:51:48,231 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 12:51:48,231 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 12:51:48,231 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 12:51:48,231 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 12:51:48,232 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 12:51:48,232 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 12:51:48,232 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 12:51:48,232 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 12:51:48,232 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 12:51:48,232 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-23 12:51:48,233 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 12:51:48,233 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 12:51:48,233 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-23 12:51:48,284 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 12:51:48,299 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 12:51:48,303 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 12:51:48,305 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 12:51:48,305 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 12:51:48,306 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/heap-manipulation/dancing_true-unreach-call_false-valid-memtrack.i [2018-11-23 12:51:48,369 INFO L221 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/7e6e21edd/9e0ff49ebf764d788bf6dd27b7acd0e6/FLAG6d044ada0 [2018-11-23 12:51:48,895 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 12:51:48,896 INFO L161 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/heap-manipulation/dancing_true-unreach-call_false-valid-memtrack.i [2018-11-23 12:51:48,914 INFO L355 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/7e6e21edd/9e0ff49ebf764d788bf6dd27b7acd0e6/FLAG6d044ada0 [2018-11-23 12:51:49,194 INFO L363 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/7e6e21edd/9e0ff49ebf764d788bf6dd27b7acd0e6 [2018-11-23 12:51:49,204 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 12:51:49,205 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 12:51:49,206 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 12:51:49,206 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 12:51:49,210 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 12:51:49,212 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:51:49" (1/1) ... [2018-11-23 12:51:49,215 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@3300f2dd and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:51:49, skipping insertion in model container [2018-11-23 12:51:49,215 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:51:49" (1/1) ... [2018-11-23 12:51:49,226 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 12:51:49,296 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 12:51:49,717 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:51:49,730 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 12:51:49,833 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:51:49,908 INFO L195 MainTranslator]: Completed translation [2018-11-23 12:51:49,908 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:51:49 WrapperNode [2018-11-23 12:51:49,908 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 12:51:49,910 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 12:51:49,910 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 12:51:49,910 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 12:51:49,992 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:51:49" (1/1) ... [2018-11-23 12:51:50,011 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:51:49" (1/1) ... [2018-11-23 12:51:50,022 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 12:51:50,022 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 12:51:50,022 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 12:51:50,022 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 12:51:50,031 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:51:49" (1/1) ... [2018-11-23 12:51:50,031 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:51:49" (1/1) ... [2018-11-23 12:51:50,037 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:51:49" (1/1) ... [2018-11-23 12:51:50,037 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:51:49" (1/1) ... [2018-11-23 12:51:50,054 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:51:49" (1/1) ... [2018-11-23 12:51:50,061 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:51:49" (1/1) ... [2018-11-23 12:51:50,063 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:51:49" (1/1) ... [2018-11-23 12:51:50,066 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 12:51:50,067 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 12:51:50,067 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 12:51:50,067 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 12:51:50,068 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:51:49" (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:51:50,132 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 12:51:50,132 INFO L130 BoogieDeclarations]: Found specification of procedure is_list_containing_x [2018-11-23 12:51:50,132 INFO L138 BoogieDeclarations]: Found implementation of procedure is_list_containing_x [2018-11-23 12:51:50,133 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2018-11-23 12:51:50,133 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2018-11-23 12:51:50,133 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 12:51:50,133 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 12:51:50,133 INFO L130 BoogieDeclarations]: Found specification of procedure re_insert [2018-11-23 12:51:50,134 INFO L138 BoogieDeclarations]: Found implementation of procedure re_insert [2018-11-23 12:51:50,134 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 12:51:50,134 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 12:51:50,134 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2018-11-23 12:51:50,134 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2018-11-23 12:51:50,134 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-23 12:51:50,135 INFO L130 BoogieDeclarations]: Found specification of procedure remove [2018-11-23 12:51:50,135 INFO L138 BoogieDeclarations]: Found implementation of procedure remove [2018-11-23 12:51:50,135 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 12:51:50,135 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 12:51:51,104 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 12:51:51,104 INFO L280 CfgBuilder]: Removed 1 assue(true) statements. [2018-11-23 12:51:51,105 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:51:51 BoogieIcfgContainer [2018-11-23 12:51:51,105 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 12:51:51,106 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 12:51:51,106 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 12:51:51,109 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 12:51:51,110 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 12:51:49" (1/3) ... [2018-11-23 12:51:51,110 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@2d13633b and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:51:51, skipping insertion in model container [2018-11-23 12:51:51,111 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:51:49" (2/3) ... [2018-11-23 12:51:51,111 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@2d13633b and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:51:51, skipping insertion in model container [2018-11-23 12:51:51,111 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:51:51" (3/3) ... [2018-11-23 12:51:51,113 INFO L112 eAbstractionObserver]: Analyzing ICFG dancing_true-unreach-call_false-valid-memtrack.i [2018-11-23 12:51:51,123 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 12:51:51,133 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 12:51:51,152 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 12:51:51,185 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 12:51:51,185 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 12:51:51,186 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 12:51:51,186 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 12:51:51,188 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 12:51:51,188 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 12:51:51,188 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 12:51:51,188 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 12:51:51,188 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 12:51:51,207 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states. [2018-11-23 12:51:51,214 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2018-11-23 12:51:51,214 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:51:51,215 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] [2018-11-23 12:51:51,218 INFO L423 AbstractCegarLoop]: === Iteration 1 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:51:51,224 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:51:51,224 INFO L82 PathProgramCache]: Analyzing trace with hash -633334339, now seen corresponding path program 1 times [2018-11-23 12:51:51,226 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:51:51,227 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:51:51,280 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:51:51,280 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:51:51,280 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:51:51,322 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:51:51,395 INFO L256 TraceCheckUtils]: 0: Hoare triple {54#true} call ULTIMATE.init(); {54#true} is VALID [2018-11-23 12:51:51,399 INFO L273 TraceCheckUtils]: 1: Hoare triple {54#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {54#true} is VALID [2018-11-23 12:51:51,400 INFO L273 TraceCheckUtils]: 2: Hoare triple {54#true} assume true; {54#true} is VALID [2018-11-23 12:51:51,400 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {54#true} {54#true} #102#return; {54#true} is VALID [2018-11-23 12:51:51,401 INFO L256 TraceCheckUtils]: 4: Hoare triple {54#true} call #t~ret23 := main(); {54#true} is VALID [2018-11-23 12:51:51,401 INFO L273 TraceCheckUtils]: 5: Hoare triple {54#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {54#true} is VALID [2018-11-23 12:51:51,402 INFO L273 TraceCheckUtils]: 6: Hoare triple {54#true} assume !true; {55#false} is VALID [2018-11-23 12:51:51,402 INFO L256 TraceCheckUtils]: 7: Hoare triple {55#false} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {54#true} is VALID [2018-11-23 12:51:51,402 INFO L273 TraceCheckUtils]: 8: Hoare triple {54#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {54#true} is VALID [2018-11-23 12:51:51,403 INFO L273 TraceCheckUtils]: 9: Hoare triple {54#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {54#true} is VALID [2018-11-23 12:51:51,403 INFO L273 TraceCheckUtils]: 10: Hoare triple {54#true} assume true; {54#true} is VALID [2018-11-23 12:51:51,404 INFO L268 TraceCheckUtils]: 11: Hoare quadruple {54#true} {55#false} #106#return; {55#false} is VALID [2018-11-23 12:51:51,404 INFO L273 TraceCheckUtils]: 12: Hoare triple {55#false} assume 0 != #t~ret19 % 256;havoc #t~ret19; {55#false} is VALID [2018-11-23 12:51:51,404 INFO L256 TraceCheckUtils]: 13: Hoare triple {55#false} call remove(~x~0.base, ~x~0.offset); {54#true} is VALID [2018-11-23 12:51:51,405 INFO L273 TraceCheckUtils]: 14: Hoare triple {54#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {54#true} is VALID [2018-11-23 12:51:51,405 INFO L273 TraceCheckUtils]: 15: Hoare triple {54#true} assume #t~mem3.base != 0 || #t~mem3.offset != 0;havoc #t~mem3.base, #t~mem3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call #t~mem5.base, #t~mem5.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(#t~mem5.base, #t~mem5.offset, #t~mem4.base, #t~mem4.offset, 4);havoc #t~mem5.base, #t~mem5.offset;havoc #t~mem4.base, #t~mem4.offset; {54#true} is VALID [2018-11-23 12:51:51,405 INFO L273 TraceCheckUtils]: 16: Hoare triple {54#true} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {54#true} is VALID [2018-11-23 12:51:51,406 INFO L273 TraceCheckUtils]: 17: Hoare triple {54#true} assume #t~mem6.base != 0 || #t~mem6.offset != 0;havoc #t~mem6.base, #t~mem6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~x.base, ~x.offset, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(#t~mem8.base, #t~mem8.offset, #t~mem7.base, 4 + #t~mem7.offset, 4);havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8.base, #t~mem8.offset; {54#true} is VALID [2018-11-23 12:51:51,406 INFO L273 TraceCheckUtils]: 18: Hoare triple {54#true} assume true; {54#true} is VALID [2018-11-23 12:51:51,406 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {54#true} {55#false} #108#return; {55#false} is VALID [2018-11-23 12:51:51,407 INFO L273 TraceCheckUtils]: 20: Hoare triple {55#false} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {55#false} is VALID [2018-11-23 12:51:51,407 INFO L273 TraceCheckUtils]: 21: Hoare triple {55#false} assume #t~short21; {55#false} is VALID [2018-11-23 12:51:51,407 INFO L256 TraceCheckUtils]: 22: Hoare triple {55#false} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {55#false} is VALID [2018-11-23 12:51:51,408 INFO L273 TraceCheckUtils]: 23: Hoare triple {55#false} ~cond := #in~cond; {55#false} is VALID [2018-11-23 12:51:51,408 INFO L273 TraceCheckUtils]: 24: Hoare triple {55#false} assume 0 == ~cond; {55#false} is VALID [2018-11-23 12:51:51,408 INFO L273 TraceCheckUtils]: 25: Hoare triple {55#false} assume !false; {55#false} is VALID [2018-11-23 12:51:51,413 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:51:51,416 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:51:51,416 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-23 12:51:51,421 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 26 [2018-11-23 12:51:51,424 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:51:51,427 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2018-11-23 12:51:51,529 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 26 edges. 26 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:51:51,529 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-23 12:51:51,538 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-23 12:51:51,538 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 12:51:51,541 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 2 states. [2018-11-23 12:51:51,977 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:51,977 INFO L93 Difference]: Finished difference Result 93 states and 121 transitions. [2018-11-23 12:51:51,977 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-23 12:51:51,977 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 26 [2018-11-23 12:51:51,978 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:51:51,979 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 12:51:51,993 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 121 transitions. [2018-11-23 12:51:51,993 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 12:51:52,001 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 121 transitions. [2018-11-23 12:51:52,002 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 121 transitions. [2018-11-23 12:51:52,805 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 121 edges. 121 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:51:52,822 INFO L225 Difference]: With dead ends: 93 [2018-11-23 12:51:52,822 INFO L226 Difference]: Without dead ends: 46 [2018-11-23 12:51:52,826 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:51:52,842 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 46 states. [2018-11-23 12:51:52,929 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 46 to 46. [2018-11-23 12:51:52,929 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:51:52,930 INFO L82 GeneralOperation]: Start isEquivalent. First operand 46 states. Second operand 46 states. [2018-11-23 12:51:52,930 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 46 states. [2018-11-23 12:51:52,931 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 46 states. [2018-11-23 12:51:52,938 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:52,938 INFO L93 Difference]: Finished difference Result 46 states and 59 transitions. [2018-11-23 12:51:52,939 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 59 transitions. [2018-11-23 12:51:52,940 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:51:52,940 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:51:52,940 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 46 states. [2018-11-23 12:51:52,940 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 46 states. [2018-11-23 12:51:52,947 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:52,948 INFO L93 Difference]: Finished difference Result 46 states and 59 transitions. [2018-11-23 12:51:52,948 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 59 transitions. [2018-11-23 12:51:52,949 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:51:52,949 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:51:52,950 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:51:52,950 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:51:52,950 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 46 states. [2018-11-23 12:51:52,955 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 46 states to 46 states and 59 transitions. [2018-11-23 12:51:52,958 INFO L78 Accepts]: Start accepts. Automaton has 46 states and 59 transitions. Word has length 26 [2018-11-23 12:51:52,958 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:51:52,958 INFO L480 AbstractCegarLoop]: Abstraction has 46 states and 59 transitions. [2018-11-23 12:51:52,958 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-23 12:51:52,959 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 59 transitions. [2018-11-23 12:51:52,960 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2018-11-23 12:51:52,960 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:51:52,960 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] [2018-11-23 12:51:52,961 INFO L423 AbstractCegarLoop]: === Iteration 2 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:51:52,961 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:51:52,961 INFO L82 PathProgramCache]: Analyzing trace with hash 1204061740, now seen corresponding path program 1 times [2018-11-23 12:51:52,962 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:51:52,962 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:51:52,964 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:51:52,964 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:51:52,964 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:51:53,002 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:51:53,171 INFO L256 TraceCheckUtils]: 0: Hoare triple {335#true} call ULTIMATE.init(); {335#true} is VALID [2018-11-23 12:51:53,171 INFO L273 TraceCheckUtils]: 1: Hoare triple {335#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {335#true} is VALID [2018-11-23 12:51:53,172 INFO L273 TraceCheckUtils]: 2: Hoare triple {335#true} assume true; {335#true} is VALID [2018-11-23 12:51:53,172 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {335#true} {335#true} #102#return; {335#true} is VALID [2018-11-23 12:51:53,173 INFO L256 TraceCheckUtils]: 4: Hoare triple {335#true} call #t~ret23 := main(); {335#true} is VALID [2018-11-23 12:51:53,173 INFO L273 TraceCheckUtils]: 5: Hoare triple {335#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {335#true} is VALID [2018-11-23 12:51:53,174 INFO L273 TraceCheckUtils]: 6: Hoare triple {335#true} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {335#true} is VALID [2018-11-23 12:51:53,174 INFO L256 TraceCheckUtils]: 7: Hoare triple {335#true} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {335#true} is VALID [2018-11-23 12:51:53,175 INFO L273 TraceCheckUtils]: 8: Hoare triple {335#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {335#true} is VALID [2018-11-23 12:51:53,175 INFO L273 TraceCheckUtils]: 9: Hoare triple {335#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {335#true} is VALID [2018-11-23 12:51:53,175 INFO L273 TraceCheckUtils]: 10: Hoare triple {335#true} assume true; {335#true} is VALID [2018-11-23 12:51:53,176 INFO L268 TraceCheckUtils]: 11: Hoare quadruple {335#true} {335#true} #106#return; {335#true} is VALID [2018-11-23 12:51:53,176 INFO L273 TraceCheckUtils]: 12: Hoare triple {335#true} assume 0 != #t~ret19 % 256;havoc #t~ret19; {335#true} is VALID [2018-11-23 12:51:53,176 INFO L256 TraceCheckUtils]: 13: Hoare triple {335#true} call remove(~x~0.base, ~x~0.offset); {335#true} is VALID [2018-11-23 12:51:53,177 INFO L273 TraceCheckUtils]: 14: Hoare triple {335#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {335#true} is VALID [2018-11-23 12:51:53,177 INFO L273 TraceCheckUtils]: 15: Hoare triple {335#true} assume #t~mem3.base != 0 || #t~mem3.offset != 0;havoc #t~mem3.base, #t~mem3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call #t~mem5.base, #t~mem5.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(#t~mem5.base, #t~mem5.offset, #t~mem4.base, #t~mem4.offset, 4);havoc #t~mem5.base, #t~mem5.offset;havoc #t~mem4.base, #t~mem4.offset; {335#true} is VALID [2018-11-23 12:51:53,177 INFO L273 TraceCheckUtils]: 16: Hoare triple {335#true} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {335#true} is VALID [2018-11-23 12:51:53,177 INFO L273 TraceCheckUtils]: 17: Hoare triple {335#true} assume #t~mem6.base != 0 || #t~mem6.offset != 0;havoc #t~mem6.base, #t~mem6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~x.base, ~x.offset, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(#t~mem8.base, #t~mem8.offset, #t~mem7.base, 4 + #t~mem7.offset, 4);havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8.base, #t~mem8.offset; {335#true} is VALID [2018-11-23 12:51:53,178 INFO L273 TraceCheckUtils]: 18: Hoare triple {335#true} assume true; {335#true} is VALID [2018-11-23 12:51:53,178 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {335#true} {335#true} #108#return; {335#true} is VALID [2018-11-23 12:51:53,178 INFO L273 TraceCheckUtils]: 20: Hoare triple {335#true} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {335#true} is VALID [2018-11-23 12:51:53,179 INFO L273 TraceCheckUtils]: 21: Hoare triple {335#true} assume #t~short21; {337#|main_#t~short21|} is VALID [2018-11-23 12:51:53,181 INFO L256 TraceCheckUtils]: 22: Hoare triple {337#|main_#t~short21|} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {338#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:51:53,181 INFO L273 TraceCheckUtils]: 23: Hoare triple {338#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {339#(= __VERIFIER_assert_~cond 1)} is VALID [2018-11-23 12:51:53,186 INFO L273 TraceCheckUtils]: 24: Hoare triple {339#(= __VERIFIER_assert_~cond 1)} assume 0 == ~cond; {336#false} is VALID [2018-11-23 12:51:53,186 INFO L273 TraceCheckUtils]: 25: Hoare triple {336#false} assume !false; {336#false} is VALID [2018-11-23 12:51:53,188 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:51:53,189 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:51:53,189 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 12:51:53,191 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 26 [2018-11-23 12:51:53,191 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:51:53,191 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2018-11-23 12:51:53,280 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 26 edges. 26 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:51:53,280 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 12:51:53,281 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 12:51:53,281 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:51:53,281 INFO L87 Difference]: Start difference. First operand 46 states and 59 transitions. Second operand 5 states. [2018-11-23 12:51:53,835 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:53,835 INFO L93 Difference]: Finished difference Result 54 states and 67 transitions. [2018-11-23 12:51:53,835 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 12:51:53,835 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 26 [2018-11-23 12:51:53,836 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:51:53,836 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:51:53,839 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 67 transitions. [2018-11-23 12:51:53,840 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:51:53,843 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 67 transitions. [2018-11-23 12:51:53,843 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 67 transitions. [2018-11-23 12:51:53,955 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:51:53,958 INFO L225 Difference]: With dead ends: 54 [2018-11-23 12:51:53,959 INFO L226 Difference]: Without dead ends: 52 [2018-11-23 12:51:53,960 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:51:53,960 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2018-11-23 12:51:54,016 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 51. [2018-11-23 12:51:54,016 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:51:54,016 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 51 states. [2018-11-23 12:51:54,016 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 51 states. [2018-11-23 12:51:54,016 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 51 states. [2018-11-23 12:51:54,021 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:54,021 INFO L93 Difference]: Finished difference Result 52 states and 65 transitions. [2018-11-23 12:51:54,022 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 65 transitions. [2018-11-23 12:51:54,023 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:51:54,023 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:51:54,023 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand 52 states. [2018-11-23 12:51:54,023 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 52 states. [2018-11-23 12:51:54,028 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:54,029 INFO L93 Difference]: Finished difference Result 52 states and 65 transitions. [2018-11-23 12:51:54,029 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 65 transitions. [2018-11-23 12:51:54,030 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:51:54,030 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:51:54,030 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:51:54,031 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:51:54,031 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 51 states. [2018-11-23 12:51:54,034 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 64 transitions. [2018-11-23 12:51:54,035 INFO L78 Accepts]: Start accepts. Automaton has 51 states and 64 transitions. Word has length 26 [2018-11-23 12:51:54,035 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:51:54,035 INFO L480 AbstractCegarLoop]: Abstraction has 51 states and 64 transitions. [2018-11-23 12:51:54,036 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 12:51:54,036 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 64 transitions. [2018-11-23 12:51:54,037 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2018-11-23 12:51:54,037 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:51:54,037 INFO L402 BasicCegarLoop]: trace histogram [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] [2018-11-23 12:51:54,038 INFO L423 AbstractCegarLoop]: === Iteration 3 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:51:54,038 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:51:54,038 INFO L82 PathProgramCache]: Analyzing trace with hash -263608208, now seen corresponding path program 1 times [2018-11-23 12:51:54,038 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:51:54,039 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:51:54,040 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:51:54,041 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:51:54,041 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:51:54,065 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:51:54,164 INFO L256 TraceCheckUtils]: 0: Hoare triple {591#true} call ULTIMATE.init(); {591#true} is VALID [2018-11-23 12:51:54,164 INFO L273 TraceCheckUtils]: 1: Hoare triple {591#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {591#true} is VALID [2018-11-23 12:51:54,165 INFO L273 TraceCheckUtils]: 2: Hoare triple {591#true} assume true; {591#true} is VALID [2018-11-23 12:51:54,165 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {591#true} {591#true} #102#return; {591#true} is VALID [2018-11-23 12:51:54,165 INFO L256 TraceCheckUtils]: 4: Hoare triple {591#true} call #t~ret23 := main(); {591#true} is VALID [2018-11-23 12:51:54,166 INFO L273 TraceCheckUtils]: 5: Hoare triple {591#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:51:54,172 INFO L273 TraceCheckUtils]: 6: Hoare triple {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:51:54,172 INFO L256 TraceCheckUtils]: 7: Hoare triple {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {591#true} is VALID [2018-11-23 12:51:54,172 INFO L273 TraceCheckUtils]: 8: Hoare triple {591#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {591#true} is VALID [2018-11-23 12:51:54,173 INFO L273 TraceCheckUtils]: 9: Hoare triple {591#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {591#true} is VALID [2018-11-23 12:51:54,173 INFO L273 TraceCheckUtils]: 10: Hoare triple {591#true} assume true; {591#true} is VALID [2018-11-23 12:51:54,175 INFO L268 TraceCheckUtils]: 11: Hoare quadruple {591#true} {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} #106#return; {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:51:54,177 INFO L273 TraceCheckUtils]: 12: Hoare triple {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} assume 0 != #t~ret19 % 256;havoc #t~ret19; {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:51:54,177 INFO L256 TraceCheckUtils]: 13: Hoare triple {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} call remove(~x~0.base, ~x~0.offset); {591#true} is VALID [2018-11-23 12:51:54,177 INFO L273 TraceCheckUtils]: 14: Hoare triple {591#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {591#true} is VALID [2018-11-23 12:51:54,177 INFO L273 TraceCheckUtils]: 15: Hoare triple {591#true} assume #t~mem3.base != 0 || #t~mem3.offset != 0;havoc #t~mem3.base, #t~mem3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call #t~mem5.base, #t~mem5.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(#t~mem5.base, #t~mem5.offset, #t~mem4.base, #t~mem4.offset, 4);havoc #t~mem5.base, #t~mem5.offset;havoc #t~mem4.base, #t~mem4.offset; {591#true} is VALID [2018-11-23 12:51:54,178 INFO L273 TraceCheckUtils]: 16: Hoare triple {591#true} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {591#true} is VALID [2018-11-23 12:51:54,178 INFO L273 TraceCheckUtils]: 17: Hoare triple {591#true} assume #t~mem6.base != 0 || #t~mem6.offset != 0;havoc #t~mem6.base, #t~mem6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~x.base, ~x.offset, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(#t~mem8.base, #t~mem8.offset, #t~mem7.base, 4 + #t~mem7.offset, 4);havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8.base, #t~mem8.offset; {591#true} is VALID [2018-11-23 12:51:54,178 INFO L273 TraceCheckUtils]: 18: Hoare triple {591#true} assume true; {591#true} is VALID [2018-11-23 12:51:54,179 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {591#true} {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} #108#return; {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:51:54,180 INFO L273 TraceCheckUtils]: 20: Hoare triple {593#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {594#|main_#t~short21|} is VALID [2018-11-23 12:51:54,181 INFO L273 TraceCheckUtils]: 21: Hoare triple {594#|main_#t~short21|} assume !#t~short21; {592#false} is VALID [2018-11-23 12:51:54,181 INFO L256 TraceCheckUtils]: 22: Hoare triple {592#false} call #t~ret20 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {591#true} is VALID [2018-11-23 12:51:54,181 INFO L273 TraceCheckUtils]: 23: Hoare triple {591#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {591#true} is VALID [2018-11-23 12:51:54,182 INFO L273 TraceCheckUtils]: 24: Hoare triple {591#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {591#true} is VALID [2018-11-23 12:51:54,182 INFO L273 TraceCheckUtils]: 25: Hoare triple {591#true} assume true; {591#true} is VALID [2018-11-23 12:51:54,183 INFO L268 TraceCheckUtils]: 26: Hoare quadruple {591#true} {592#false} #110#return; {592#false} is VALID [2018-11-23 12:51:54,183 INFO L273 TraceCheckUtils]: 27: Hoare triple {592#false} #t~short21 := 0 == #t~ret20 % 256; {592#false} is VALID [2018-11-23 12:51:54,183 INFO L256 TraceCheckUtils]: 28: Hoare triple {592#false} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {592#false} is VALID [2018-11-23 12:51:54,184 INFO L273 TraceCheckUtils]: 29: Hoare triple {592#false} ~cond := #in~cond; {592#false} is VALID [2018-11-23 12:51:54,184 INFO L273 TraceCheckUtils]: 30: Hoare triple {592#false} assume 0 == ~cond; {592#false} is VALID [2018-11-23 12:51:54,184 INFO L273 TraceCheckUtils]: 31: Hoare triple {592#false} assume !false; {592#false} is VALID [2018-11-23 12:51:54,187 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 12:51:54,188 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:51:54,188 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 12:51:54,189 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 32 [2018-11-23 12:51:54,189 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:51:54,189 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2018-11-23 12:51:54,243 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 29 edges. 29 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:51:54,244 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 12:51:54,244 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 12:51:54,244 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:51:54,244 INFO L87 Difference]: Start difference. First operand 51 states and 64 transitions. Second operand 4 states. [2018-11-23 12:51:54,594 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:54,594 INFO L93 Difference]: Finished difference Result 91 states and 119 transitions. [2018-11-23 12:51:54,594 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 12:51:54,594 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 32 [2018-11-23 12:51:54,595 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:51:54,595 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-23 12:51:54,601 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 116 transitions. [2018-11-23 12:51:54,601 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-23 12:51:54,607 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 116 transitions. [2018-11-23 12:51:54,607 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 116 transitions. [2018-11-23 12:51:54,827 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 116 edges. 116 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:51:54,832 INFO L225 Difference]: With dead ends: 91 [2018-11-23 12:51:54,833 INFO L226 Difference]: Without dead ends: 65 [2018-11-23 12:51:54,835 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 5 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:51:54,835 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2018-11-23 12:51:54,891 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 59. [2018-11-23 12:51:54,891 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:51:54,891 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand 59 states. [2018-11-23 12:51:54,892 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 59 states. [2018-11-23 12:51:54,892 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 59 states. [2018-11-23 12:51:54,897 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:54,897 INFO L93 Difference]: Finished difference Result 65 states and 86 transitions. [2018-11-23 12:51:54,898 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 86 transitions. [2018-11-23 12:51:54,899 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:51:54,899 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:51:54,900 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand 65 states. [2018-11-23 12:51:54,900 INFO L87 Difference]: Start difference. First operand 59 states. Second operand 65 states. [2018-11-23 12:51:54,909 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:54,909 INFO L93 Difference]: Finished difference Result 65 states and 86 transitions. [2018-11-23 12:51:54,909 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 86 transitions. [2018-11-23 12:51:54,911 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:51:54,911 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:51:54,911 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:51:54,911 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:51:54,911 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 59 states. [2018-11-23 12:51:54,915 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 77 transitions. [2018-11-23 12:51:54,916 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 77 transitions. Word has length 32 [2018-11-23 12:51:54,916 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:51:54,916 INFO L480 AbstractCegarLoop]: Abstraction has 59 states and 77 transitions. [2018-11-23 12:51:54,916 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 12:51:54,916 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 77 transitions. [2018-11-23 12:51:54,918 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2018-11-23 12:51:54,918 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:51:54,918 INFO L402 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:51:54,918 INFO L423 AbstractCegarLoop]: === Iteration 4 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:51:54,919 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:51:54,919 INFO L82 PathProgramCache]: Analyzing trace with hash 351866420, now seen corresponding path program 1 times [2018-11-23 12:51:54,919 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:51:54,919 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:51:54,921 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:51:54,921 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:51:54,921 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:51:54,947 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:51:55,073 INFO L256 TraceCheckUtils]: 0: Hoare triple {936#true} call ULTIMATE.init(); {936#true} is VALID [2018-11-23 12:51:55,074 INFO L273 TraceCheckUtils]: 1: Hoare triple {936#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {936#true} is VALID [2018-11-23 12:51:55,074 INFO L273 TraceCheckUtils]: 2: Hoare triple {936#true} assume true; {936#true} is VALID [2018-11-23 12:51:55,075 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {936#true} {936#true} #102#return; {936#true} is VALID [2018-11-23 12:51:55,075 INFO L256 TraceCheckUtils]: 4: Hoare triple {936#true} call #t~ret23 := main(); {936#true} is VALID [2018-11-23 12:51:55,078 INFO L273 TraceCheckUtils]: 5: Hoare triple {936#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {938#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 12:51:55,079 INFO L273 TraceCheckUtils]: 6: Hoare triple {938#(= (select |#valid| |main_~#list~0.base|) 1)} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {939#(not (= |main_~#list~0.base| main_~n~0.base))} is VALID [2018-11-23 12:51:55,081 INFO L273 TraceCheckUtils]: 7: Hoare triple {939#(not (= |main_~#list~0.base| main_~n~0.base))} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {939#(not (= |main_~#list~0.base| main_~n~0.base))} is VALID [2018-11-23 12:51:55,081 INFO L273 TraceCheckUtils]: 8: Hoare triple {939#(not (= |main_~#list~0.base| main_~n~0.base))} assume 0 != #t~nondet18 % 256;havoc #t~nondet18;~x~0.base, ~x~0.offset := ~n~0.base, ~n~0.offset; {940#(not (= |main_~#list~0.base| main_~x~0.base))} is VALID [2018-11-23 12:51:55,083 INFO L273 TraceCheckUtils]: 9: Hoare triple {940#(not (= |main_~#list~0.base| main_~x~0.base))} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {940#(not (= |main_~#list~0.base| main_~x~0.base))} is VALID [2018-11-23 12:51:55,083 INFO L256 TraceCheckUtils]: 10: Hoare triple {940#(not (= |main_~#list~0.base| main_~x~0.base))} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {936#true} is VALID [2018-11-23 12:51:55,084 INFO L273 TraceCheckUtils]: 11: Hoare triple {936#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {941#(and (= |is_list_containing_x_#in~x.base| is_list_containing_x_~x.base) (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|))} is VALID [2018-11-23 12:51:55,084 INFO L273 TraceCheckUtils]: 12: Hoare triple {941#(and (= |is_list_containing_x_#in~x.base| is_list_containing_x_~x.base) (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|))} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {942#(= |is_list_containing_x_#in~x.base| |is_list_containing_x_#in~l.base|)} is VALID [2018-11-23 12:51:55,085 INFO L273 TraceCheckUtils]: 13: Hoare triple {942#(= |is_list_containing_x_#in~x.base| |is_list_containing_x_#in~l.base|)} assume true; {942#(= |is_list_containing_x_#in~x.base| |is_list_containing_x_#in~l.base|)} is VALID [2018-11-23 12:51:55,087 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {942#(= |is_list_containing_x_#in~x.base| |is_list_containing_x_#in~l.base|)} {940#(not (= |main_~#list~0.base| main_~x~0.base))} #106#return; {937#false} is VALID [2018-11-23 12:51:55,087 INFO L273 TraceCheckUtils]: 15: Hoare triple {937#false} assume 0 != #t~ret19 % 256;havoc #t~ret19; {937#false} is VALID [2018-11-23 12:51:55,088 INFO L256 TraceCheckUtils]: 16: Hoare triple {937#false} call remove(~x~0.base, ~x~0.offset); {936#true} is VALID [2018-11-23 12:51:55,088 INFO L273 TraceCheckUtils]: 17: Hoare triple {936#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {936#true} is VALID [2018-11-23 12:51:55,089 INFO L273 TraceCheckUtils]: 18: Hoare triple {936#true} assume #t~mem3.base != 0 || #t~mem3.offset != 0;havoc #t~mem3.base, #t~mem3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call #t~mem5.base, #t~mem5.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(#t~mem5.base, #t~mem5.offset, #t~mem4.base, #t~mem4.offset, 4);havoc #t~mem5.base, #t~mem5.offset;havoc #t~mem4.base, #t~mem4.offset; {936#true} is VALID [2018-11-23 12:51:55,089 INFO L273 TraceCheckUtils]: 19: Hoare triple {936#true} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {936#true} is VALID [2018-11-23 12:51:55,090 INFO L273 TraceCheckUtils]: 20: Hoare triple {936#true} assume #t~mem6.base != 0 || #t~mem6.offset != 0;havoc #t~mem6.base, #t~mem6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~x.base, ~x.offset, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(#t~mem8.base, #t~mem8.offset, #t~mem7.base, 4 + #t~mem7.offset, 4);havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8.base, #t~mem8.offset; {936#true} is VALID [2018-11-23 12:51:55,090 INFO L273 TraceCheckUtils]: 21: Hoare triple {936#true} assume true; {936#true} is VALID [2018-11-23 12:51:55,090 INFO L268 TraceCheckUtils]: 22: Hoare quadruple {936#true} {937#false} #108#return; {937#false} is VALID [2018-11-23 12:51:55,090 INFO L273 TraceCheckUtils]: 23: Hoare triple {937#false} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {937#false} is VALID [2018-11-23 12:51:55,091 INFO L273 TraceCheckUtils]: 24: Hoare triple {937#false} assume !#t~short21; {937#false} is VALID [2018-11-23 12:51:55,091 INFO L256 TraceCheckUtils]: 25: Hoare triple {937#false} call #t~ret20 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {936#true} is VALID [2018-11-23 12:51:55,091 INFO L273 TraceCheckUtils]: 26: Hoare triple {936#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {936#true} is VALID [2018-11-23 12:51:55,092 INFO L273 TraceCheckUtils]: 27: Hoare triple {936#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {936#true} is VALID [2018-11-23 12:51:55,092 INFO L273 TraceCheckUtils]: 28: Hoare triple {936#true} assume true; {936#true} is VALID [2018-11-23 12:51:55,092 INFO L268 TraceCheckUtils]: 29: Hoare quadruple {936#true} {937#false} #110#return; {937#false} is VALID [2018-11-23 12:51:55,093 INFO L273 TraceCheckUtils]: 30: Hoare triple {937#false} #t~short21 := 0 == #t~ret20 % 256; {937#false} is VALID [2018-11-23 12:51:55,093 INFO L256 TraceCheckUtils]: 31: Hoare triple {937#false} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {937#false} is VALID [2018-11-23 12:51:55,093 INFO L273 TraceCheckUtils]: 32: Hoare triple {937#false} ~cond := #in~cond; {937#false} is VALID [2018-11-23 12:51:55,093 INFO L273 TraceCheckUtils]: 33: Hoare triple {937#false} assume 0 == ~cond; {937#false} is VALID [2018-11-23 12:51:55,094 INFO L273 TraceCheckUtils]: 34: Hoare triple {937#false} assume !false; {937#false} is VALID [2018-11-23 12:51:55,096 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 0 proven. 4 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 12:51:55,097 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:51:55,097 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:51:55,111 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:51:55,149 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:51:55,176 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:51:55,181 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:51:55,248 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:51:55,254 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 12:51:55,258 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:51:55,258 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:6, output treesize:5 [2018-11-23 12:51:55,261 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:51:55,261 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_13|]. (= |#valid| (store |v_#valid_13| |main_~#list~0.base| 1)) [2018-11-23 12:51:55,262 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (= 1 (select |#valid| |main_~#list~0.base|)) [2018-11-23 12:51:55,380 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:51:55,396 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:51:55,398 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 11 treesize of output 4 [2018-11-23 12:51:55,426 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 12:51:55,448 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:51:55,448 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:11, output treesize:4 [2018-11-23 12:51:55,616 INFO L256 TraceCheckUtils]: 0: Hoare triple {936#true} call ULTIMATE.init(); {936#true} is VALID [2018-11-23 12:51:55,616 INFO L273 TraceCheckUtils]: 1: Hoare triple {936#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {936#true} is VALID [2018-11-23 12:51:55,616 INFO L273 TraceCheckUtils]: 2: Hoare triple {936#true} assume true; {936#true} is VALID [2018-11-23 12:51:55,617 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {936#true} {936#true} #102#return; {936#true} is VALID [2018-11-23 12:51:55,617 INFO L256 TraceCheckUtils]: 4: Hoare triple {936#true} call #t~ret23 := main(); {936#true} is VALID [2018-11-23 12:51:55,632 INFO L273 TraceCheckUtils]: 5: Hoare triple {936#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {938#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 12:51:55,635 INFO L273 TraceCheckUtils]: 6: Hoare triple {938#(= (select |#valid| |main_~#list~0.base|) 1)} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {939#(not (= |main_~#list~0.base| main_~n~0.base))} is VALID [2018-11-23 12:51:55,635 INFO L273 TraceCheckUtils]: 7: Hoare triple {939#(not (= |main_~#list~0.base| main_~n~0.base))} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {939#(not (= |main_~#list~0.base| main_~n~0.base))} is VALID [2018-11-23 12:51:55,636 INFO L273 TraceCheckUtils]: 8: Hoare triple {939#(not (= |main_~#list~0.base| main_~n~0.base))} assume 0 != #t~nondet18 % 256;havoc #t~nondet18;~x~0.base, ~x~0.offset := ~n~0.base, ~n~0.offset; {940#(not (= |main_~#list~0.base| main_~x~0.base))} is VALID [2018-11-23 12:51:55,641 INFO L273 TraceCheckUtils]: 9: Hoare triple {940#(not (= |main_~#list~0.base| main_~x~0.base))} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {940#(not (= |main_~#list~0.base| main_~x~0.base))} is VALID [2018-11-23 12:51:55,641 INFO L256 TraceCheckUtils]: 10: Hoare triple {940#(not (= |main_~#list~0.base| main_~x~0.base))} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {936#true} is VALID [2018-11-23 12:51:55,664 INFO L273 TraceCheckUtils]: 11: Hoare triple {936#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {941#(and (= |is_list_containing_x_#in~x.base| is_list_containing_x_~x.base) (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|))} is VALID [2018-11-23 12:51:55,678 INFO L273 TraceCheckUtils]: 12: Hoare triple {941#(and (= |is_list_containing_x_#in~x.base| is_list_containing_x_~x.base) (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|))} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {942#(= |is_list_containing_x_#in~x.base| |is_list_containing_x_#in~l.base|)} is VALID [2018-11-23 12:51:55,681 INFO L273 TraceCheckUtils]: 13: Hoare triple {942#(= |is_list_containing_x_#in~x.base| |is_list_containing_x_#in~l.base|)} assume true; {942#(= |is_list_containing_x_#in~x.base| |is_list_containing_x_#in~l.base|)} is VALID [2018-11-23 12:51:55,683 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {942#(= |is_list_containing_x_#in~x.base| |is_list_containing_x_#in~l.base|)} {940#(not (= |main_~#list~0.base| main_~x~0.base))} #106#return; {937#false} is VALID [2018-11-23 12:51:55,683 INFO L273 TraceCheckUtils]: 15: Hoare triple {937#false} assume 0 != #t~ret19 % 256;havoc #t~ret19; {937#false} is VALID [2018-11-23 12:51:55,683 INFO L256 TraceCheckUtils]: 16: Hoare triple {937#false} call remove(~x~0.base, ~x~0.offset); {937#false} is VALID [2018-11-23 12:51:55,683 INFO L273 TraceCheckUtils]: 17: Hoare triple {937#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {937#false} is VALID [2018-11-23 12:51:55,684 INFO L273 TraceCheckUtils]: 18: Hoare triple {937#false} assume #t~mem3.base != 0 || #t~mem3.offset != 0;havoc #t~mem3.base, #t~mem3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call #t~mem5.base, #t~mem5.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(#t~mem5.base, #t~mem5.offset, #t~mem4.base, #t~mem4.offset, 4);havoc #t~mem5.base, #t~mem5.offset;havoc #t~mem4.base, #t~mem4.offset; {937#false} is VALID [2018-11-23 12:51:55,684 INFO L273 TraceCheckUtils]: 19: Hoare triple {937#false} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {937#false} is VALID [2018-11-23 12:51:55,684 INFO L273 TraceCheckUtils]: 20: Hoare triple {937#false} assume #t~mem6.base != 0 || #t~mem6.offset != 0;havoc #t~mem6.base, #t~mem6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~x.base, ~x.offset, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(#t~mem8.base, #t~mem8.offset, #t~mem7.base, 4 + #t~mem7.offset, 4);havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8.base, #t~mem8.offset; {937#false} is VALID [2018-11-23 12:51:55,684 INFO L273 TraceCheckUtils]: 21: Hoare triple {937#false} assume true; {937#false} is VALID [2018-11-23 12:51:55,687 INFO L268 TraceCheckUtils]: 22: Hoare quadruple {937#false} {937#false} #108#return; {937#false} is VALID [2018-11-23 12:51:55,687 INFO L273 TraceCheckUtils]: 23: Hoare triple {937#false} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {937#false} is VALID [2018-11-23 12:51:55,687 INFO L273 TraceCheckUtils]: 24: Hoare triple {937#false} assume !#t~short21; {937#false} is VALID [2018-11-23 12:51:55,687 INFO L256 TraceCheckUtils]: 25: Hoare triple {937#false} call #t~ret20 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {937#false} is VALID [2018-11-23 12:51:55,688 INFO L273 TraceCheckUtils]: 26: Hoare triple {937#false} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {937#false} is VALID [2018-11-23 12:51:55,688 INFO L273 TraceCheckUtils]: 27: Hoare triple {937#false} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {937#false} is VALID [2018-11-23 12:51:55,688 INFO L273 TraceCheckUtils]: 28: Hoare triple {937#false} assume true; {937#false} is VALID [2018-11-23 12:51:55,688 INFO L268 TraceCheckUtils]: 29: Hoare quadruple {937#false} {937#false} #110#return; {937#false} is VALID [2018-11-23 12:51:55,689 INFO L273 TraceCheckUtils]: 30: Hoare triple {937#false} #t~short21 := 0 == #t~ret20 % 256; {937#false} is VALID [2018-11-23 12:51:55,689 INFO L256 TraceCheckUtils]: 31: Hoare triple {937#false} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {937#false} is VALID [2018-11-23 12:51:55,689 INFO L273 TraceCheckUtils]: 32: Hoare triple {937#false} ~cond := #in~cond; {937#false} is VALID [2018-11-23 12:51:55,689 INFO L273 TraceCheckUtils]: 33: Hoare triple {937#false} assume 0 == ~cond; {937#false} is VALID [2018-11-23 12:51:55,690 INFO L273 TraceCheckUtils]: 34: Hoare triple {937#false} assume !false; {937#false} is VALID [2018-11-23 12:51:55,692 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 4 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:51:55,719 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:51:55,719 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 7 [2018-11-23 12:51:55,720 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 35 [2018-11-23 12:51:55,720 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:51:55,720 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2018-11-23 12:51:55,818 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:51:55,818 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2018-11-23 12:51:55,818 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2018-11-23 12:51:55,819 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2018-11-23 12:51:55,819 INFO L87 Difference]: Start difference. First operand 59 states and 77 transitions. Second operand 7 states. [2018-11-23 12:51:57,431 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:57,432 INFO L93 Difference]: Finished difference Result 118 states and 161 transitions. [2018-11-23 12:51:57,432 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2018-11-23 12:51:57,432 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 35 [2018-11-23 12:51:57,432 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:51:57,433 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2018-11-23 12:51:57,437 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 151 transitions. [2018-11-23 12:51:57,438 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2018-11-23 12:51:57,442 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 151 transitions. [2018-11-23 12:51:57,443 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 151 transitions. [2018-11-23 12:51:57,787 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 151 edges. 151 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:51:57,792 INFO L225 Difference]: With dead ends: 118 [2018-11-23 12:51:57,792 INFO L226 Difference]: Without dead ends: 77 [2018-11-23 12:51:57,793 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 44 GetRequests, 33 SyntacticMatches, 3 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=25, Invalid=65, Unknown=0, NotChecked=0, Total=90 [2018-11-23 12:51:57,794 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 77 states. [2018-11-23 12:51:57,894 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 77 to 65. [2018-11-23 12:51:57,894 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:51:57,894 INFO L82 GeneralOperation]: Start isEquivalent. First operand 77 states. Second operand 65 states. [2018-11-23 12:51:57,894 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 65 states. [2018-11-23 12:51:57,895 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 65 states. [2018-11-23 12:51:57,901 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:57,902 INFO L93 Difference]: Finished difference Result 77 states and 108 transitions. [2018-11-23 12:51:57,902 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 108 transitions. [2018-11-23 12:51:57,903 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:51:57,903 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:51:57,903 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 77 states. [2018-11-23 12:51:57,904 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 77 states. [2018-11-23 12:51:57,910 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:51:57,910 INFO L93 Difference]: Finished difference Result 77 states and 108 transitions. [2018-11-23 12:51:57,910 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 108 transitions. [2018-11-23 12:51:57,911 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:51:57,911 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:51:57,912 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:51:57,912 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:51:57,912 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 65 states. [2018-11-23 12:51:57,916 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 65 states to 65 states and 88 transitions. [2018-11-23 12:51:57,917 INFO L78 Accepts]: Start accepts. Automaton has 65 states and 88 transitions. Word has length 35 [2018-11-23 12:51:57,917 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:51:57,917 INFO L480 AbstractCegarLoop]: Abstraction has 65 states and 88 transitions. [2018-11-23 12:51:57,917 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2018-11-23 12:51:57,917 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 88 transitions. [2018-11-23 12:51:57,918 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2018-11-23 12:51:57,919 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:51:57,919 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] [2018-11-23 12:51:57,919 INFO L423 AbstractCegarLoop]: === Iteration 5 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:51:57,919 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:51:57,920 INFO L82 PathProgramCache]: Analyzing trace with hash -1604870462, now seen corresponding path program 1 times [2018-11-23 12:51:57,920 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:51:57,920 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:51:57,921 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:51:57,922 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:51:57,922 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:51:57,952 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:51:58,074 INFO L256 TraceCheckUtils]: 0: Hoare triple {1461#true} call ULTIMATE.init(); {1461#true} is VALID [2018-11-23 12:51:58,074 INFO L273 TraceCheckUtils]: 1: Hoare triple {1461#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1461#true} is VALID [2018-11-23 12:51:58,074 INFO L273 TraceCheckUtils]: 2: Hoare triple {1461#true} assume true; {1461#true} is VALID [2018-11-23 12:51:58,075 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1461#true} {1461#true} #102#return; {1461#true} is VALID [2018-11-23 12:51:58,075 INFO L256 TraceCheckUtils]: 4: Hoare triple {1461#true} call #t~ret23 := main(); {1461#true} is VALID [2018-11-23 12:51:58,075 INFO L273 TraceCheckUtils]: 5: Hoare triple {1461#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {1461#true} is VALID [2018-11-23 12:51:58,075 INFO L273 TraceCheckUtils]: 6: Hoare triple {1461#true} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {1461#true} is VALID [2018-11-23 12:51:58,076 INFO L273 TraceCheckUtils]: 7: Hoare triple {1461#true} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {1461#true} is VALID [2018-11-23 12:51:58,076 INFO L273 TraceCheckUtils]: 8: Hoare triple {1461#true} assume 0 != #t~nondet18 % 256;havoc #t~nondet18;~x~0.base, ~x~0.offset := ~n~0.base, ~n~0.offset; {1461#true} is VALID [2018-11-23 12:51:58,076 INFO L273 TraceCheckUtils]: 9: Hoare triple {1461#true} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {1461#true} is VALID [2018-11-23 12:51:58,076 INFO L256 TraceCheckUtils]: 10: Hoare triple {1461#true} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {1461#true} is VALID [2018-11-23 12:51:58,077 INFO L273 TraceCheckUtils]: 11: Hoare triple {1461#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {1461#true} is VALID [2018-11-23 12:51:58,077 INFO L273 TraceCheckUtils]: 12: Hoare triple {1461#true} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {1461#true} is VALID [2018-11-23 12:51:58,079 INFO L273 TraceCheckUtils]: 13: Hoare triple {1461#true} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset;#res := 0; {1463#(= 0 |is_list_containing_x_#res|)} is VALID [2018-11-23 12:51:58,081 INFO L273 TraceCheckUtils]: 14: Hoare triple {1463#(= 0 |is_list_containing_x_#res|)} assume true; {1463#(= 0 |is_list_containing_x_#res|)} is VALID [2018-11-23 12:51:58,082 INFO L268 TraceCheckUtils]: 15: Hoare quadruple {1463#(= 0 |is_list_containing_x_#res|)} {1461#true} #106#return; {1464#(= |main_#t~ret19| 0)} is VALID [2018-11-23 12:51:58,084 INFO L273 TraceCheckUtils]: 16: Hoare triple {1464#(= |main_#t~ret19| 0)} assume 0 != #t~ret19 % 256;havoc #t~ret19; {1462#false} is VALID [2018-11-23 12:51:58,084 INFO L256 TraceCheckUtils]: 17: Hoare triple {1462#false} call remove(~x~0.base, ~x~0.offset); {1461#true} is VALID [2018-11-23 12:51:58,084 INFO L273 TraceCheckUtils]: 18: Hoare triple {1461#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {1461#true} is VALID [2018-11-23 12:51:58,084 INFO L273 TraceCheckUtils]: 19: Hoare triple {1461#true} assume #t~mem3.base != 0 || #t~mem3.offset != 0;havoc #t~mem3.base, #t~mem3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call #t~mem5.base, #t~mem5.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(#t~mem5.base, #t~mem5.offset, #t~mem4.base, #t~mem4.offset, 4);havoc #t~mem5.base, #t~mem5.offset;havoc #t~mem4.base, #t~mem4.offset; {1461#true} is VALID [2018-11-23 12:51:58,085 INFO L273 TraceCheckUtils]: 20: Hoare triple {1461#true} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {1461#true} is VALID [2018-11-23 12:51:58,085 INFO L273 TraceCheckUtils]: 21: Hoare triple {1461#true} assume #t~mem6.base != 0 || #t~mem6.offset != 0;havoc #t~mem6.base, #t~mem6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~x.base, ~x.offset, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(#t~mem8.base, #t~mem8.offset, #t~mem7.base, 4 + #t~mem7.offset, 4);havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8.base, #t~mem8.offset; {1461#true} is VALID [2018-11-23 12:51:58,085 INFO L273 TraceCheckUtils]: 22: Hoare triple {1461#true} assume true; {1461#true} is VALID [2018-11-23 12:51:58,085 INFO L268 TraceCheckUtils]: 23: Hoare quadruple {1461#true} {1462#false} #108#return; {1462#false} is VALID [2018-11-23 12:51:58,086 INFO L273 TraceCheckUtils]: 24: Hoare triple {1462#false} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {1462#false} is VALID [2018-11-23 12:51:58,086 INFO L273 TraceCheckUtils]: 25: Hoare triple {1462#false} assume !#t~short21; {1462#false} is VALID [2018-11-23 12:51:58,086 INFO L256 TraceCheckUtils]: 26: Hoare triple {1462#false} call #t~ret20 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {1461#true} is VALID [2018-11-23 12:51:58,086 INFO L273 TraceCheckUtils]: 27: Hoare triple {1461#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {1461#true} is VALID [2018-11-23 12:51:58,087 INFO L273 TraceCheckUtils]: 28: Hoare triple {1461#true} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {1461#true} is VALID [2018-11-23 12:51:58,087 INFO L273 TraceCheckUtils]: 29: Hoare triple {1461#true} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset;#res := 0; {1461#true} is VALID [2018-11-23 12:51:58,087 INFO L273 TraceCheckUtils]: 30: Hoare triple {1461#true} assume true; {1461#true} is VALID [2018-11-23 12:51:58,087 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1461#true} {1462#false} #110#return; {1462#false} is VALID [2018-11-23 12:51:58,088 INFO L273 TraceCheckUtils]: 32: Hoare triple {1462#false} #t~short21 := 0 == #t~ret20 % 256; {1462#false} is VALID [2018-11-23 12:51:58,088 INFO L256 TraceCheckUtils]: 33: Hoare triple {1462#false} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {1462#false} is VALID [2018-11-23 12:51:58,088 INFO L273 TraceCheckUtils]: 34: Hoare triple {1462#false} ~cond := #in~cond; {1462#false} is VALID [2018-11-23 12:51:58,088 INFO L273 TraceCheckUtils]: 35: Hoare triple {1462#false} assume 0 == ~cond; {1462#false} is VALID [2018-11-23 12:51:58,089 INFO L273 TraceCheckUtils]: 36: Hoare triple {1462#false} assume !false; {1462#false} is VALID [2018-11-23 12:51:58,091 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 12:51:58,091 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:51:58,093 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:51:58,104 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:51:58,147 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:51:58,173 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:51:58,175 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:51:58,434 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 31 [2018-11-23 12:51:58,448 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 13 treesize of output 16 [2018-11-23 12:51:58,456 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:51:58,460 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 16 treesize of output 23 [2018-11-23 12:51:58,502 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-23 12:51:58,605 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:51:58,652 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 30 treesize of output 31 [2018-11-23 12:51:58,664 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 10 treesize of output 9 [2018-11-23 12:51:58,689 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2018-11-23 12:51:58,824 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:51:58,841 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:51:58,850 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 2 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 36 [2018-11-23 12:51:58,860 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 32 [2018-11-23 12:51:58,868 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:51:58,871 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 32 treesize of output 36 [2018-11-23 12:51:58,885 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2018-11-23 12:51:58,954 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:51:58,981 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 30 treesize of output 23 [2018-11-23 12:51:58,996 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:51:59,013 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 23 treesize of output 43 [2018-11-23 12:51:59,016 INFO L267 ElimStorePlain]: Start of recursive call 11: End of recursive call: and 2 xjuncts. [2018-11-23 12:51:59,046 INFO L267 ElimStorePlain]: Start of recursive call 10: 1 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 12:51:59,271 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 12:51:59,371 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 2 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 36 [2018-11-23 12:51:59,379 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 32 [2018-11-23 12:51:59,398 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:51:59,401 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 32 treesize of output 36 [2018-11-23 12:51:59,404 INFO L267 ElimStorePlain]: Start of recursive call 14: End of recursive call: and 1 xjuncts. [2018-11-23 12:51:59,416 INFO L267 ElimStorePlain]: Start of recursive call 13: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:51:59,443 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 30 treesize of output 23 [2018-11-23 12:51:59,467 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:51:59,500 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 23 treesize of output 41 [2018-11-23 12:51:59,519 INFO L267 ElimStorePlain]: Start of recursive call 16: End of recursive call: and 2 xjuncts. [2018-11-23 12:51:59,546 INFO L267 ElimStorePlain]: Start of recursive call 15: 1 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 12:51:59,571 INFO L267 ElimStorePlain]: Start of recursive call 12: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 12:51:59,584 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 31 [2018-11-23 12:51:59,591 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 16 [2018-11-23 12:51:59,597 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:51:59,599 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 16 treesize of output 23 [2018-11-23 12:51:59,603 INFO L267 ElimStorePlain]: Start of recursive call 19: End of recursive call: and 1 xjuncts. [2018-11-23 12:51:59,610 INFO L267 ElimStorePlain]: Start of recursive call 18: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:51:59,648 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 30 treesize of output 31 [2018-11-23 12:51:59,694 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 10 treesize of output 9 [2018-11-23 12:51:59,695 INFO L267 ElimStorePlain]: Start of recursive call 21: End of recursive call: and 1 xjuncts. [2018-11-23 12:51:59,705 INFO L267 ElimStorePlain]: Start of recursive call 20: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:51:59,717 INFO L267 ElimStorePlain]: Start of recursive call 17: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:51:59,935 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-2 vars, End of recursive call: and 5 xjuncts. [2018-11-23 12:51:59,935 INFO L202 ElimStorePlain]: Needed 21 recursive calls to eliminate 3 variables, input treesize:85, output treesize:287 [2018-11-23 12:52:02,056 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:52:02,057 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_$Pointer$.offset_28|, main_~tail~0.offset, |v_#memory_$Pointer$.base_28|]. (let ((.cse1 (+ main_~tail~0.offset 4)) (.cse2 (+ main_~n~0.offset 4))) (and (= 0 main_~n~0.offset) (= (let ((.cse0 (store |v_#memory_$Pointer$.offset_28| main_~n~0.base (store (store (select |v_#memory_$Pointer$.offset_28| main_~n~0.base) main_~n~0.offset main_~tail~0.offset) .cse2 0)))) (store .cse0 |main_~#list~0.base| (store (select .cse0 |main_~#list~0.base|) .cse1 main_~n~0.offset))) |#memory_$Pointer$.offset|) (= |#memory_$Pointer$.base| (let ((.cse3 (store |v_#memory_$Pointer$.base_28| main_~n~0.base (store (store (select |v_#memory_$Pointer$.base_28| main_~n~0.base) main_~n~0.offset |main_~#list~0.base|) .cse2 0)))) (store .cse3 |main_~#list~0.base| (store (select .cse3 |main_~#list~0.base|) .cse1 main_~n~0.base)))) (= |main_~#list~0.offset| 0))) [2018-11-23 12:52:02,057 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse15 (select |#memory_$Pointer$.offset| |main_~#list~0.base|)) (.cse21 (select |#memory_$Pointer$.offset| main_~n~0.base))) (let ((.cse9 (select .cse21 main_~n~0.offset)) (.cse18 (select .cse15 main_~n~0.offset))) (let ((.cse16 (+ .cse18 4)) (.cse19 (select |#memory_$Pointer$.base| main_~n~0.base)) (.cse14 (select |#memory_$Pointer$.base| |main_~#list~0.base|)) (.cse20 (+ .cse9 4)) (.cse17 (+ main_~n~0.offset 4))) (let ((.cse8 (= 0 (select .cse21 .cse17))) (.cse10 (= main_~n~0.base (select .cse14 .cse20))) (.cse11 (= (select .cse15 .cse20) main_~n~0.offset)) (.cse5 (= 0 (select .cse19 .cse17))) (.cse6 (= |main_~#list~0.base| (select .cse19 main_~n~0.offset))) (.cse0 (= 0 main_~n~0.offset)) (.cse1 (= |main_~#list~0.base| main_~n~0.base)) (.cse13 (= .cse18 main_~n~0.offset)) (.cse2 (= (select .cse15 .cse17) main_~n~0.offset)) (.cse3 (= (select .cse14 .cse16) main_~n~0.base)) (.cse4 (= (select .cse15 .cse16) main_~n~0.offset)) (.cse12 (= main_~n~0.base (select .cse14 main_~n~0.offset))) (.cse7 (= |main_~#list~0.offset| 0))) (or (and .cse0 .cse1 .cse2 .cse3 .cse4 .cse5 .cse6 .cse7) (and .cse0 .cse1 .cse8 (= main_~n~0.offset .cse9) .cse10 .cse11 .cse12 .cse7) (and .cse0 .cse8 .cse10 .cse11 .cse5 .cse6 .cse7) (and .cse0 .cse1 .cse13 .cse2 .cse5 .cse6 .cse12 .cse7) (and .cse0 .cse1 .cse13 .cse2 .cse3 .cse4 .cse12 .cse7)))))) [2018-11-23 12:52:02,283 WARN L180 SmtUtils]: Spent 178.00 ms on a formula simplification. DAG size of input: 46 DAG size of output: 39 [2018-11-23 12:52:03,430 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 66 treesize of output 56 [2018-11-23 12:52:03,444 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:52:03,445 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:52:03,446 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 19 [2018-11-23 12:52:03,458 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:52:03,471 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:52:03,509 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 24 [2018-11-23 12:52:03,518 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:52:03,520 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 11 [2018-11-23 12:52:03,521 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 12:52:03,526 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:52:03,540 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:52:03,540 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:119, output treesize:14 [2018-11-23 12:52:03,546 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:52:03,546 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_old(#memory_$Pointer$.offset)_AFTER_CALL_2|, |v_old(#memory_$Pointer$.base)_AFTER_CALL_2|, v_prenex_3, v_prenex_2]. (let ((.cse1 (+ main_~x~0.offset 4)) (.cse4 (= |main_~#list~0.base| main_~x~0.base)) (.cse6 (= |main_~#list~0.offset| 0))) (or (let ((.cse3 (select |v_old(#memory_$Pointer$.offset)_AFTER_CALL_2| main_~x~0.base))) (let ((.cse0 (select .cse3 main_~x~0.offset))) (let ((.cse2 (+ .cse0 4)) (.cse5 (select |v_old(#memory_$Pointer$.base)_AFTER_CALL_2| |main_~#list~0.base|))) (and (= main_~x~0.offset .cse0) (not (= 0 (select (select |v_old(#memory_$Pointer$.base)_AFTER_CALL_2| main_~x~0.base) .cse1))) (= main_~x~0.offset (select (select |v_old(#memory_$Pointer$.offset)_AFTER_CALL_2| |main_~#list~0.base|) .cse2)) (= 0 (select .cse3 .cse1)) .cse4 (= (select .cse5 .cse2) main_~x~0.base) (= (select .cse5 main_~x~0.offset) main_~x~0.base) .cse6)))) (let ((.cse7 (select v_prenex_2 |main_~#list~0.base|))) (and (= 0 (select (select v_prenex_3 main_~x~0.base) .cse1)) (= main_~x~0.offset (select .cse7 main_~x~0.offset)) (= (select (select v_prenex_3 |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset 0) (not (= 0 (select (select v_prenex_2 main_~x~0.base) .cse1))) (= main_~x~0.offset (select .cse7 .cse1)) .cse4 .cse6)))) [2018-11-23 12:52:03,546 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (not (= 0 main_~x~0.base)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0)) [2018-11-23 12:52:03,595 INFO L256 TraceCheckUtils]: 0: Hoare triple {1461#true} call ULTIMATE.init(); {1461#true} is VALID [2018-11-23 12:52:03,595 INFO L273 TraceCheckUtils]: 1: Hoare triple {1461#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1461#true} is VALID [2018-11-23 12:52:03,596 INFO L273 TraceCheckUtils]: 2: Hoare triple {1461#true} assume true; {1461#true} is VALID [2018-11-23 12:52:03,596 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1461#true} {1461#true} #102#return; {1461#true} is VALID [2018-11-23 12:52:03,597 INFO L256 TraceCheckUtils]: 4: Hoare triple {1461#true} call #t~ret23 := main(); {1461#true} is VALID [2018-11-23 12:52:03,598 INFO L273 TraceCheckUtils]: 5: Hoare triple {1461#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {1483#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:52:03,599 INFO L273 TraceCheckUtils]: 6: Hoare triple {1483#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| 0))} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {1487#(and (= 0 main_~n~0.offset) (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:52:03,601 INFO L273 TraceCheckUtils]: 7: Hoare triple {1487#(and (= 0 main_~n~0.offset) (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| 0))} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {1491#(or (and (= |main_~#list~0.base| main_~n~0.base) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~n~0.offset) main_~n~0.offset) (= 0 main_~n~0.offset) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~n~0.offset 4)) main_~n~0.offset) (= 0 (select (select |#memory_$Pointer$.base| main_~n~0.base) (+ main_~n~0.offset 4))) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~n~0.offset)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| main_~n~0.base) (= 0 (select (select |#memory_$Pointer$.offset| main_~n~0.base) (+ main_~n~0.offset 4))) (= main_~n~0.offset (select (select |#memory_$Pointer$.offset| main_~n~0.base) main_~n~0.offset)) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~n~0.base) main_~n~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~n~0.base) main_~n~0.offset) 4)) main_~n~0.offset) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~n~0.offset)) (= |main_~#list~0.offset| 0)) (and (= 0 main_~n~0.offset) (= 0 (select (select |#memory_$Pointer$.offset| main_~n~0.base) (+ main_~n~0.offset 4))) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~n~0.base) main_~n~0.offset) 4))) (= 0 (select (select |#memory_$Pointer$.base| main_~n~0.base) (+ main_~n~0.offset 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~n~0.base) main_~n~0.offset) 4)) main_~n~0.offset) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset)) (= |main_~#list~0.offset| 0)))} is VALID [2018-11-23 12:52:03,602 INFO L273 TraceCheckUtils]: 8: Hoare triple {1491#(or (and (= |main_~#list~0.base| main_~n~0.base) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~n~0.offset) main_~n~0.offset) (= 0 main_~n~0.offset) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~n~0.offset 4)) main_~n~0.offset) (= 0 (select (select |#memory_$Pointer$.base| main_~n~0.base) (+ main_~n~0.offset 4))) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~n~0.offset)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| main_~n~0.base) (= 0 (select (select |#memory_$Pointer$.offset| main_~n~0.base) (+ main_~n~0.offset 4))) (= main_~n~0.offset (select (select |#memory_$Pointer$.offset| main_~n~0.base) main_~n~0.offset)) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~n~0.base) main_~n~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~n~0.base) main_~n~0.offset) 4)) main_~n~0.offset) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~n~0.offset)) (= |main_~#list~0.offset| 0)) (and (= 0 main_~n~0.offset) (= 0 (select (select |#memory_$Pointer$.offset| main_~n~0.base) (+ main_~n~0.offset 4))) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~n~0.base) main_~n~0.offset) 4))) (= 0 (select (select |#memory_$Pointer$.base| main_~n~0.base) (+ main_~n~0.offset 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~n~0.base) main_~n~0.offset) 4)) main_~n~0.offset) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset)) (= |main_~#list~0.offset| 0)))} assume 0 != #t~nondet18 % 256;havoc #t~nondet18;~x~0.base, ~x~0.offset := ~n~0.base, ~n~0.offset; {1495#(or (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~x~0.offset 4))) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~x~0.offset)) (= |main_~#list~0.offset| 0)))} is VALID [2018-11-23 12:52:03,603 INFO L273 TraceCheckUtils]: 9: Hoare triple {1495#(or (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~x~0.offset 4))) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~x~0.offset)) (= |main_~#list~0.offset| 0)))} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {1495#(or (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~x~0.offset 4))) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~x~0.offset)) (= |main_~#list~0.offset| 0)))} is VALID [2018-11-23 12:52:03,615 INFO L256 TraceCheckUtils]: 10: Hoare triple {1495#(or (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~x~0.offset 4))) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~x~0.offset)) (= |main_~#list~0.offset| 0)))} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {1502#(or (exists ((v_main_~x~0.offset_BEFORE_CALL_1 Int) (v_prenex_1 Int)) (and (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (+ v_main_~x~0.offset_BEFORE_CALL_1 4)) 0) (= v_prenex_1 (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (= (select (select |#memory_$Pointer$.offset| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.base| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_2| Int)) (and (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 4) 0) (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) 0) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) |v_main_~#list~0.base_BEFORE_CALL_2|) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0)) 4)))) (exists ((v_main_~x~0.base_BEFORE_CALL_2 Int)) (and (= (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 4) 0) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 4)) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4)) 0) (= v_main_~x~0.base_BEFORE_CALL_2 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4))))))} is VALID [2018-11-23 12:52:03,616 INFO L273 TraceCheckUtils]: 11: Hoare triple {1502#(or (exists ((v_main_~x~0.offset_BEFORE_CALL_1 Int) (v_prenex_1 Int)) (and (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (+ v_main_~x~0.offset_BEFORE_CALL_1 4)) 0) (= v_prenex_1 (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (= (select (select |#memory_$Pointer$.offset| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.base| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_2| Int)) (and (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 4) 0) (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) 0) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) |v_main_~#list~0.base_BEFORE_CALL_2|) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0)) 4)))) (exists ((v_main_~x~0.base_BEFORE_CALL_2 Int)) (and (= (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 4) 0) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 4)) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4)) 0) (= v_main_~x~0.base_BEFORE_CALL_2 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4))))))} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {1502#(or (exists ((v_main_~x~0.offset_BEFORE_CALL_1 Int) (v_prenex_1 Int)) (and (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (+ v_main_~x~0.offset_BEFORE_CALL_1 4)) 0) (= v_prenex_1 (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (= (select (select |#memory_$Pointer$.offset| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.base| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_2| Int)) (and (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 4) 0) (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) 0) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) |v_main_~#list~0.base_BEFORE_CALL_2|) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0)) 4)))) (exists ((v_main_~x~0.base_BEFORE_CALL_2 Int)) (and (= (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 4) 0) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 4)) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4)) 0) (= v_main_~x~0.base_BEFORE_CALL_2 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4))))))} is VALID [2018-11-23 12:52:03,616 INFO L273 TraceCheckUtils]: 12: Hoare triple {1502#(or (exists ((v_main_~x~0.offset_BEFORE_CALL_1 Int) (v_prenex_1 Int)) (and (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (+ v_main_~x~0.offset_BEFORE_CALL_1 4)) 0) (= v_prenex_1 (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (= (select (select |#memory_$Pointer$.offset| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.base| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_2| Int)) (and (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 4) 0) (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) 0) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) |v_main_~#list~0.base_BEFORE_CALL_2|) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0)) 4)))) (exists ((v_main_~x~0.base_BEFORE_CALL_2 Int)) (and (= (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 4) 0) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 4)) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4)) 0) (= v_main_~x~0.base_BEFORE_CALL_2 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4))))))} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {1502#(or (exists ((v_main_~x~0.offset_BEFORE_CALL_1 Int) (v_prenex_1 Int)) (and (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (+ v_main_~x~0.offset_BEFORE_CALL_1 4)) 0) (= v_prenex_1 (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (= (select (select |#memory_$Pointer$.offset| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.base| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_2| Int)) (and (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 4) 0) (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) 0) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) |v_main_~#list~0.base_BEFORE_CALL_2|) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0)) 4)))) (exists ((v_main_~x~0.base_BEFORE_CALL_2 Int)) (and (= (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 4) 0) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 4)) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4)) 0) (= v_main_~x~0.base_BEFORE_CALL_2 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4))))))} is VALID [2018-11-23 12:52:03,617 INFO L273 TraceCheckUtils]: 13: Hoare triple {1502#(or (exists ((v_main_~x~0.offset_BEFORE_CALL_1 Int) (v_prenex_1 Int)) (and (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (+ v_main_~x~0.offset_BEFORE_CALL_1 4)) 0) (= v_prenex_1 (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (= (select (select |#memory_$Pointer$.offset| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.base| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_2| Int)) (and (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 4) 0) (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) 0) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) |v_main_~#list~0.base_BEFORE_CALL_2|) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0)) 4)))) (exists ((v_main_~x~0.base_BEFORE_CALL_2 Int)) (and (= (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 4) 0) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 4)) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4)) 0) (= v_main_~x~0.base_BEFORE_CALL_2 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4))))))} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset;#res := 0; {1502#(or (exists ((v_main_~x~0.offset_BEFORE_CALL_1 Int) (v_prenex_1 Int)) (and (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (+ v_main_~x~0.offset_BEFORE_CALL_1 4)) 0) (= v_prenex_1 (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (= (select (select |#memory_$Pointer$.offset| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.base| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_2| Int)) (and (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 4) 0) (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) 0) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) |v_main_~#list~0.base_BEFORE_CALL_2|) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0)) 4)))) (exists ((v_main_~x~0.base_BEFORE_CALL_2 Int)) (and (= (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 4) 0) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 4)) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4)) 0) (= v_main_~x~0.base_BEFORE_CALL_2 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4))))))} is VALID [2018-11-23 12:52:03,617 INFO L273 TraceCheckUtils]: 14: Hoare triple {1502#(or (exists ((v_main_~x~0.offset_BEFORE_CALL_1 Int) (v_prenex_1 Int)) (and (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (+ v_main_~x~0.offset_BEFORE_CALL_1 4)) 0) (= v_prenex_1 (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (= (select (select |#memory_$Pointer$.offset| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.base| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_2| Int)) (and (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 4) 0) (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) 0) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) |v_main_~#list~0.base_BEFORE_CALL_2|) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0)) 4)))) (exists ((v_main_~x~0.base_BEFORE_CALL_2 Int)) (and (= (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 4) 0) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 4)) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4)) 0) (= v_main_~x~0.base_BEFORE_CALL_2 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4))))))} assume true; {1502#(or (exists ((v_main_~x~0.offset_BEFORE_CALL_1 Int) (v_prenex_1 Int)) (and (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (+ v_main_~x~0.offset_BEFORE_CALL_1 4)) 0) (= v_prenex_1 (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (= (select (select |#memory_$Pointer$.offset| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.base| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_2| Int)) (and (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 4) 0) (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) 0) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) |v_main_~#list~0.base_BEFORE_CALL_2|) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0)) 4)))) (exists ((v_main_~x~0.base_BEFORE_CALL_2 Int)) (and (= (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 4) 0) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 4)) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4)) 0) (= v_main_~x~0.base_BEFORE_CALL_2 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4))))))} is VALID [2018-11-23 12:52:03,618 INFO L268 TraceCheckUtils]: 15: Hoare quadruple {1502#(or (exists ((v_main_~x~0.offset_BEFORE_CALL_1 Int) (v_prenex_1 Int)) (and (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (+ v_main_~x~0.offset_BEFORE_CALL_1 4)) 0) (= v_prenex_1 (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) (= (select (select |#memory_$Pointer$.offset| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) v_main_~x~0.offset_BEFORE_CALL_1) (= (select (select |#memory_$Pointer$.base| v_prenex_1) (+ (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)) v_main_~x~0.offset_BEFORE_CALL_1) 4)) (select (select |#memory_$Pointer$.base| v_prenex_1) v_main_~x~0.offset_BEFORE_CALL_1)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_2| Int)) (and (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 4) 0) (= (select (select |#memory_$Pointer$.offset| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) 0) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0) |v_main_~#list~0.base_BEFORE_CALL_2|) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_2|) 0)) 4)))) (exists ((v_main_~x~0.base_BEFORE_CALL_2 Int)) (and (= (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 4) 0) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 4)) (= (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4)) 0) (= v_main_~x~0.base_BEFORE_CALL_2 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_2) 0)) (+ (select (select |#memory_$Pointer$.offset| v_main_~x~0.base_BEFORE_CALL_2) 0) 4))))))} {1495#(or (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~x~0.offset 4))) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~x~0.offset)) (= |main_~#list~0.offset| 0)))} #106#return; {1495#(or (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~x~0.offset 4))) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~x~0.offset)) (= |main_~#list~0.offset| 0)))} is VALID [2018-11-23 12:52:03,619 INFO L273 TraceCheckUtils]: 16: Hoare triple {1495#(or (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~x~0.offset 4))) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~x~0.offset)) (= |main_~#list~0.offset| 0)))} assume 0 != #t~ret19 % 256;havoc #t~ret19; {1495#(or (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~x~0.offset 4))) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~x~0.offset)) (= |main_~#list~0.offset| 0)))} is VALID [2018-11-23 12:52:03,621 INFO L256 TraceCheckUtils]: 17: Hoare triple {1495#(or (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~x~0.offset 4))) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~x~0.offset)) (= |main_~#list~0.offset| 0)))} call remove(~x~0.base, ~x~0.offset); {1524#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 12:52:03,622 INFO L273 TraceCheckUtils]: 18: Hoare triple {1524#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {1528#(and (= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) |remove_#t~mem3.base|) (= |remove_#t~mem3.offset| (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4))))} is VALID [2018-11-23 12:52:03,623 INFO L273 TraceCheckUtils]: 19: Hoare triple {1528#(and (= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) |remove_#t~mem3.base|) (= |remove_#t~mem3.offset| (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4))))} assume #t~mem3.base != 0 || #t~mem3.offset != 0;havoc #t~mem3.base, #t~mem3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call #t~mem5.base, #t~mem5.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(#t~mem5.base, #t~mem5.offset, #t~mem4.base, #t~mem4.offset, 4);havoc #t~mem5.base, #t~mem5.offset;havoc #t~mem4.base, #t~mem4.offset; {1532#(or (not (= (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)) (not (= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)))} is VALID [2018-11-23 12:52:03,624 INFO L273 TraceCheckUtils]: 20: Hoare triple {1532#(or (not (= (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)) (not (= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)))} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {1532#(or (not (= (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)) (not (= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)))} is VALID [2018-11-23 12:52:03,624 INFO L273 TraceCheckUtils]: 21: Hoare triple {1532#(or (not (= (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)) (not (= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)))} assume #t~mem6.base != 0 || #t~mem6.offset != 0;havoc #t~mem6.base, #t~mem6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~x.base, ~x.offset, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(#t~mem8.base, #t~mem8.offset, #t~mem7.base, 4 + #t~mem7.offset, 4);havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8.base, #t~mem8.offset; {1532#(or (not (= (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)) (not (= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)))} is VALID [2018-11-23 12:52:03,625 INFO L273 TraceCheckUtils]: 22: Hoare triple {1532#(or (not (= (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)) (not (= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)))} assume true; {1532#(or (not (= (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)) (not (= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)))} is VALID [2018-11-23 12:52:03,627 INFO L268 TraceCheckUtils]: 23: Hoare quadruple {1532#(or (not (= (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)) (not (= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) (+ |remove_#in~x.offset| 4)) 0)))} {1495#(or (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4))) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.offset| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ (select (select |#memory_$Pointer$.offset| main_~x~0.base) main_~x~0.offset) 4)) main_~x~0.base) (= |main_~#list~0.offset| 0)) (and (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (+ main_~x~0.offset 4))) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= main_~x~0.offset (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) main_~x~0.offset)) (= |main_~#list~0.offset| 0)))} #108#return; {1545#(and (not (= 0 main_~x~0.base)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:52:03,628 INFO L273 TraceCheckUtils]: 24: Hoare triple {1545#(and (not (= 0 main_~x~0.base)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0))} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {1549#|main_#t~short21|} is VALID [2018-11-23 12:52:03,629 INFO L273 TraceCheckUtils]: 25: Hoare triple {1549#|main_#t~short21|} assume !#t~short21; {1462#false} is VALID [2018-11-23 12:52:03,629 INFO L256 TraceCheckUtils]: 26: Hoare triple {1462#false} call #t~ret20 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {1462#false} is VALID [2018-11-23 12:52:03,629 INFO L273 TraceCheckUtils]: 27: Hoare triple {1462#false} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {1462#false} is VALID [2018-11-23 12:52:03,630 INFO L273 TraceCheckUtils]: 28: Hoare triple {1462#false} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {1462#false} is VALID [2018-11-23 12:52:03,630 INFO L273 TraceCheckUtils]: 29: Hoare triple {1462#false} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset;#res := 0; {1462#false} is VALID [2018-11-23 12:52:03,630 INFO L273 TraceCheckUtils]: 30: Hoare triple {1462#false} assume true; {1462#false} is VALID [2018-11-23 12:52:03,631 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1462#false} {1462#false} #110#return; {1462#false} is VALID [2018-11-23 12:52:03,631 INFO L273 TraceCheckUtils]: 32: Hoare triple {1462#false} #t~short21 := 0 == #t~ret20 % 256; {1462#false} is VALID [2018-11-23 12:52:03,631 INFO L256 TraceCheckUtils]: 33: Hoare triple {1462#false} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {1462#false} is VALID [2018-11-23 12:52:03,631 INFO L273 TraceCheckUtils]: 34: Hoare triple {1462#false} ~cond := #in~cond; {1462#false} is VALID [2018-11-23 12:52:03,632 INFO L273 TraceCheckUtils]: 35: Hoare triple {1462#false} assume 0 == ~cond; {1462#false} is VALID [2018-11-23 12:52:03,632 INFO L273 TraceCheckUtils]: 36: Hoare triple {1462#false} assume !false; {1462#false} is VALID [2018-11-23 12:52:03,646 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:52:03,674 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:52:03,674 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 12] total 14 [2018-11-23 12:52:03,675 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 37 [2018-11-23 12:52:03,675 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:52:03,675 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states. [2018-11-23 12:52:03,804 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:52:03,805 INFO L459 AbstractCegarLoop]: Interpolant automaton has 14 states [2018-11-23 12:52:03,805 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2018-11-23 12:52:03,805 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=154, Unknown=0, NotChecked=0, Total=182 [2018-11-23 12:52:03,805 INFO L87 Difference]: Start difference. First operand 65 states and 88 transitions. Second operand 14 states. [2018-11-23 12:52:08,433 WARN L180 SmtUtils]: Spent 150.00 ms on a formula simplification. DAG size of input: 48 DAG size of output: 48 [2018-11-23 12:52:08,936 WARN L180 SmtUtils]: Spent 286.00 ms on a formula simplification. DAG size of input: 72 DAG size of output: 72 [2018-11-23 12:52:09,408 WARN L180 SmtUtils]: Spent 128.00 ms on a formula simplification. DAG size of input: 44 DAG size of output: 44 [2018-11-23 12:52:10,209 WARN L180 SmtUtils]: Spent 142.00 ms on a formula simplification. DAG size of input: 42 DAG size of output: 42 [2018-11-23 12:52:16,523 WARN L180 SmtUtils]: Spent 274.00 ms on a formula simplification. DAG size of input: 74 DAG size of output: 74 [2018-11-23 12:52:16,783 WARN L180 SmtUtils]: Spent 154.00 ms on a formula simplification. DAG size of input: 50 DAG size of output: 50 [2018-11-23 12:52:30,461 WARN L180 SmtUtils]: Spent 155.00 ms on a formula simplification. DAG size of input: 49 DAG size of output: 49 [2018-11-23 12:52:51,223 WARN L180 SmtUtils]: Spent 152.00 ms on a formula simplification. DAG size of input: 44 DAG size of output: 44 [2018-11-23 12:52:52,001 WARN L180 SmtUtils]: Spent 169.00 ms on a formula simplification. DAG size of input: 46 DAG size of output: 46 [2018-11-23 12:52:53,975 WARN L180 SmtUtils]: Spent 138.00 ms on a formula simplification. DAG size of input: 43 DAG size of output: 43 [2018-11-23 12:52:54,480 WARN L180 SmtUtils]: Spent 284.00 ms on a formula simplification. DAG size of input: 73 DAG size of output: 73 [2018-11-23 12:52:54,723 WARN L180 SmtUtils]: Spent 138.00 ms on a formula simplification. DAG size of input: 45 DAG size of output: 45 [2018-11-23 12:53:00,544 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:00,544 INFO L93 Difference]: Finished difference Result 262 states and 408 transitions. [2018-11-23 12:53:00,544 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 35 states. [2018-11-23 12:53:00,545 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 37 [2018-11-23 12:53:00,545 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:53:00,545 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2018-11-23 12:53:00,557 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 35 states to 35 states and 360 transitions. [2018-11-23 12:53:00,558 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2018-11-23 12:53:00,569 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 35 states to 35 states and 360 transitions. [2018-11-23 12:53:00,570 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 35 states and 360 transitions. [2018-11-23 12:53:01,918 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 360 edges. 360 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:01,927 INFO L225 Difference]: With dead ends: 262 [2018-11-23 12:53:01,928 INFO L226 Difference]: Without dead ends: 205 [2018-11-23 12:53:01,930 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 79 GetRequests, 36 SyntacticMatches, 1 SemanticMatches, 42 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 406 ImplicationChecksByTransitivity, 4.8s TimeCoverageRelationStatistics Valid=306, Invalid=1586, Unknown=0, NotChecked=0, Total=1892 [2018-11-23 12:53:01,931 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 205 states. [2018-11-23 12:53:02,542 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 205 to 136. [2018-11-23 12:53:02,542 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:53:02,542 INFO L82 GeneralOperation]: Start isEquivalent. First operand 205 states. Second operand 136 states. [2018-11-23 12:53:02,542 INFO L74 IsIncluded]: Start isIncluded. First operand 205 states. Second operand 136 states. [2018-11-23 12:53:02,543 INFO L87 Difference]: Start difference. First operand 205 states. Second operand 136 states. [2018-11-23 12:53:02,558 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:02,558 INFO L93 Difference]: Finished difference Result 205 states and 328 transitions. [2018-11-23 12:53:02,558 INFO L276 IsEmpty]: Start isEmpty. Operand 205 states and 328 transitions. [2018-11-23 12:53:02,560 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:02,561 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:02,561 INFO L74 IsIncluded]: Start isIncluded. First operand 136 states. Second operand 205 states. [2018-11-23 12:53:02,561 INFO L87 Difference]: Start difference. First operand 136 states. Second operand 205 states. [2018-11-23 12:53:02,576 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:02,576 INFO L93 Difference]: Finished difference Result 205 states and 328 transitions. [2018-11-23 12:53:02,576 INFO L276 IsEmpty]: Start isEmpty. Operand 205 states and 328 transitions. [2018-11-23 12:53:02,578 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:02,578 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:02,578 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:53:02,579 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:53:02,579 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 136 states. [2018-11-23 12:53:02,586 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 136 states to 136 states and 198 transitions. [2018-11-23 12:53:02,586 INFO L78 Accepts]: Start accepts. Automaton has 136 states and 198 transitions. Word has length 37 [2018-11-23 12:53:02,586 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:53:02,586 INFO L480 AbstractCegarLoop]: Abstraction has 136 states and 198 transitions. [2018-11-23 12:53:02,586 INFO L481 AbstractCegarLoop]: Interpolant automaton has 14 states. [2018-11-23 12:53:02,587 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 198 transitions. [2018-11-23 12:53:02,588 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 45 [2018-11-23 12:53:02,588 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:53:02,588 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, 1, 1, 1, 1] [2018-11-23 12:53:02,588 INFO L423 AbstractCegarLoop]: === Iteration 6 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:53:02,589 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:53:02,589 INFO L82 PathProgramCache]: Analyzing trace with hash 1058687156, now seen corresponding path program 1 times [2018-11-23 12:53:02,589 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:53:02,589 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:53:02,591 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:02,591 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:02,591 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:02,624 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:03,183 INFO L256 TraceCheckUtils]: 0: Hoare triple {2610#true} call ULTIMATE.init(); {2610#true} is VALID [2018-11-23 12:53:03,184 INFO L273 TraceCheckUtils]: 1: Hoare triple {2610#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {2610#true} is VALID [2018-11-23 12:53:03,184 INFO L273 TraceCheckUtils]: 2: Hoare triple {2610#true} assume true; {2610#true} is VALID [2018-11-23 12:53:03,184 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2610#true} {2610#true} #102#return; {2610#true} is VALID [2018-11-23 12:53:03,184 INFO L256 TraceCheckUtils]: 4: Hoare triple {2610#true} call #t~ret23 := main(); {2610#true} is VALID [2018-11-23 12:53:03,185 INFO L273 TraceCheckUtils]: 5: Hoare triple {2610#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {2612#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|) |main_~#list~0.base|)) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (= 0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:03,186 INFO L273 TraceCheckUtils]: 6: Hoare triple {2612#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|) |main_~#list~0.base|)) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (= 0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {2612#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|) |main_~#list~0.base|)) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (= 0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:03,186 INFO L256 TraceCheckUtils]: 7: Hoare triple {2612#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|) |main_~#list~0.base|)) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (= 0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {2610#true} is VALID [2018-11-23 12:53:03,186 INFO L273 TraceCheckUtils]: 8: Hoare triple {2610#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {2610#true} is VALID [2018-11-23 12:53:03,186 INFO L273 TraceCheckUtils]: 9: Hoare triple {2610#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {2610#true} is VALID [2018-11-23 12:53:03,187 INFO L273 TraceCheckUtils]: 10: Hoare triple {2610#true} assume true; {2610#true} is VALID [2018-11-23 12:53:03,188 INFO L268 TraceCheckUtils]: 11: Hoare quadruple {2610#true} {2612#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|) |main_~#list~0.base|)) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (= 0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} #106#return; {2612#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|) |main_~#list~0.base|)) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (= 0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:03,189 INFO L273 TraceCheckUtils]: 12: Hoare triple {2612#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|) |main_~#list~0.base|)) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (= 0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} assume 0 != #t~ret19 % 256;havoc #t~ret19; {2612#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|) |main_~#list~0.base|)) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (= 0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:03,190 INFO L256 TraceCheckUtils]: 13: Hoare triple {2612#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|) |main_~#list~0.base|)) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (= 0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} call remove(~x~0.base, ~x~0.offset); {2613#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 12:53:03,191 INFO L273 TraceCheckUtils]: 14: Hoare triple {2613#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {2614#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 12:53:03,193 INFO L273 TraceCheckUtils]: 15: Hoare triple {2614#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume #t~mem3.base != 0 || #t~mem3.offset != 0;havoc #t~mem3.base, #t~mem3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call #t~mem5.base, #t~mem5.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(#t~mem5.base, #t~mem5.offset, #t~mem4.base, #t~mem4.offset, 4);havoc #t~mem5.base, #t~mem5.offset;havoc #t~mem4.base, #t~mem4.offset; {2615#(and (or (and (= (select (select |#memory_$Pointer$.offset| remove_~x.base) remove_~x.offset) (select (select |old(#memory_$Pointer$.offset)| remove_~x.base) remove_~x.offset)) (= (select (select |#memory_$Pointer$.base| remove_~x.base) remove_~x.offset) (select (select |old(#memory_$Pointer$.base)| remove_~x.base) remove_~x.offset))) (= remove_~x.base (select (select |#memory_$Pointer$.base| remove_~x.base) remove_~x.offset))) (= remove_~x.base |remove_#in~x.base|) (or (not (= remove_~x.base (select (select |#memory_$Pointer$.base| remove_~x.base) remove_~x.offset))) (= |remove_#in~x.base| (select (select |old(#memory_$Pointer$.base)| remove_~x.base) remove_~x.offset))) (= remove_~x.offset |remove_#in~x.offset|))} is VALID [2018-11-23 12:53:03,194 INFO L273 TraceCheckUtils]: 16: Hoare triple {2615#(and (or (and (= (select (select |#memory_$Pointer$.offset| remove_~x.base) remove_~x.offset) (select (select |old(#memory_$Pointer$.offset)| remove_~x.base) remove_~x.offset)) (= (select (select |#memory_$Pointer$.base| remove_~x.base) remove_~x.offset) (select (select |old(#memory_$Pointer$.base)| remove_~x.base) remove_~x.offset))) (= remove_~x.base (select (select |#memory_$Pointer$.base| remove_~x.base) remove_~x.offset))) (= remove_~x.base |remove_#in~x.base|) (or (not (= remove_~x.base (select (select |#memory_$Pointer$.base| remove_~x.base) remove_~x.offset))) (= |remove_#in~x.base| (select (select |old(#memory_$Pointer$.base)| remove_~x.base) remove_~x.offset))) (= remove_~x.offset |remove_#in~x.offset|))} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {2616#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (or (and (= |remove_#in~x.base| (select (select |old(#memory_$Pointer$.base)| remove_~x.base) remove_~x.offset)) (= remove_~x.base (select (select |#memory_$Pointer$.base| remove_~x.base) remove_~x.offset))) (and (= |remove_#t~mem6.offset| (select (select |old(#memory_$Pointer$.offset)| remove_~x.base) remove_~x.offset)) (= |remove_#t~mem6.base| (select (select |old(#memory_$Pointer$.base)| remove_~x.base) remove_~x.offset)))))} is VALID [2018-11-23 12:53:03,196 INFO L273 TraceCheckUtils]: 17: Hoare triple {2616#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (or (and (= |remove_#in~x.base| (select (select |old(#memory_$Pointer$.base)| remove_~x.base) remove_~x.offset)) (= remove_~x.base (select (select |#memory_$Pointer$.base| remove_~x.base) remove_~x.offset))) (and (= |remove_#t~mem6.offset| (select (select |old(#memory_$Pointer$.offset)| remove_~x.base) remove_~x.offset)) (= |remove_#t~mem6.base| (select (select |old(#memory_$Pointer$.base)| remove_~x.base) remove_~x.offset)))))} assume #t~mem6.base != 0 || #t~mem6.offset != 0;havoc #t~mem6.base, #t~mem6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~x.base, ~x.offset, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(#t~mem8.base, #t~mem8.offset, #t~mem7.base, 4 + #t~mem7.offset, 4);havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8.base, #t~mem8.offset; {2617#(or (= |remove_#in~x.base| (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|)) (not (= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))) (not (= 0 (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) |remove_#in~x.offset|))))} is VALID [2018-11-23 12:53:03,197 INFO L273 TraceCheckUtils]: 18: Hoare triple {2617#(or (= |remove_#in~x.base| (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|)) (not (= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))) (not (= 0 (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) |remove_#in~x.offset|))))} assume true; {2617#(or (= |remove_#in~x.base| (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|)) (not (= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))) (not (= 0 (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) |remove_#in~x.offset|))))} is VALID [2018-11-23 12:53:03,198 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {2617#(or (= |remove_#in~x.base| (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|)) (not (= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))) (not (= 0 (select (select |old(#memory_$Pointer$.offset)| |remove_#in~x.base|) |remove_#in~x.offset|))))} {2612#(and (not (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|) |main_~#list~0.base|)) (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (= 0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} #108#return; {2611#false} is VALID [2018-11-23 12:53:03,198 INFO L273 TraceCheckUtils]: 20: Hoare triple {2611#false} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {2611#false} is VALID [2018-11-23 12:53:03,199 INFO L273 TraceCheckUtils]: 21: Hoare triple {2611#false} assume #t~short21; {2611#false} is VALID [2018-11-23 12:53:03,199 INFO L256 TraceCheckUtils]: 22: Hoare triple {2611#false} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {2610#true} is VALID [2018-11-23 12:53:03,199 INFO L273 TraceCheckUtils]: 23: Hoare triple {2610#true} ~cond := #in~cond; {2610#true} is VALID [2018-11-23 12:53:03,199 INFO L273 TraceCheckUtils]: 24: Hoare triple {2610#true} assume !(0 == ~cond); {2610#true} is VALID [2018-11-23 12:53:03,200 INFO L273 TraceCheckUtils]: 25: Hoare triple {2610#true} assume true; {2610#true} is VALID [2018-11-23 12:53:03,200 INFO L268 TraceCheckUtils]: 26: Hoare quadruple {2610#true} {2611#false} #112#return; {2611#false} is VALID [2018-11-23 12:53:03,201 INFO L273 TraceCheckUtils]: 27: Hoare triple {2611#false} havoc #t~ret20;havoc #t~short21; {2611#false} is VALID [2018-11-23 12:53:03,201 INFO L256 TraceCheckUtils]: 28: Hoare triple {2611#false} call re_insert(~x~0.base, ~x~0.offset); {2613#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 12:53:03,206 INFO L273 TraceCheckUtils]: 29: Hoare triple {2613#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {2618#(and (= (select |#memory_$Pointer$.offset| re_insert_~x.base) (select |old(#memory_$Pointer$.offset)| re_insert_~x.base)) (= (select |old(#memory_$Pointer$.base)| re_insert_~x.base) (select |#memory_$Pointer$.base| re_insert_~x.base)) (= re_insert_~x.base |re_insert_#in~x.base|))} is VALID [2018-11-23 12:53:03,206 INFO L273 TraceCheckUtils]: 30: Hoare triple {2618#(and (= (select |#memory_$Pointer$.offset| re_insert_~x.base) (select |old(#memory_$Pointer$.offset)| re_insert_~x.base)) (= (select |old(#memory_$Pointer$.base)| re_insert_~x.base) (select |#memory_$Pointer$.base| re_insert_~x.base)) (= re_insert_~x.base |re_insert_#in~x.base|))} assume #t~mem9.base != 0 || #t~mem9.offset != 0;havoc #t~mem9.base, #t~mem9.offset;call #t~mem10.base, #t~mem10.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(~x.base, ~x.offset, #t~mem10.base, #t~mem10.offset, 4);havoc #t~mem10.base, #t~mem10.offset; {2619#(= re_insert_~x.base |re_insert_#in~x.base|)} is VALID [2018-11-23 12:53:03,207 INFO L273 TraceCheckUtils]: 31: Hoare triple {2619#(= re_insert_~x.base |re_insert_#in~x.base|)} call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~x.base, ~x.offset, 4); {2619#(= re_insert_~x.base |re_insert_#in~x.base|)} is VALID [2018-11-23 12:53:03,207 INFO L273 TraceCheckUtils]: 32: Hoare triple {2619#(= re_insert_~x.base |re_insert_#in~x.base|)} assume #t~mem11.base != 0 || #t~mem11.offset != 0;havoc #t~mem11.base, #t~mem11.offset;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(~x.base, ~x.offset, #t~mem12.base, 4 + #t~mem12.offset, 4);havoc #t~mem12.base, #t~mem12.offset; {2610#true} is VALID [2018-11-23 12:53:03,207 INFO L273 TraceCheckUtils]: 33: Hoare triple {2610#true} assume true; {2610#true} is VALID [2018-11-23 12:53:03,207 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {2610#true} {2611#false} #114#return; {2611#false} is VALID [2018-11-23 12:53:03,207 INFO L256 TraceCheckUtils]: 35: Hoare triple {2611#false} call #t~ret22 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {2610#true} is VALID [2018-11-23 12:53:03,208 INFO L273 TraceCheckUtils]: 36: Hoare triple {2610#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {2610#true} is VALID [2018-11-23 12:53:03,208 INFO L273 TraceCheckUtils]: 37: Hoare triple {2610#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {2610#true} is VALID [2018-11-23 12:53:03,208 INFO L273 TraceCheckUtils]: 38: Hoare triple {2610#true} assume true; {2610#true} is VALID [2018-11-23 12:53:03,208 INFO L268 TraceCheckUtils]: 39: Hoare quadruple {2610#true} {2611#false} #116#return; {2611#false} is VALID [2018-11-23 12:53:03,208 INFO L256 TraceCheckUtils]: 40: Hoare triple {2611#false} call __VERIFIER_assert(#t~ret22 % 256); {2611#false} is VALID [2018-11-23 12:53:03,209 INFO L273 TraceCheckUtils]: 41: Hoare triple {2611#false} ~cond := #in~cond; {2611#false} is VALID [2018-11-23 12:53:03,209 INFO L273 TraceCheckUtils]: 42: Hoare triple {2611#false} assume 0 == ~cond; {2611#false} is VALID [2018-11-23 12:53:03,209 INFO L273 TraceCheckUtils]: 43: Hoare triple {2611#false} assume !false; {2611#false} is VALID [2018-11-23 12:53:03,213 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 12:53:03,214 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:53:03,214 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2018-11-23 12:53:03,214 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 44 [2018-11-23 12:53:03,214 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:53:03,215 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2018-11-23 12:53:03,265 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:03,265 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2018-11-23 12:53:03,265 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2018-11-23 12:53:03,266 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=20, Invalid=70, Unknown=0, NotChecked=0, Total=90 [2018-11-23 12:53:03,266 INFO L87 Difference]: Start difference. First operand 136 states and 198 transitions. Second operand 10 states. [2018-11-23 12:53:06,094 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:06,094 INFO L93 Difference]: Finished difference Result 183 states and 261 transitions. [2018-11-23 12:53:06,094 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-23 12:53:06,094 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 44 [2018-11-23 12:53:06,095 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:53:06,095 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2018-11-23 12:53:06,098 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 124 transitions. [2018-11-23 12:53:06,098 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2018-11-23 12:53:06,101 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 124 transitions. [2018-11-23 12:53:06,101 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 124 transitions. [2018-11-23 12:53:06,401 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 124 edges. 124 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:06,406 INFO L225 Difference]: With dead ends: 183 [2018-11-23 12:53:06,407 INFO L226 Difference]: Without dead ends: 145 [2018-11-23 12:53:06,408 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 5 SyntacticMatches, 2 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=36, Invalid=120, Unknown=0, NotChecked=0, Total=156 [2018-11-23 12:53:06,408 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 145 states. [2018-11-23 12:53:07,242 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 145 to 138. [2018-11-23 12:53:07,242 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:53:07,242 INFO L82 GeneralOperation]: Start isEquivalent. First operand 145 states. Second operand 138 states. [2018-11-23 12:53:07,243 INFO L74 IsIncluded]: Start isIncluded. First operand 145 states. Second operand 138 states. [2018-11-23 12:53:07,243 INFO L87 Difference]: Start difference. First operand 145 states. Second operand 138 states. [2018-11-23 12:53:07,251 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:07,251 INFO L93 Difference]: Finished difference Result 145 states and 214 transitions. [2018-11-23 12:53:07,251 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 214 transitions. [2018-11-23 12:53:07,253 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:07,253 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:07,253 INFO L74 IsIncluded]: Start isIncluded. First operand 138 states. Second operand 145 states. [2018-11-23 12:53:07,253 INFO L87 Difference]: Start difference. First operand 138 states. Second operand 145 states. [2018-11-23 12:53:07,262 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:07,262 INFO L93 Difference]: Finished difference Result 145 states and 214 transitions. [2018-11-23 12:53:07,262 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 214 transitions. [2018-11-23 12:53:07,263 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:07,263 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:07,264 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:53:07,264 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:53:07,264 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 138 states. [2018-11-23 12:53:07,271 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 138 states to 138 states and 201 transitions. [2018-11-23 12:53:07,271 INFO L78 Accepts]: Start accepts. Automaton has 138 states and 201 transitions. Word has length 44 [2018-11-23 12:53:07,271 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:53:07,271 INFO L480 AbstractCegarLoop]: Abstraction has 138 states and 201 transitions. [2018-11-23 12:53:07,272 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2018-11-23 12:53:07,272 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 201 transitions. [2018-11-23 12:53:07,273 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 45 [2018-11-23 12:53:07,273 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:53:07,273 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, 1, 1, 1, 1] [2018-11-23 12:53:07,274 INFO L423 AbstractCegarLoop]: === Iteration 7 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:53:07,274 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:53:07,274 INFO L82 PathProgramCache]: Analyzing trace with hash -1313052106, now seen corresponding path program 1 times [2018-11-23 12:53:07,274 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:53:07,274 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:53:07,276 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:07,276 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:07,276 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:07,297 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:07,436 INFO L256 TraceCheckUtils]: 0: Hoare triple {3345#true} call ULTIMATE.init(); {3345#true} is VALID [2018-11-23 12:53:07,436 INFO L273 TraceCheckUtils]: 1: Hoare triple {3345#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {3345#true} is VALID [2018-11-23 12:53:07,437 INFO L273 TraceCheckUtils]: 2: Hoare triple {3345#true} assume true; {3345#true} is VALID [2018-11-23 12:53:07,437 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3345#true} {3345#true} #102#return; {3345#true} is VALID [2018-11-23 12:53:07,437 INFO L256 TraceCheckUtils]: 4: Hoare triple {3345#true} call #t~ret23 := main(); {3345#true} is VALID [2018-11-23 12:53:07,438 INFO L273 TraceCheckUtils]: 5: Hoare triple {3345#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {3345#true} is VALID [2018-11-23 12:53:07,438 INFO L273 TraceCheckUtils]: 6: Hoare triple {3345#true} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {3345#true} is VALID [2018-11-23 12:53:07,438 INFO L256 TraceCheckUtils]: 7: Hoare triple {3345#true} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {3345#true} is VALID [2018-11-23 12:53:07,439 INFO L273 TraceCheckUtils]: 8: Hoare triple {3345#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {3345#true} is VALID [2018-11-23 12:53:07,439 INFO L273 TraceCheckUtils]: 9: Hoare triple {3345#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {3345#true} is VALID [2018-11-23 12:53:07,439 INFO L273 TraceCheckUtils]: 10: Hoare triple {3345#true} assume true; {3345#true} is VALID [2018-11-23 12:53:07,439 INFO L268 TraceCheckUtils]: 11: Hoare quadruple {3345#true} {3345#true} #106#return; {3345#true} is VALID [2018-11-23 12:53:07,440 INFO L273 TraceCheckUtils]: 12: Hoare triple {3345#true} assume 0 != #t~ret19 % 256;havoc #t~ret19; {3345#true} is VALID [2018-11-23 12:53:07,440 INFO L256 TraceCheckUtils]: 13: Hoare triple {3345#true} call remove(~x~0.base, ~x~0.offset); {3345#true} is VALID [2018-11-23 12:53:07,440 INFO L273 TraceCheckUtils]: 14: Hoare triple {3345#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {3345#true} is VALID [2018-11-23 12:53:07,440 INFO L273 TraceCheckUtils]: 15: Hoare triple {3345#true} assume #t~mem3.base != 0 || #t~mem3.offset != 0;havoc #t~mem3.base, #t~mem3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call #t~mem5.base, #t~mem5.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(#t~mem5.base, #t~mem5.offset, #t~mem4.base, #t~mem4.offset, 4);havoc #t~mem5.base, #t~mem5.offset;havoc #t~mem4.base, #t~mem4.offset; {3345#true} is VALID [2018-11-23 12:53:07,440 INFO L273 TraceCheckUtils]: 16: Hoare triple {3345#true} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {3345#true} is VALID [2018-11-23 12:53:07,441 INFO L273 TraceCheckUtils]: 17: Hoare triple {3345#true} assume !(#t~mem6.base != 0 || #t~mem6.offset != 0);havoc #t~mem6.base, #t~mem6.offset; {3345#true} is VALID [2018-11-23 12:53:07,441 INFO L273 TraceCheckUtils]: 18: Hoare triple {3345#true} assume true; {3345#true} is VALID [2018-11-23 12:53:07,441 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {3345#true} {3345#true} #108#return; {3345#true} is VALID [2018-11-23 12:53:07,441 INFO L273 TraceCheckUtils]: 20: Hoare triple {3345#true} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {3345#true} is VALID [2018-11-23 12:53:07,441 INFO L273 TraceCheckUtils]: 21: Hoare triple {3345#true} assume #t~short21; {3345#true} is VALID [2018-11-23 12:53:07,442 INFO L256 TraceCheckUtils]: 22: Hoare triple {3345#true} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {3345#true} is VALID [2018-11-23 12:53:07,442 INFO L273 TraceCheckUtils]: 23: Hoare triple {3345#true} ~cond := #in~cond; {3345#true} is VALID [2018-11-23 12:53:07,442 INFO L273 TraceCheckUtils]: 24: Hoare triple {3345#true} assume !(0 == ~cond); {3345#true} is VALID [2018-11-23 12:53:07,442 INFO L273 TraceCheckUtils]: 25: Hoare triple {3345#true} assume true; {3345#true} is VALID [2018-11-23 12:53:07,442 INFO L268 TraceCheckUtils]: 26: Hoare quadruple {3345#true} {3345#true} #112#return; {3345#true} is VALID [2018-11-23 12:53:07,443 INFO L273 TraceCheckUtils]: 27: Hoare triple {3345#true} havoc #t~ret20;havoc #t~short21; {3345#true} is VALID [2018-11-23 12:53:07,443 INFO L256 TraceCheckUtils]: 28: Hoare triple {3345#true} call re_insert(~x~0.base, ~x~0.offset); {3345#true} is VALID [2018-11-23 12:53:07,443 INFO L273 TraceCheckUtils]: 29: Hoare triple {3345#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {3345#true} is VALID [2018-11-23 12:53:07,443 INFO L273 TraceCheckUtils]: 30: Hoare triple {3345#true} assume #t~mem9.base != 0 || #t~mem9.offset != 0;havoc #t~mem9.base, #t~mem9.offset;call #t~mem10.base, #t~mem10.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(~x.base, ~x.offset, #t~mem10.base, #t~mem10.offset, 4);havoc #t~mem10.base, #t~mem10.offset; {3345#true} is VALID [2018-11-23 12:53:07,443 INFO L273 TraceCheckUtils]: 31: Hoare triple {3345#true} call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~x.base, ~x.offset, 4); {3345#true} is VALID [2018-11-23 12:53:07,443 INFO L273 TraceCheckUtils]: 32: Hoare triple {3345#true} assume #t~mem11.base != 0 || #t~mem11.offset != 0;havoc #t~mem11.base, #t~mem11.offset;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(~x.base, ~x.offset, #t~mem12.base, 4 + #t~mem12.offset, 4);havoc #t~mem12.base, #t~mem12.offset; {3345#true} is VALID [2018-11-23 12:53:07,444 INFO L273 TraceCheckUtils]: 33: Hoare triple {3345#true} assume true; {3345#true} is VALID [2018-11-23 12:53:07,444 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {3345#true} {3345#true} #114#return; {3345#true} is VALID [2018-11-23 12:53:07,444 INFO L256 TraceCheckUtils]: 35: Hoare triple {3345#true} call #t~ret22 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {3345#true} is VALID [2018-11-23 12:53:07,444 INFO L273 TraceCheckUtils]: 36: Hoare triple {3345#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {3345#true} is VALID [2018-11-23 12:53:07,445 INFO L273 TraceCheckUtils]: 37: Hoare triple {3345#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {3347#(= 1 |is_list_containing_x_#res|)} is VALID [2018-11-23 12:53:07,445 INFO L273 TraceCheckUtils]: 38: Hoare triple {3347#(= 1 |is_list_containing_x_#res|)} assume true; {3347#(= 1 |is_list_containing_x_#res|)} is VALID [2018-11-23 12:53:07,447 INFO L268 TraceCheckUtils]: 39: Hoare quadruple {3347#(= 1 |is_list_containing_x_#res|)} {3345#true} #116#return; {3348#(= |main_#t~ret22| 1)} is VALID [2018-11-23 12:53:07,447 INFO L256 TraceCheckUtils]: 40: Hoare triple {3348#(= |main_#t~ret22| 1)} call __VERIFIER_assert(#t~ret22 % 256); {3349#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2018-11-23 12:53:07,448 INFO L273 TraceCheckUtils]: 41: Hoare triple {3349#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3350#(<= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:53:07,448 INFO L273 TraceCheckUtils]: 42: Hoare triple {3350#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3346#false} is VALID [2018-11-23 12:53:07,449 INFO L273 TraceCheckUtils]: 43: Hoare triple {3346#false} assume !false; {3346#false} is VALID [2018-11-23 12:53:07,452 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2018-11-23 12:53:07,452 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:53:07,452 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2018-11-23 12:53:07,452 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 44 [2018-11-23 12:53:07,453 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:53:07,453 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2018-11-23 12:53:07,536 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:07,537 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 12:53:07,537 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 12:53:07,537 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:53:07,537 INFO L87 Difference]: Start difference. First operand 138 states and 201 transitions. Second operand 6 states. [2018-11-23 12:53:08,969 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:08,969 INFO L93 Difference]: Finished difference Result 150 states and 212 transitions. [2018-11-23 12:53:08,970 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 12:53:08,970 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 44 [2018-11-23 12:53:08,970 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:53:08,970 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 12:53:08,972 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 69 transitions. [2018-11-23 12:53:08,972 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 12:53:08,973 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 69 transitions. [2018-11-23 12:53:08,973 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 69 transitions. [2018-11-23 12:53:09,105 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 69 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:09,109 INFO L225 Difference]: With dead ends: 150 [2018-11-23 12:53:09,109 INFO L226 Difference]: Without dead ends: 138 [2018-11-23 12:53:09,110 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=13, Invalid=29, Unknown=0, NotChecked=0, Total=42 [2018-11-23 12:53:09,110 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 138 states. [2018-11-23 12:53:10,463 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 138 to 128. [2018-11-23 12:53:10,463 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:53:10,463 INFO L82 GeneralOperation]: Start isEquivalent. First operand 138 states. Second operand 128 states. [2018-11-23 12:53:10,464 INFO L74 IsIncluded]: Start isIncluded. First operand 138 states. Second operand 128 states. [2018-11-23 12:53:10,464 INFO L87 Difference]: Start difference. First operand 138 states. Second operand 128 states. [2018-11-23 12:53:10,472 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:10,472 INFO L93 Difference]: Finished difference Result 138 states and 199 transitions. [2018-11-23 12:53:10,472 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 199 transitions. [2018-11-23 12:53:10,473 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:10,473 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:10,473 INFO L74 IsIncluded]: Start isIncluded. First operand 128 states. Second operand 138 states. [2018-11-23 12:53:10,473 INFO L87 Difference]: Start difference. First operand 128 states. Second operand 138 states. [2018-11-23 12:53:10,481 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:10,481 INFO L93 Difference]: Finished difference Result 138 states and 199 transitions. [2018-11-23 12:53:10,481 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 199 transitions. [2018-11-23 12:53:10,482 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:10,482 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:10,482 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:53:10,483 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:53:10,483 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 128 states. [2018-11-23 12:53:10,489 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 128 states to 128 states and 179 transitions. [2018-11-23 12:53:10,489 INFO L78 Accepts]: Start accepts. Automaton has 128 states and 179 transitions. Word has length 44 [2018-11-23 12:53:10,489 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:53:10,489 INFO L480 AbstractCegarLoop]: Abstraction has 128 states and 179 transitions. [2018-11-23 12:53:10,490 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 12:53:10,490 INFO L276 IsEmpty]: Start isEmpty. Operand 128 states and 179 transitions. [2018-11-23 12:53:10,491 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2018-11-23 12:53:10,491 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:53:10,491 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:53:10,491 INFO L423 AbstractCegarLoop]: === Iteration 8 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:53:10,492 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:53:10,492 INFO L82 PathProgramCache]: Analyzing trace with hash 339865635, now seen corresponding path program 1 times [2018-11-23 12:53:10,492 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:53:10,492 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:53:10,493 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:10,493 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:10,493 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:10,514 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:10,956 INFO L256 TraceCheckUtils]: 0: Hoare triple {3999#true} call ULTIMATE.init(); {3999#true} is VALID [2018-11-23 12:53:10,956 INFO L273 TraceCheckUtils]: 1: Hoare triple {3999#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {3999#true} is VALID [2018-11-23 12:53:10,957 INFO L273 TraceCheckUtils]: 2: Hoare triple {3999#true} assume true; {3999#true} is VALID [2018-11-23 12:53:10,957 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3999#true} {3999#true} #102#return; {3999#true} is VALID [2018-11-23 12:53:10,957 INFO L256 TraceCheckUtils]: 4: Hoare triple {3999#true} call #t~ret23 := main(); {3999#true} is VALID [2018-11-23 12:53:10,957 INFO L273 TraceCheckUtils]: 5: Hoare triple {3999#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {3999#true} is VALID [2018-11-23 12:53:10,957 INFO L273 TraceCheckUtils]: 6: Hoare triple {3999#true} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {3999#true} is VALID [2018-11-23 12:53:10,957 INFO L273 TraceCheckUtils]: 7: Hoare triple {3999#true} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {3999#true} is VALID [2018-11-23 12:53:10,958 INFO L273 TraceCheckUtils]: 8: Hoare triple {3999#true} assume 0 != #t~nondet18 % 256;havoc #t~nondet18;~x~0.base, ~x~0.offset := ~n~0.base, ~n~0.offset; {3999#true} is VALID [2018-11-23 12:53:10,958 INFO L273 TraceCheckUtils]: 9: Hoare triple {3999#true} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {3999#true} is VALID [2018-11-23 12:53:10,958 INFO L256 TraceCheckUtils]: 10: Hoare triple {3999#true} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {3999#true} is VALID [2018-11-23 12:53:10,958 INFO L273 TraceCheckUtils]: 11: Hoare triple {3999#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {3999#true} is VALID [2018-11-23 12:53:10,958 INFO L273 TraceCheckUtils]: 12: Hoare triple {3999#true} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {3999#true} is VALID [2018-11-23 12:53:10,959 INFO L273 TraceCheckUtils]: 13: Hoare triple {3999#true} assume #t~mem13.base != 0 || #t~mem13.offset != 0;havoc #t~mem13.base, #t~mem13.offset;call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {3999#true} is VALID [2018-11-23 12:53:10,959 INFO L256 TraceCheckUtils]: 14: Hoare triple {3999#true} call #t~ret15 := is_list_containing_x(#t~mem14.base, #t~mem14.offset, ~x.base, ~x.offset); {3999#true} is VALID [2018-11-23 12:53:10,959 INFO L273 TraceCheckUtils]: 15: Hoare triple {3999#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {3999#true} is VALID [2018-11-23 12:53:10,959 INFO L273 TraceCheckUtils]: 16: Hoare triple {3999#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {3999#true} is VALID [2018-11-23 12:53:10,960 INFO L273 TraceCheckUtils]: 17: Hoare triple {3999#true} assume true; {3999#true} is VALID [2018-11-23 12:53:10,960 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {3999#true} {3999#true} #120#return; {3999#true} is VALID [2018-11-23 12:53:10,960 INFO L273 TraceCheckUtils]: 19: Hoare triple {3999#true} #res := #t~ret15;havoc #t~mem14.base, #t~mem14.offset;havoc #t~ret15; {3999#true} is VALID [2018-11-23 12:53:10,960 INFO L273 TraceCheckUtils]: 20: Hoare triple {3999#true} assume true; {3999#true} is VALID [2018-11-23 12:53:10,960 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {3999#true} {3999#true} #106#return; {3999#true} is VALID [2018-11-23 12:53:10,960 INFO L273 TraceCheckUtils]: 22: Hoare triple {3999#true} assume 0 != #t~ret19 % 256;havoc #t~ret19; {3999#true} is VALID [2018-11-23 12:53:10,961 INFO L256 TraceCheckUtils]: 23: Hoare triple {3999#true} call remove(~x~0.base, ~x~0.offset); {3999#true} is VALID [2018-11-23 12:53:10,961 INFO L273 TraceCheckUtils]: 24: Hoare triple {3999#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {3999#true} is VALID [2018-11-23 12:53:10,961 INFO L273 TraceCheckUtils]: 25: Hoare triple {3999#true} assume !(#t~mem3.base != 0 || #t~mem3.offset != 0);havoc #t~mem3.base, #t~mem3.offset; {3999#true} is VALID [2018-11-23 12:53:10,961 INFO L273 TraceCheckUtils]: 26: Hoare triple {3999#true} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {3999#true} is VALID [2018-11-23 12:53:10,961 INFO L273 TraceCheckUtils]: 27: Hoare triple {3999#true} assume #t~mem6.base != 0 || #t~mem6.offset != 0;havoc #t~mem6.base, #t~mem6.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~x.base, ~x.offset, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(#t~mem8.base, #t~mem8.offset, #t~mem7.base, 4 + #t~mem7.offset, 4);havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8.base, #t~mem8.offset; {3999#true} is VALID [2018-11-23 12:53:10,961 INFO L273 TraceCheckUtils]: 28: Hoare triple {3999#true} assume true; {3999#true} is VALID [2018-11-23 12:53:10,961 INFO L268 TraceCheckUtils]: 29: Hoare quadruple {3999#true} {3999#true} #108#return; {3999#true} is VALID [2018-11-23 12:53:10,962 INFO L273 TraceCheckUtils]: 30: Hoare triple {3999#true} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {3999#true} is VALID [2018-11-23 12:53:10,962 INFO L273 TraceCheckUtils]: 31: Hoare triple {3999#true} assume !#t~short21; {3999#true} is VALID [2018-11-23 12:53:10,962 INFO L256 TraceCheckUtils]: 32: Hoare triple {3999#true} call #t~ret20 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {3999#true} is VALID [2018-11-23 12:53:10,962 INFO L273 TraceCheckUtils]: 33: Hoare triple {3999#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {3999#true} is VALID [2018-11-23 12:53:10,962 INFO L273 TraceCheckUtils]: 34: Hoare triple {3999#true} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {3999#true} is VALID [2018-11-23 12:53:10,964 INFO L273 TraceCheckUtils]: 35: Hoare triple {3999#true} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset;#res := 0; {4001#(= 0 |is_list_containing_x_#res|)} is VALID [2018-11-23 12:53:10,965 INFO L273 TraceCheckUtils]: 36: Hoare triple {4001#(= 0 |is_list_containing_x_#res|)} assume true; {4001#(= 0 |is_list_containing_x_#res|)} is VALID [2018-11-23 12:53:10,965 INFO L268 TraceCheckUtils]: 37: Hoare quadruple {4001#(= 0 |is_list_containing_x_#res|)} {3999#true} #110#return; {4002#(= |main_#t~ret20| 0)} is VALID [2018-11-23 12:53:10,966 INFO L273 TraceCheckUtils]: 38: Hoare triple {4002#(= |main_#t~ret20| 0)} #t~short21 := 0 == #t~ret20 % 256; {4003#|main_#t~short21|} is VALID [2018-11-23 12:53:10,966 INFO L256 TraceCheckUtils]: 39: Hoare triple {4003#|main_#t~short21|} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {4004#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:53:10,967 INFO L273 TraceCheckUtils]: 40: Hoare triple {4004#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {4005#(= __VERIFIER_assert_~cond 1)} is VALID [2018-11-23 12:53:10,967 INFO L273 TraceCheckUtils]: 41: Hoare triple {4005#(= __VERIFIER_assert_~cond 1)} assume 0 == ~cond; {4000#false} is VALID [2018-11-23 12:53:10,967 INFO L273 TraceCheckUtils]: 42: Hoare triple {4000#false} assume !false; {4000#false} is VALID [2018-11-23 12:53:10,968 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2018-11-23 12:53:10,969 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:53:10,969 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2018-11-23 12:53:10,970 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 43 [2018-11-23 12:53:10,970 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:53:10,970 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2018-11-23 12:53:11,007 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 39 edges. 39 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:11,007 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2018-11-23 12:53:11,007 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2018-11-23 12:53:11,007 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2018-11-23 12:53:11,008 INFO L87 Difference]: Start difference. First operand 128 states and 179 transitions. Second operand 7 states. [2018-11-23 12:53:12,161 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:12,161 INFO L93 Difference]: Finished difference Result 146 states and 198 transitions. [2018-11-23 12:53:12,162 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2018-11-23 12:53:12,162 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 43 [2018-11-23 12:53:12,162 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:53:12,162 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2018-11-23 12:53:12,164 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 75 transitions. [2018-11-23 12:53:12,164 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2018-11-23 12:53:12,165 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 75 transitions. [2018-11-23 12:53:12,166 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 75 transitions. [2018-11-23 12:53:12,307 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 75 edges. 75 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:12,311 INFO L225 Difference]: With dead ends: 146 [2018-11-23 12:53:12,311 INFO L226 Difference]: Without dead ends: 144 [2018-11-23 12:53:12,312 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=19, Invalid=53, Unknown=0, NotChecked=0, Total=72 [2018-11-23 12:53:12,312 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 144 states. [2018-11-23 12:53:13,023 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 144 to 130. [2018-11-23 12:53:13,023 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:53:13,023 INFO L82 GeneralOperation]: Start isEquivalent. First operand 144 states. Second operand 130 states. [2018-11-23 12:53:13,023 INFO L74 IsIncluded]: Start isIncluded. First operand 144 states. Second operand 130 states. [2018-11-23 12:53:13,024 INFO L87 Difference]: Start difference. First operand 144 states. Second operand 130 states. [2018-11-23 12:53:13,030 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:13,030 INFO L93 Difference]: Finished difference Result 144 states and 195 transitions. [2018-11-23 12:53:13,030 INFO L276 IsEmpty]: Start isEmpty. Operand 144 states and 195 transitions. [2018-11-23 12:53:13,031 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:13,031 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:13,032 INFO L74 IsIncluded]: Start isIncluded. First operand 130 states. Second operand 144 states. [2018-11-23 12:53:13,032 INFO L87 Difference]: Start difference. First operand 130 states. Second operand 144 states. [2018-11-23 12:53:13,038 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:13,038 INFO L93 Difference]: Finished difference Result 144 states and 195 transitions. [2018-11-23 12:53:13,039 INFO L276 IsEmpty]: Start isEmpty. Operand 144 states and 195 transitions. [2018-11-23 12:53:13,039 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:13,040 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:13,040 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:53:13,040 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:53:13,040 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 130 states. [2018-11-23 12:53:13,045 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 130 states to 130 states and 181 transitions. [2018-11-23 12:53:13,046 INFO L78 Accepts]: Start accepts. Automaton has 130 states and 181 transitions. Word has length 43 [2018-11-23 12:53:13,046 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:53:13,046 INFO L480 AbstractCegarLoop]: Abstraction has 130 states and 181 transitions. [2018-11-23 12:53:13,046 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2018-11-23 12:53:13,046 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 181 transitions. [2018-11-23 12:53:13,047 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 46 [2018-11-23 12:53:13,047 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:53:13,048 INFO L402 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:53:13,048 INFO L423 AbstractCegarLoop]: === Iteration 9 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:53:13,048 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:53:13,048 INFO L82 PathProgramCache]: Analyzing trace with hash 1898264822, now seen corresponding path program 1 times [2018-11-23 12:53:13,048 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:53:13,048 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:53:13,049 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:13,050 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:13,050 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:13,060 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:13,537 INFO L256 TraceCheckUtils]: 0: Hoare triple {4660#true} call ULTIMATE.init(); {4660#true} is VALID [2018-11-23 12:53:13,537 INFO L273 TraceCheckUtils]: 1: Hoare triple {4660#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {4660#true} is VALID [2018-11-23 12:53:13,538 INFO L273 TraceCheckUtils]: 2: Hoare triple {4660#true} assume true; {4660#true} is VALID [2018-11-23 12:53:13,538 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {4660#true} {4660#true} #102#return; {4660#true} is VALID [2018-11-23 12:53:13,538 INFO L256 TraceCheckUtils]: 4: Hoare triple {4660#true} call #t~ret23 := main(); {4660#true} is VALID [2018-11-23 12:53:13,539 INFO L273 TraceCheckUtils]: 5: Hoare triple {4660#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:13,541 INFO L273 TraceCheckUtils]: 6: Hoare triple {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:13,541 INFO L256 TraceCheckUtils]: 7: Hoare triple {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {4660#true} is VALID [2018-11-23 12:53:13,541 INFO L273 TraceCheckUtils]: 8: Hoare triple {4660#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {4660#true} is VALID [2018-11-23 12:53:13,542 INFO L273 TraceCheckUtils]: 9: Hoare triple {4660#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {4660#true} is VALID [2018-11-23 12:53:13,542 INFO L273 TraceCheckUtils]: 10: Hoare triple {4660#true} assume true; {4660#true} is VALID [2018-11-23 12:53:13,543 INFO L268 TraceCheckUtils]: 11: Hoare quadruple {4660#true} {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} #106#return; {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:13,544 INFO L273 TraceCheckUtils]: 12: Hoare triple {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} assume 0 != #t~ret19 % 256;havoc #t~ret19; {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:13,544 INFO L256 TraceCheckUtils]: 13: Hoare triple {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} call remove(~x~0.base, ~x~0.offset); {4660#true} is VALID [2018-11-23 12:53:13,544 INFO L273 TraceCheckUtils]: 14: Hoare triple {4660#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {4660#true} is VALID [2018-11-23 12:53:13,544 INFO L273 TraceCheckUtils]: 15: Hoare triple {4660#true} assume #t~mem3.base != 0 || #t~mem3.offset != 0;havoc #t~mem3.base, #t~mem3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call #t~mem5.base, #t~mem5.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(#t~mem5.base, #t~mem5.offset, #t~mem4.base, #t~mem4.offset, 4);havoc #t~mem5.base, #t~mem5.offset;havoc #t~mem4.base, #t~mem4.offset; {4660#true} is VALID [2018-11-23 12:53:13,545 INFO L273 TraceCheckUtils]: 16: Hoare triple {4660#true} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {4660#true} is VALID [2018-11-23 12:53:13,545 INFO L273 TraceCheckUtils]: 17: Hoare triple {4660#true} assume !(#t~mem6.base != 0 || #t~mem6.offset != 0);havoc #t~mem6.base, #t~mem6.offset; {4660#true} is VALID [2018-11-23 12:53:13,545 INFO L273 TraceCheckUtils]: 18: Hoare triple {4660#true} assume true; {4660#true} is VALID [2018-11-23 12:53:13,545 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {4660#true} {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} #108#return; {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:13,546 INFO L273 TraceCheckUtils]: 20: Hoare triple {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:13,548 INFO L273 TraceCheckUtils]: 21: Hoare triple {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} assume #t~short21; {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:13,548 INFO L256 TraceCheckUtils]: 22: Hoare triple {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {4660#true} is VALID [2018-11-23 12:53:13,548 INFO L273 TraceCheckUtils]: 23: Hoare triple {4660#true} ~cond := #in~cond; {4660#true} is VALID [2018-11-23 12:53:13,549 INFO L273 TraceCheckUtils]: 24: Hoare triple {4660#true} assume !(0 == ~cond); {4660#true} is VALID [2018-11-23 12:53:13,549 INFO L273 TraceCheckUtils]: 25: Hoare triple {4660#true} assume true; {4660#true} is VALID [2018-11-23 12:53:13,555 INFO L268 TraceCheckUtils]: 26: Hoare quadruple {4660#true} {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} #112#return; {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:13,556 INFO L273 TraceCheckUtils]: 27: Hoare triple {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} havoc #t~ret20;havoc #t~short21; {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:13,556 INFO L256 TraceCheckUtils]: 28: Hoare triple {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} call re_insert(~x~0.base, ~x~0.offset); {4660#true} is VALID [2018-11-23 12:53:13,556 INFO L273 TraceCheckUtils]: 29: Hoare triple {4660#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {4660#true} is VALID [2018-11-23 12:53:13,557 INFO L273 TraceCheckUtils]: 30: Hoare triple {4660#true} assume #t~mem9.base != 0 || #t~mem9.offset != 0;havoc #t~mem9.base, #t~mem9.offset;call #t~mem10.base, #t~mem10.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4);call write~$Pointer$(~x.base, ~x.offset, #t~mem10.base, #t~mem10.offset, 4);havoc #t~mem10.base, #t~mem10.offset; {4660#true} is VALID [2018-11-23 12:53:13,557 INFO L273 TraceCheckUtils]: 31: Hoare triple {4660#true} call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~x.base, ~x.offset, 4); {4660#true} is VALID [2018-11-23 12:53:13,557 INFO L273 TraceCheckUtils]: 32: Hoare triple {4660#true} assume #t~mem11.base != 0 || #t~mem11.offset != 0;havoc #t~mem11.base, #t~mem11.offset;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~x.base, ~x.offset, 4);call write~$Pointer$(~x.base, ~x.offset, #t~mem12.base, 4 + #t~mem12.offset, 4);havoc #t~mem12.base, #t~mem12.offset; {4660#true} is VALID [2018-11-23 12:53:13,557 INFO L273 TraceCheckUtils]: 33: Hoare triple {4660#true} assume true; {4660#true} is VALID [2018-11-23 12:53:13,558 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {4660#true} {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} #114#return; {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} is VALID [2018-11-23 12:53:13,558 INFO L256 TraceCheckUtils]: 35: Hoare triple {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} call #t~ret22 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {4660#true} is VALID [2018-11-23 12:53:13,558 INFO L273 TraceCheckUtils]: 36: Hoare triple {4660#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {4663#(and (= is_list_containing_x_~x.offset |is_list_containing_x_#in~x.offset|) (= is_list_containing_x_~l.offset |is_list_containing_x_#in~l.offset|) (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|))} is VALID [2018-11-23 12:53:13,559 INFO L273 TraceCheckUtils]: 37: Hoare triple {4663#(and (= is_list_containing_x_~x.offset |is_list_containing_x_#in~x.offset|) (= is_list_containing_x_~l.offset |is_list_containing_x_#in~l.offset|) (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|))} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {4664#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:53:13,560 INFO L273 TraceCheckUtils]: 38: Hoare triple {4664#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} assume !(#t~mem13.base != 0 || #t~mem13.offset != 0);havoc #t~mem13.base, #t~mem13.offset;#res := 0; {4664#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:53:13,561 INFO L273 TraceCheckUtils]: 39: Hoare triple {4664#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} assume true; {4664#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:53:13,562 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {4664#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} {4662#(and (= main_~x~0.offset |main_~#list~0.offset|) (= main_~x~0.base |main_~#list~0.base|))} #116#return; {4661#false} is VALID [2018-11-23 12:53:13,562 INFO L256 TraceCheckUtils]: 41: Hoare triple {4661#false} call __VERIFIER_assert(#t~ret22 % 256); {4661#false} is VALID [2018-11-23 12:53:13,563 INFO L273 TraceCheckUtils]: 42: Hoare triple {4661#false} ~cond := #in~cond; {4661#false} is VALID [2018-11-23 12:53:13,563 INFO L273 TraceCheckUtils]: 43: Hoare triple {4661#false} assume 0 == ~cond; {4661#false} is VALID [2018-11-23 12:53:13,563 INFO L273 TraceCheckUtils]: 44: Hoare triple {4661#false} assume !false; {4661#false} is VALID [2018-11-23 12:53:13,566 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 0 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 12:53:13,566 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:53:13,566 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 12:53:13,567 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 45 [2018-11-23 12:53:13,567 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:53:13,567 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2018-11-23 12:53:13,617 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:13,617 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 12:53:13,617 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 12:53:13,617 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:53:13,618 INFO L87 Difference]: Start difference. First operand 130 states and 181 transitions. Second operand 5 states. [2018-11-23 12:53:15,092 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:15,092 INFO L93 Difference]: Finished difference Result 234 states and 314 transitions. [2018-11-23 12:53:15,092 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 12:53:15,092 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 45 [2018-11-23 12:53:15,093 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:53:15,093 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:53:15,095 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 123 transitions. [2018-11-23 12:53:15,095 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:53:15,097 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 123 transitions. [2018-11-23 12:53:15,097 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 123 transitions. [2018-11-23 12:53:15,289 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 123 edges. 123 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:15,293 INFO L225 Difference]: With dead ends: 234 [2018-11-23 12:53:15,293 INFO L226 Difference]: Without dead ends: 116 [2018-11-23 12:53:15,294 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=11, Invalid=19, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:53:15,294 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 116 states. [2018-11-23 12:53:16,229 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 116 to 112. [2018-11-23 12:53:16,229 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:53:16,229 INFO L82 GeneralOperation]: Start isEquivalent. First operand 116 states. Second operand 112 states. [2018-11-23 12:53:16,229 INFO L74 IsIncluded]: Start isIncluded. First operand 116 states. Second operand 112 states. [2018-11-23 12:53:16,229 INFO L87 Difference]: Start difference. First operand 116 states. Second operand 112 states. [2018-11-23 12:53:16,235 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:16,235 INFO L93 Difference]: Finished difference Result 116 states and 152 transitions. [2018-11-23 12:53:16,236 INFO L276 IsEmpty]: Start isEmpty. Operand 116 states and 152 transitions. [2018-11-23 12:53:16,236 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:16,237 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:16,237 INFO L74 IsIncluded]: Start isIncluded. First operand 112 states. Second operand 116 states. [2018-11-23 12:53:16,237 INFO L87 Difference]: Start difference. First operand 112 states. Second operand 116 states. [2018-11-23 12:53:16,243 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:16,243 INFO L93 Difference]: Finished difference Result 116 states and 152 transitions. [2018-11-23 12:53:16,243 INFO L276 IsEmpty]: Start isEmpty. Operand 116 states and 152 transitions. [2018-11-23 12:53:16,244 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:16,244 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:16,244 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:53:16,244 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:53:16,245 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 112 states. [2018-11-23 12:53:16,250 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 112 states to 112 states and 147 transitions. [2018-11-23 12:53:16,251 INFO L78 Accepts]: Start accepts. Automaton has 112 states and 147 transitions. Word has length 45 [2018-11-23 12:53:16,251 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:53:16,251 INFO L480 AbstractCegarLoop]: Abstraction has 112 states and 147 transitions. [2018-11-23 12:53:16,251 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 12:53:16,251 INFO L276 IsEmpty]: Start isEmpty. Operand 112 states and 147 transitions. [2018-11-23 12:53:16,252 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2018-11-23 12:53:16,252 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:53:16,252 INFO L402 BasicCegarLoop]: trace histogram [4, 4, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:53:16,252 INFO L423 AbstractCegarLoop]: === Iteration 10 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:53:16,253 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:53:16,253 INFO L82 PathProgramCache]: Analyzing trace with hash -339958140, now seen corresponding path program 1 times [2018-11-23 12:53:16,253 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:53:16,253 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:53:16,254 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:16,254 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:16,254 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:16,266 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:16,643 INFO L256 TraceCheckUtils]: 0: Hoare triple {5350#true} call ULTIMATE.init(); {5350#true} is VALID [2018-11-23 12:53:16,644 INFO L273 TraceCheckUtils]: 1: Hoare triple {5350#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {5350#true} is VALID [2018-11-23 12:53:16,644 INFO L273 TraceCheckUtils]: 2: Hoare triple {5350#true} assume true; {5350#true} is VALID [2018-11-23 12:53:16,644 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {5350#true} {5350#true} #102#return; {5350#true} is VALID [2018-11-23 12:53:16,645 INFO L256 TraceCheckUtils]: 4: Hoare triple {5350#true} call #t~ret23 := main(); {5350#true} is VALID [2018-11-23 12:53:16,646 INFO L273 TraceCheckUtils]: 5: Hoare triple {5350#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {5352#(and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:53:16,647 INFO L273 TraceCheckUtils]: 6: Hoare triple {5352#(and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| 0))} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {5353#(and (or (not (= main_~n~0.base main_~tail~0.base)) (and (= main_~n~0.base |main_~#list~0.base|) (= |main_~#list~0.offset| main_~n~0.offset))) (not (= 0 main_~tail~0.base)))} is VALID [2018-11-23 12:53:16,648 INFO L273 TraceCheckUtils]: 7: Hoare triple {5353#(and (or (not (= main_~n~0.base main_~tail~0.base)) (and (= main_~n~0.base |main_~#list~0.base|) (= |main_~#list~0.offset| main_~n~0.offset))) (not (= 0 main_~tail~0.base)))} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {5354#(or (and (= main_~n~0.base |main_~#list~0.base|) (= |main_~#list~0.offset| main_~n~0.offset)) (not (= 0 (select (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset))))} is VALID [2018-11-23 12:53:16,649 INFO L273 TraceCheckUtils]: 8: Hoare triple {5354#(or (and (= main_~n~0.base |main_~#list~0.base|) (= |main_~#list~0.offset| main_~n~0.offset)) (not (= 0 (select (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset))))} assume 0 != #t~nondet18 % 256;havoc #t~nondet18;~x~0.base, ~x~0.offset := ~n~0.base, ~n~0.offset; {5355#(or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (and (= main_~x~0.base |main_~#list~0.base|) (= |main_~#list~0.offset| main_~x~0.offset)))} is VALID [2018-11-23 12:53:16,650 INFO L273 TraceCheckUtils]: 9: Hoare triple {5355#(or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (and (= main_~x~0.base |main_~#list~0.base|) (= |main_~#list~0.offset| main_~x~0.offset)))} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {5355#(or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (and (= main_~x~0.base |main_~#list~0.base|) (= |main_~#list~0.offset| main_~x~0.offset)))} is VALID [2018-11-23 12:53:16,650 INFO L256 TraceCheckUtils]: 10: Hoare triple {5355#(or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (and (= main_~x~0.base |main_~#list~0.base|) (= |main_~#list~0.offset| main_~x~0.offset)))} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {5350#true} is VALID [2018-11-23 12:53:16,650 INFO L273 TraceCheckUtils]: 11: Hoare triple {5350#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {5356#(and (= is_list_containing_x_~x.offset |is_list_containing_x_#in~x.offset|) (= is_list_containing_x_~l.offset |is_list_containing_x_#in~l.offset|) (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|))} is VALID [2018-11-23 12:53:16,651 INFO L273 TraceCheckUtils]: 12: Hoare triple {5356#(and (= is_list_containing_x_~x.offset |is_list_containing_x_#in~x.offset|) (= is_list_containing_x_~l.offset |is_list_containing_x_#in~l.offset|) (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|))} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {5357#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:53:16,651 INFO L273 TraceCheckUtils]: 13: Hoare triple {5357#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} assume #t~mem13.base != 0 || #t~mem13.offset != 0;havoc #t~mem13.base, #t~mem13.offset;call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {5357#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:53:16,651 INFO L256 TraceCheckUtils]: 14: Hoare triple {5357#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} call #t~ret15 := is_list_containing_x(#t~mem14.base, #t~mem14.offset, ~x.base, ~x.offset); {5350#true} is VALID [2018-11-23 12:53:16,652 INFO L273 TraceCheckUtils]: 15: Hoare triple {5350#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {5350#true} is VALID [2018-11-23 12:53:16,652 INFO L273 TraceCheckUtils]: 16: Hoare triple {5350#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {5350#true} is VALID [2018-11-23 12:53:16,652 INFO L273 TraceCheckUtils]: 17: Hoare triple {5350#true} assume true; {5350#true} is VALID [2018-11-23 12:53:16,654 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {5350#true} {5357#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} #120#return; {5357#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:53:16,654 INFO L273 TraceCheckUtils]: 19: Hoare triple {5357#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} #res := #t~ret15;havoc #t~mem14.base, #t~mem14.offset;havoc #t~ret15; {5357#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:53:16,654 INFO L273 TraceCheckUtils]: 20: Hoare triple {5357#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} assume true; {5357#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:53:16,656 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {5357#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} {5355#(or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (and (= main_~x~0.base |main_~#list~0.base|) (= |main_~#list~0.offset| main_~x~0.offset)))} #106#return; {5358#(not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)))} is VALID [2018-11-23 12:53:16,656 INFO L273 TraceCheckUtils]: 22: Hoare triple {5358#(not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)))} assume 0 != #t~ret19 % 256;havoc #t~ret19; {5358#(not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)))} is VALID [2018-11-23 12:53:16,657 INFO L256 TraceCheckUtils]: 23: Hoare triple {5358#(not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)))} call remove(~x~0.base, ~x~0.offset); {5359#(= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)} is VALID [2018-11-23 12:53:16,658 INFO L273 TraceCheckUtils]: 24: Hoare triple {5359#(= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {5360#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (= (select |#memory_$Pointer$.base| remove_~x.base) (select |old(#memory_$Pointer$.base)| remove_~x.base)))} is VALID [2018-11-23 12:53:16,659 INFO L273 TraceCheckUtils]: 25: Hoare triple {5360#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (= (select |#memory_$Pointer$.base| remove_~x.base) (select |old(#memory_$Pointer$.base)| remove_~x.base)))} assume !(#t~mem3.base != 0 || #t~mem3.offset != 0);havoc #t~mem3.base, #t~mem3.offset; {5360#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (= (select |#memory_$Pointer$.base| remove_~x.base) (select |old(#memory_$Pointer$.base)| remove_~x.base)))} is VALID [2018-11-23 12:53:16,660 INFO L273 TraceCheckUtils]: 26: Hoare triple {5360#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (= (select |#memory_$Pointer$.base| remove_~x.base) (select |old(#memory_$Pointer$.base)| remove_~x.base)))} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {5361#(= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|) |remove_#t~mem6.base|)} is VALID [2018-11-23 12:53:16,661 INFO L273 TraceCheckUtils]: 27: Hoare triple {5361#(= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|) |remove_#t~mem6.base|)} assume !(#t~mem6.base != 0 || #t~mem6.offset != 0);havoc #t~mem6.base, #t~mem6.offset; {5362#(= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))} is VALID [2018-11-23 12:53:16,661 INFO L273 TraceCheckUtils]: 28: Hoare triple {5362#(= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))} assume true; {5362#(= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))} is VALID [2018-11-23 12:53:16,662 INFO L268 TraceCheckUtils]: 29: Hoare quadruple {5362#(= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))} {5358#(not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)))} #108#return; {5351#false} is VALID [2018-11-23 12:53:16,663 INFO L273 TraceCheckUtils]: 30: Hoare triple {5351#false} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {5351#false} is VALID [2018-11-23 12:53:16,663 INFO L273 TraceCheckUtils]: 31: Hoare triple {5351#false} assume !#t~short21; {5351#false} is VALID [2018-11-23 12:53:16,663 INFO L256 TraceCheckUtils]: 32: Hoare triple {5351#false} call #t~ret20 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {5350#true} is VALID [2018-11-23 12:53:16,664 INFO L273 TraceCheckUtils]: 33: Hoare triple {5350#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {5350#true} is VALID [2018-11-23 12:53:16,664 INFO L273 TraceCheckUtils]: 34: Hoare triple {5350#true} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {5350#true} is VALID [2018-11-23 12:53:16,664 INFO L273 TraceCheckUtils]: 35: Hoare triple {5350#true} assume #t~mem13.base != 0 || #t~mem13.offset != 0;havoc #t~mem13.base, #t~mem13.offset;call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {5350#true} is VALID [2018-11-23 12:53:16,664 INFO L256 TraceCheckUtils]: 36: Hoare triple {5350#true} call #t~ret15 := is_list_containing_x(#t~mem14.base, #t~mem14.offset, ~x.base, ~x.offset); {5350#true} is VALID [2018-11-23 12:53:16,664 INFO L273 TraceCheckUtils]: 37: Hoare triple {5350#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {5350#true} is VALID [2018-11-23 12:53:16,665 INFO L273 TraceCheckUtils]: 38: Hoare triple {5350#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {5350#true} is VALID [2018-11-23 12:53:16,665 INFO L273 TraceCheckUtils]: 39: Hoare triple {5350#true} assume true; {5350#true} is VALID [2018-11-23 12:53:16,665 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {5350#true} {5350#true} #120#return; {5350#true} is VALID [2018-11-23 12:53:16,665 INFO L273 TraceCheckUtils]: 41: Hoare triple {5350#true} #res := #t~ret15;havoc #t~mem14.base, #t~mem14.offset;havoc #t~ret15; {5350#true} is VALID [2018-11-23 12:53:16,666 INFO L273 TraceCheckUtils]: 42: Hoare triple {5350#true} assume true; {5350#true} is VALID [2018-11-23 12:53:16,666 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {5350#true} {5351#false} #110#return; {5351#false} is VALID [2018-11-23 12:53:16,666 INFO L273 TraceCheckUtils]: 44: Hoare triple {5351#false} #t~short21 := 0 == #t~ret20 % 256; {5351#false} is VALID [2018-11-23 12:53:16,666 INFO L256 TraceCheckUtils]: 45: Hoare triple {5351#false} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {5351#false} is VALID [2018-11-23 12:53:16,667 INFO L273 TraceCheckUtils]: 46: Hoare triple {5351#false} ~cond := #in~cond; {5351#false} is VALID [2018-11-23 12:53:16,667 INFO L273 TraceCheckUtils]: 47: Hoare triple {5351#false} assume 0 == ~cond; {5351#false} is VALID [2018-11-23 12:53:16,667 INFO L273 TraceCheckUtils]: 48: Hoare triple {5351#false} assume !false; {5351#false} is VALID [2018-11-23 12:53:16,670 INFO L134 CoverageAnalysis]: Checked inductivity of 28 backedges. 2 proven. 11 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2018-11-23 12:53:16,670 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:53:16,670 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:53:16,679 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:16,714 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:16,742 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:16,744 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:53:16,911 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 31 [2018-11-23 12:53:16,970 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 16 [2018-11-23 12:53:16,978 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:53:16,980 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:53:16,981 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 31 [2018-11-23 12:53:16,984 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-23 12:53:16,994 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:53:17,015 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 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 30 treesize of output 31 [2018-11-23 12:53:17,020 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 10 treesize of output 9 [2018-11-23 12:53:17,021 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2018-11-23 12:53:17,031 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:53:17,041 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:53:17,047 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 2 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 36 [2018-11-23 12:53:17,053 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 33 treesize of output 32 [2018-11-23 12:53:17,061 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:53:17,063 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:53:17,066 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 44 [2018-11-23 12:53:17,075 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2018-11-23 12:53:17,085 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:53:17,103 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 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 30 treesize of output 23 [2018-11-23 12:53:17,113 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:53:17,116 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:53:17,127 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 2 case distinctions, treesize of input 23 treesize of output 47 [2018-11-23 12:53:17,130 INFO L267 ElimStorePlain]: Start of recursive call 11: End of recursive call: and 2 xjuncts. [2018-11-23 12:53:17,159 INFO L267 ElimStorePlain]: Start of recursive call 10: 1 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 12:53:17,196 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 12:53:17,239 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: 2 dim-0 vars, and 3 xjuncts. [2018-11-23 12:53:17,240 INFO L202 ElimStorePlain]: Needed 11 recursive calls to eliminate 2 variables, input treesize:50, output treesize:106 [2018-11-23 12:53:17,247 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:53:17,247 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_$Pointer$.base_29|, main_~tail~0.offset]. (and (= 0 main_~n~0.offset) (not (= |main_~#list~0.base| 0)) (= (let ((.cse0 (store |v_#memory_$Pointer$.base_29| main_~n~0.base (store (store (select |v_#memory_$Pointer$.base_29| main_~n~0.base) main_~n~0.offset |main_~#list~0.base|) (+ main_~n~0.offset 4) 0)))) (store .cse0 |main_~#list~0.base| (store (select .cse0 |main_~#list~0.base|) (+ main_~tail~0.offset 4) main_~n~0.base))) |#memory_$Pointer$.base|) (= |main_~#list~0.offset| 0)) [2018-11-23 12:53:17,247 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [main_~tail~0.offset, v_prenex_4]. (let ((.cse4 (select |#memory_$Pointer$.base| |main_~#list~0.base|)) (.cse8 (+ main_~n~0.offset 4))) (let ((.cse1 (= |main_~#list~0.base| main_~n~0.base)) (.cse2 (select .cse4 .cse8)) (.cse5 (= main_~n~0.base (select .cse4 main_~n~0.offset))) (.cse0 (= 0 main_~n~0.offset)) (.cse3 (not (= |main_~#list~0.base| 0))) (.cse6 (= |main_~#list~0.offset| 0))) (or (and .cse0 .cse1 (= main_~n~0.offset .cse2) .cse3 (= main_~n~0.base (select .cse4 (+ main_~tail~0.offset 4))) .cse5 .cse6) (and .cse0 .cse1 .cse3 (= main_~n~0.base .cse2) .cse5 .cse6) (let ((.cse7 (select |#memory_$Pointer$.base| main_~n~0.base))) (and .cse0 (= 0 (select .cse7 .cse8)) .cse3 (= |main_~#list~0.base| (select .cse7 main_~n~0.offset)) (= main_~n~0.base (select .cse4 (+ v_prenex_4 4))) .cse6))))) [2018-11-23 12:53:18,294 WARN L307 Elim1Store]: Array PQE input equivalent to false [2018-11-23 12:53:18,296 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 12:53:18,306 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:53:18,306 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:81, output treesize:1 [2018-11-23 12:53:18,320 INFO L256 TraceCheckUtils]: 0: Hoare triple {5350#true} call ULTIMATE.init(); {5350#true} is VALID [2018-11-23 12:53:18,321 INFO L273 TraceCheckUtils]: 1: Hoare triple {5350#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {5350#true} is VALID [2018-11-23 12:53:18,321 INFO L273 TraceCheckUtils]: 2: Hoare triple {5350#true} assume true; {5350#true} is VALID [2018-11-23 12:53:18,321 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {5350#true} {5350#true} #102#return; {5350#true} is VALID [2018-11-23 12:53:18,322 INFO L256 TraceCheckUtils]: 4: Hoare triple {5350#true} call #t~ret23 := main(); {5350#true} is VALID [2018-11-23 12:53:18,323 INFO L273 TraceCheckUtils]: 5: Hoare triple {5350#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {5352#(and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:53:18,323 INFO L273 TraceCheckUtils]: 6: Hoare triple {5352#(and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| 0))} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {5384#(and (= 0 main_~n~0.offset) (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:53:18,325 INFO L273 TraceCheckUtils]: 7: Hoare triple {5384#(and (= 0 main_~n~0.offset) (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| 0))} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {5388#(or (and (= |main_~#list~0.base| main_~n~0.base) (= 0 main_~n~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~n~0.offset 4))) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~n~0.offset)) (= |main_~#list~0.offset| 0)) (and (= 0 main_~n~0.offset) (exists ((v_prenex_4 Int)) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)))) (= 0 (select (select |#memory_$Pointer$.base| main_~n~0.base) (+ main_~n~0.offset 4))) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset)) (= |main_~#list~0.offset| 0)))} is VALID [2018-11-23 12:53:18,327 INFO L273 TraceCheckUtils]: 8: Hoare triple {5388#(or (and (= |main_~#list~0.base| main_~n~0.base) (= 0 main_~n~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~n~0.offset 4))) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~n~0.offset)) (= |main_~#list~0.offset| 0)) (and (= 0 main_~n~0.offset) (exists ((v_prenex_4 Int)) (= main_~n~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)))) (= 0 (select (select |#memory_$Pointer$.base| main_~n~0.base) (+ main_~n~0.offset 4))) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset)) (= |main_~#list~0.offset| 0)))} assume 0 != #t~nondet18 % 256;havoc #t~nondet18;~x~0.base, ~x~0.offset := ~n~0.base, ~n~0.offset; {5392#(or (and (exists ((v_prenex_4 Int)) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)) main_~x~0.base)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.offset| 0)) (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~x~0.offset 4)) main_~x~0.base) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0)))} is VALID [2018-11-23 12:53:18,327 INFO L273 TraceCheckUtils]: 9: Hoare triple {5392#(or (and (exists ((v_prenex_4 Int)) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)) main_~x~0.base)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.offset| 0)) (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~x~0.offset 4)) main_~x~0.base) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0)))} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {5392#(or (and (exists ((v_prenex_4 Int)) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)) main_~x~0.base)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.offset| 0)) (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~x~0.offset 4)) main_~x~0.base) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0)))} is VALID [2018-11-23 12:53:18,330 INFO L256 TraceCheckUtils]: 10: Hoare triple {5392#(or (and (exists ((v_prenex_4 Int)) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)) main_~x~0.base)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.offset| 0)) (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~x~0.offset 4)) main_~x~0.base) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0)))} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} is VALID [2018-11-23 12:53:18,331 INFO L273 TraceCheckUtils]: 11: Hoare triple {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} is VALID [2018-11-23 12:53:18,331 INFO L273 TraceCheckUtils]: 12: Hoare triple {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} is VALID [2018-11-23 12:53:18,332 INFO L273 TraceCheckUtils]: 13: Hoare triple {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} assume #t~mem13.base != 0 || #t~mem13.offset != 0;havoc #t~mem13.base, #t~mem13.offset;call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} is VALID [2018-11-23 12:53:18,333 INFO L256 TraceCheckUtils]: 14: Hoare triple {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} call #t~ret15 := is_list_containing_x(#t~mem14.base, #t~mem14.offset, ~x.base, ~x.offset); {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} is VALID [2018-11-23 12:53:18,334 INFO L273 TraceCheckUtils]: 15: Hoare triple {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} is VALID [2018-11-23 12:53:18,334 INFO L273 TraceCheckUtils]: 16: Hoare triple {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} is VALID [2018-11-23 12:53:18,335 INFO L273 TraceCheckUtils]: 17: Hoare triple {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} assume true; {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} is VALID [2018-11-23 12:53:18,336 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} #120#return; {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} is VALID [2018-11-23 12:53:18,337 INFO L273 TraceCheckUtils]: 19: Hoare triple {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} #res := #t~ret15;havoc #t~mem14.base, #t~mem14.offset;havoc #t~ret15; {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} is VALID [2018-11-23 12:53:18,337 INFO L273 TraceCheckUtils]: 20: Hoare triple {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} assume true; {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} is VALID [2018-11-23 12:53:18,338 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {5399#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_4| Int)) (and (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_4|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 4) |v_main_~#list~0.base_BEFORE_CALL_4|) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_4|) 0) |v_main_~#list~0.base_BEFORE_CALL_4|))) (exists ((v_main_~x~0.base_BEFORE_CALL_4 Int) (v_prenex_4 Int)) (and (= v_main_~x~0.base_BEFORE_CALL_4 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0)) (+ v_prenex_4 4))) (= 0 (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 4)) (not (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_4) 0) 0)))))} {5392#(or (and (exists ((v_prenex_4 Int)) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)) main_~x~0.base)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.offset| 0)) (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~x~0.offset 4)) main_~x~0.base) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0)))} #106#return; {5392#(or (and (exists ((v_prenex_4 Int)) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)) main_~x~0.base)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.offset| 0)) (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~x~0.offset 4)) main_~x~0.base) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0)))} is VALID [2018-11-23 12:53:18,339 INFO L273 TraceCheckUtils]: 22: Hoare triple {5392#(or (and (exists ((v_prenex_4 Int)) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)) main_~x~0.base)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.offset| 0)) (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~x~0.offset 4)) main_~x~0.base) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0)))} assume 0 != #t~ret19 % 256;havoc #t~ret19; {5392#(or (and (exists ((v_prenex_4 Int)) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)) main_~x~0.base)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.offset| 0)) (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~x~0.offset 4)) main_~x~0.base) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0)))} is VALID [2018-11-23 12:53:18,340 INFO L256 TraceCheckUtils]: 23: Hoare triple {5392#(or (and (exists ((v_prenex_4 Int)) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)) main_~x~0.base)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.offset| 0)) (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~x~0.offset 4)) main_~x~0.base) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0)))} call remove(~x~0.base, ~x~0.offset); {5359#(= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)} is VALID [2018-11-23 12:53:18,341 INFO L273 TraceCheckUtils]: 24: Hoare triple {5359#(= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {5442#(and (= |remove_#in~x.offset| remove_~x.offset) (= remove_~x.base |remove_#in~x.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:53:18,342 INFO L273 TraceCheckUtils]: 25: Hoare triple {5442#(and (= |remove_#in~x.offset| remove_~x.offset) (= remove_~x.base |remove_#in~x.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} assume !(#t~mem3.base != 0 || #t~mem3.offset != 0);havoc #t~mem3.base, #t~mem3.offset; {5442#(and (= |remove_#in~x.offset| remove_~x.offset) (= remove_~x.base |remove_#in~x.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:53:18,343 INFO L273 TraceCheckUtils]: 26: Hoare triple {5442#(and (= |remove_#in~x.offset| remove_~x.offset) (= remove_~x.base |remove_#in~x.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {5449#(and (= |remove_#t~mem6.base| (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:53:18,343 INFO L273 TraceCheckUtils]: 27: Hoare triple {5449#(and (= |remove_#t~mem6.base| (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} assume !(#t~mem6.base != 0 || #t~mem6.offset != 0);havoc #t~mem6.base, #t~mem6.offset; {5453#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)))} is VALID [2018-11-23 12:53:18,344 INFO L273 TraceCheckUtils]: 28: Hoare triple {5453#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)))} assume true; {5453#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)))} is VALID [2018-11-23 12:53:18,346 INFO L268 TraceCheckUtils]: 29: Hoare quadruple {5453#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)))} {5392#(or (and (exists ((v_prenex_4 Int)) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ v_prenex_4 4)) main_~x~0.base)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) (+ main_~x~0.offset 4)) 0) (= |main_~#list~0.offset| 0)) (and (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) main_~x~0.offset) main_~x~0.base) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ main_~x~0.offset 4)) main_~x~0.base) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| main_~x~0.base) (= |main_~#list~0.offset| 0)))} #108#return; {5351#false} is VALID [2018-11-23 12:53:18,346 INFO L273 TraceCheckUtils]: 30: Hoare triple {5351#false} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {5351#false} is VALID [2018-11-23 12:53:18,347 INFO L273 TraceCheckUtils]: 31: Hoare triple {5351#false} assume !#t~short21; {5351#false} is VALID [2018-11-23 12:53:18,347 INFO L256 TraceCheckUtils]: 32: Hoare triple {5351#false} call #t~ret20 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {5351#false} is VALID [2018-11-23 12:53:18,347 INFO L273 TraceCheckUtils]: 33: Hoare triple {5351#false} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {5351#false} is VALID [2018-11-23 12:53:18,347 INFO L273 TraceCheckUtils]: 34: Hoare triple {5351#false} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {5351#false} is VALID [2018-11-23 12:53:18,348 INFO L273 TraceCheckUtils]: 35: Hoare triple {5351#false} assume #t~mem13.base != 0 || #t~mem13.offset != 0;havoc #t~mem13.base, #t~mem13.offset;call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {5351#false} is VALID [2018-11-23 12:53:18,348 INFO L256 TraceCheckUtils]: 36: Hoare triple {5351#false} call #t~ret15 := is_list_containing_x(#t~mem14.base, #t~mem14.offset, ~x.base, ~x.offset); {5351#false} is VALID [2018-11-23 12:53:18,348 INFO L273 TraceCheckUtils]: 37: Hoare triple {5351#false} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {5351#false} is VALID [2018-11-23 12:53:18,348 INFO L273 TraceCheckUtils]: 38: Hoare triple {5351#false} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {5351#false} is VALID [2018-11-23 12:53:18,348 INFO L273 TraceCheckUtils]: 39: Hoare triple {5351#false} assume true; {5351#false} is VALID [2018-11-23 12:53:18,349 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {5351#false} {5351#false} #120#return; {5351#false} is VALID [2018-11-23 12:53:18,349 INFO L273 TraceCheckUtils]: 41: Hoare triple {5351#false} #res := #t~ret15;havoc #t~mem14.base, #t~mem14.offset;havoc #t~ret15; {5351#false} is VALID [2018-11-23 12:53:18,349 INFO L273 TraceCheckUtils]: 42: Hoare triple {5351#false} assume true; {5351#false} is VALID [2018-11-23 12:53:18,349 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {5351#false} {5351#false} #110#return; {5351#false} is VALID [2018-11-23 12:53:18,349 INFO L273 TraceCheckUtils]: 44: Hoare triple {5351#false} #t~short21 := 0 == #t~ret20 % 256; {5351#false} is VALID [2018-11-23 12:53:18,350 INFO L256 TraceCheckUtils]: 45: Hoare triple {5351#false} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {5351#false} is VALID [2018-11-23 12:53:18,350 INFO L273 TraceCheckUtils]: 46: Hoare triple {5351#false} ~cond := #in~cond; {5351#false} is VALID [2018-11-23 12:53:18,350 INFO L273 TraceCheckUtils]: 47: Hoare triple {5351#false} assume 0 == ~cond; {5351#false} is VALID [2018-11-23 12:53:18,350 INFO L273 TraceCheckUtils]: 48: Hoare triple {5351#false} assume !false; {5351#false} is VALID [2018-11-23 12:53:18,359 INFO L134 CoverageAnalysis]: Checked inductivity of 28 backedges. 19 proven. 1 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2018-11-23 12:53:18,379 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:53:18,379 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 11] total 20 [2018-11-23 12:53:18,380 INFO L78 Accepts]: Start accepts. Automaton has 20 states. Word has length 49 [2018-11-23 12:53:18,380 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:53:18,380 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 20 states. [2018-11-23 12:53:18,478 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 76 edges. 76 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:18,479 INFO L459 AbstractCegarLoop]: Interpolant automaton has 20 states [2018-11-23 12:53:18,479 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2018-11-23 12:53:18,479 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=51, Invalid=329, Unknown=0, NotChecked=0, Total=380 [2018-11-23 12:53:18,480 INFO L87 Difference]: Start difference. First operand 112 states and 147 transitions. Second operand 20 states. [2018-11-23 12:53:29,388 WARN L180 SmtUtils]: Spent 160.00 ms on a formula simplification. DAG size of input: 55 DAG size of output: 53 [2018-11-23 12:53:30,202 WARN L180 SmtUtils]: Spent 322.00 ms on a formula simplification that was a NOOP. DAG size: 31 [2018-11-23 12:53:30,893 WARN L180 SmtUtils]: Spent 133.00 ms on a formula simplification that was a NOOP. DAG size: 43 [2018-11-23 12:53:32,235 WARN L180 SmtUtils]: Spent 1.15 s on a formula simplification that was a NOOP. DAG size: 48 [2018-11-23 12:53:34,841 WARN L180 SmtUtils]: Spent 393.00 ms on a formula simplification that was a NOOP. DAG size: 37 [2018-11-23 12:53:43,429 WARN L180 SmtUtils]: Spent 202.00 ms on a formula simplification that was a NOOP. DAG size: 40 [2018-11-23 12:54:03,823 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:03,824 INFO L93 Difference]: Finished difference Result 201 states and 277 transitions. [2018-11-23 12:54:03,824 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2018-11-23 12:54:03,824 INFO L78 Accepts]: Start accepts. Automaton has 20 states. Word has length 49 [2018-11-23 12:54:03,824 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:54:03,824 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2018-11-23 12:54:03,829 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 201 transitions. [2018-11-23 12:54:03,829 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2018-11-23 12:54:03,832 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 201 transitions. [2018-11-23 12:54:03,832 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 20 states and 201 transitions. [2018-11-23 12:54:04,347 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 201 edges. 201 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:54:04,351 INFO L225 Difference]: With dead ends: 201 [2018-11-23 12:54:04,351 INFO L226 Difference]: Without dead ends: 142 [2018-11-23 12:54:04,352 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 80 GetRequests, 44 SyntacticMatches, 2 SemanticMatches, 34 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 223 ImplicationChecksByTransitivity, 3.9s TimeCoverageRelationStatistics Valid=192, Invalid=1068, Unknown=0, NotChecked=0, Total=1260 [2018-11-23 12:54:04,352 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 142 states. [2018-11-23 12:54:05,724 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 142 to 118. [2018-11-23 12:54:05,724 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:54:05,724 INFO L82 GeneralOperation]: Start isEquivalent. First operand 142 states. Second operand 118 states. [2018-11-23 12:54:05,725 INFO L74 IsIncluded]: Start isIncluded. First operand 142 states. Second operand 118 states. [2018-11-23 12:54:05,725 INFO L87 Difference]: Start difference. First operand 142 states. Second operand 118 states. [2018-11-23 12:54:05,732 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:05,732 INFO L93 Difference]: Finished difference Result 142 states and 200 transitions. [2018-11-23 12:54:05,732 INFO L276 IsEmpty]: Start isEmpty. Operand 142 states and 200 transitions. [2018-11-23 12:54:05,733 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:54:05,733 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:54:05,733 INFO L74 IsIncluded]: Start isIncluded. First operand 118 states. Second operand 142 states. [2018-11-23 12:54:05,734 INFO L87 Difference]: Start difference. First operand 118 states. Second operand 142 states. [2018-11-23 12:54:05,738 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:05,739 INFO L93 Difference]: Finished difference Result 142 states and 200 transitions. [2018-11-23 12:54:05,739 INFO L276 IsEmpty]: Start isEmpty. Operand 142 states and 200 transitions. [2018-11-23 12:54:05,740 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:54:05,740 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:54:05,740 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:54:05,740 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:54:05,740 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 118 states. [2018-11-23 12:54:05,744 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 118 states to 118 states and 158 transitions. [2018-11-23 12:54:05,744 INFO L78 Accepts]: Start accepts. Automaton has 118 states and 158 transitions. Word has length 49 [2018-11-23 12:54:05,744 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:54:05,744 INFO L480 AbstractCegarLoop]: Abstraction has 118 states and 158 transitions. [2018-11-23 12:54:05,744 INFO L481 AbstractCegarLoop]: Interpolant automaton has 20 states. [2018-11-23 12:54:05,744 INFO L276 IsEmpty]: Start isEmpty. Operand 118 states and 158 transitions. [2018-11-23 12:54:05,745 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 63 [2018-11-23 12:54:05,745 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:54:05,746 INFO L402 BasicCegarLoop]: trace histogram [5, 5, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:54:05,746 INFO L423 AbstractCegarLoop]: === Iteration 11 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:54:05,746 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:54:05,746 INFO L82 PathProgramCache]: Analyzing trace with hash -970274759, now seen corresponding path program 1 times [2018-11-23 12:54:05,746 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:54:05,746 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:54:05,747 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:54:05,748 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:54:05,748 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:54:05,771 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:06,162 WARN L180 SmtUtils]: Spent 109.00 ms on a formula simplification that was a NOOP. DAG size: 9 [2018-11-23 12:54:06,807 INFO L256 TraceCheckUtils]: 0: Hoare triple {6257#true} call ULTIMATE.init(); {6257#true} is VALID [2018-11-23 12:54:06,808 INFO L273 TraceCheckUtils]: 1: Hoare triple {6257#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {6257#true} is VALID [2018-11-23 12:54:06,808 INFO L273 TraceCheckUtils]: 2: Hoare triple {6257#true} assume true; {6257#true} is VALID [2018-11-23 12:54:06,808 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {6257#true} {6257#true} #102#return; {6257#true} is VALID [2018-11-23 12:54:06,808 INFO L256 TraceCheckUtils]: 4: Hoare triple {6257#true} call #t~ret23 := main(); {6257#true} is VALID [2018-11-23 12:54:06,809 INFO L273 TraceCheckUtils]: 5: Hoare triple {6257#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {6259#(and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:54:06,811 INFO L273 TraceCheckUtils]: 6: Hoare triple {6259#(and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| 0))} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {6260#(and (= main_~tail~0.base |main_~#list~0.base|) (= main_~n~0.offset 0) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| main_~n~0.offset) (or (= (select |#valid| main_~n~0.base) 1) (= main_~n~0.base main_~tail~0.base)))} is VALID [2018-11-23 12:54:06,812 INFO L273 TraceCheckUtils]: 7: Hoare triple {6260#(and (= main_~tail~0.base |main_~#list~0.base|) (= main_~n~0.offset 0) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| main_~n~0.offset) (or (= (select |#valid| main_~n~0.base) 1) (= main_~n~0.base main_~tail~0.base)))} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {6261#(and (= main_~tail~0.base |main_~#list~0.base|) (= main_~n~0.offset 0) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| main_~n~0.offset) (or (and (= (select |#valid| main_~n~0.base) 1) (not (= 0 (select (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset)))) (= main_~n~0.base main_~tail~0.base)))} is VALID [2018-11-23 12:54:06,812 INFO L273 TraceCheckUtils]: 8: Hoare triple {6261#(and (= main_~tail~0.base |main_~#list~0.base|) (= main_~n~0.offset 0) (not (= 0 main_~tail~0.base)) (= |main_~#list~0.offset| main_~n~0.offset) (or (and (= (select |#valid| main_~n~0.base) 1) (not (= 0 (select (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset)))) (= main_~n~0.base main_~tail~0.base)))} assume 0 != #t~nondet18 % 256;havoc #t~nondet18;~x~0.base, ~x~0.offset := ~n~0.base, ~n~0.offset; {6262#(and (= |main_~#list~0.offset| main_~x~0.offset) (or (and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (not (= 0 main_~tail~0.base)) (= main_~x~0.offset 0) (= (select |#valid| main_~x~0.base) 1)) (= main_~x~0.base |main_~#list~0.base|)))} is VALID [2018-11-23 12:54:06,814 INFO L273 TraceCheckUtils]: 9: Hoare triple {6262#(and (= |main_~#list~0.offset| main_~x~0.offset) (or (and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (not (= 0 main_~tail~0.base)) (= main_~x~0.offset 0) (= (select |#valid| main_~x~0.base) 1)) (= main_~x~0.base |main_~#list~0.base|)))} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {6263#(and (= |main_~#list~0.offset| main_~x~0.offset) (or (and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 (select (select (store (store |#memory_$Pointer$.base| main_~n~0.base (store (store (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset main_~tail~0.base) (+ main_~n~0.offset 4) 0)) main_~tail~0.base (store (select (store |#memory_$Pointer$.base| main_~n~0.base (store (store (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset main_~tail~0.base) (+ main_~n~0.offset 4) 0)) main_~tail~0.base) (+ main_~tail~0.offset 4) main_~n~0.base)) main_~x~0.base) main_~x~0.offset))) (not (= 0 main_~tail~0.base)) (= main_~x~0.offset 0)) (= main_~x~0.base |main_~#list~0.base|)))} is VALID [2018-11-23 12:54:06,833 INFO L273 TraceCheckUtils]: 10: Hoare triple {6263#(and (= |main_~#list~0.offset| main_~x~0.offset) (or (and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 (select (select (store (store |#memory_$Pointer$.base| main_~n~0.base (store (store (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset main_~tail~0.base) (+ main_~n~0.offset 4) 0)) main_~tail~0.base (store (select (store |#memory_$Pointer$.base| main_~n~0.base (store (store (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset main_~tail~0.base) (+ main_~n~0.offset 4) 0)) main_~tail~0.base) (+ main_~tail~0.offset 4) main_~n~0.base)) main_~x~0.base) main_~x~0.offset))) (not (= 0 main_~tail~0.base)) (= main_~x~0.offset 0)) (= main_~x~0.base |main_~#list~0.base|)))} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {6264#(and (or (= main_~x~0.base |main_~#list~0.base|) (and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (not (= 0 main_~tail~0.base)) (= main_~x~0.offset 0))) (= |main_~#list~0.offset| main_~x~0.offset))} is VALID [2018-11-23 12:54:06,835 INFO L273 TraceCheckUtils]: 11: Hoare triple {6264#(and (or (= main_~x~0.base |main_~#list~0.base|) (and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (not (= 0 main_~tail~0.base)) (= main_~x~0.offset 0))) (= |main_~#list~0.offset| main_~x~0.offset))} assume !(0 != #t~nondet18 % 256);havoc #t~nondet18; {6264#(and (or (= main_~x~0.base |main_~#list~0.base|) (and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (not (= 0 main_~tail~0.base)) (= main_~x~0.offset 0))) (= |main_~#list~0.offset| main_~x~0.offset))} is VALID [2018-11-23 12:54:06,836 INFO L273 TraceCheckUtils]: 12: Hoare triple {6264#(and (or (= main_~x~0.base |main_~#list~0.base|) (and (= main_~tail~0.base |main_~#list~0.base|) (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (not (= 0 main_~tail~0.base)) (= main_~x~0.offset 0))) (= |main_~#list~0.offset| main_~x~0.offset))} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {6265#(and (or (not (= 0 (select (select (store (store |#memory_$Pointer$.base| main_~n~0.base (store (store (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset main_~tail~0.base) (+ main_~n~0.offset 4) 0)) main_~tail~0.base (store (select (store |#memory_$Pointer$.base| main_~n~0.base (store (store (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset main_~tail~0.base) (+ main_~n~0.offset 4) 0)) main_~tail~0.base) (+ main_~tail~0.offset 4) main_~n~0.base)) main_~x~0.base) main_~x~0.offset))) (= main_~x~0.base |main_~#list~0.base|)) (= |main_~#list~0.offset| main_~x~0.offset))} is VALID [2018-11-23 12:54:06,837 INFO L273 TraceCheckUtils]: 13: Hoare triple {6265#(and (or (not (= 0 (select (select (store (store |#memory_$Pointer$.base| main_~n~0.base (store (store (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset main_~tail~0.base) (+ main_~n~0.offset 4) 0)) main_~tail~0.base (store (select (store |#memory_$Pointer$.base| main_~n~0.base (store (store (select |#memory_$Pointer$.base| main_~n~0.base) main_~n~0.offset main_~tail~0.base) (+ main_~n~0.offset 4) 0)) main_~tail~0.base) (+ main_~tail~0.offset 4) main_~n~0.base)) main_~x~0.base) main_~x~0.offset))) (= main_~x~0.base |main_~#list~0.base|)) (= |main_~#list~0.offset| main_~x~0.offset))} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {6266#(and (or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (= main_~x~0.base |main_~#list~0.base|)) (= |main_~#list~0.offset| main_~x~0.offset))} is VALID [2018-11-23 12:54:06,838 INFO L273 TraceCheckUtils]: 14: Hoare triple {6266#(and (or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (= main_~x~0.base |main_~#list~0.base|)) (= |main_~#list~0.offset| main_~x~0.offset))} assume !(0 != #t~nondet18 % 256);havoc #t~nondet18; {6266#(and (or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (= main_~x~0.base |main_~#list~0.base|)) (= |main_~#list~0.offset| main_~x~0.offset))} is VALID [2018-11-23 12:54:06,839 INFO L273 TraceCheckUtils]: 15: Hoare triple {6266#(and (or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (= main_~x~0.base |main_~#list~0.base|)) (= |main_~#list~0.offset| main_~x~0.offset))} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {6266#(and (or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (= main_~x~0.base |main_~#list~0.base|)) (= |main_~#list~0.offset| main_~x~0.offset))} is VALID [2018-11-23 12:54:06,839 INFO L256 TraceCheckUtils]: 16: Hoare triple {6266#(and (or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (= main_~x~0.base |main_~#list~0.base|)) (= |main_~#list~0.offset| main_~x~0.offset))} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {6257#true} is VALID [2018-11-23 12:54:06,839 INFO L273 TraceCheckUtils]: 17: Hoare triple {6257#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {6267#(and (= is_list_containing_x_~x.offset |is_list_containing_x_#in~x.offset|) (= is_list_containing_x_~l.offset |is_list_containing_x_#in~l.offset|) (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|))} is VALID [2018-11-23 12:54:06,840 INFO L273 TraceCheckUtils]: 18: Hoare triple {6267#(and (= is_list_containing_x_~x.offset |is_list_containing_x_#in~x.offset|) (= is_list_containing_x_~l.offset |is_list_containing_x_#in~l.offset|) (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|))} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6268#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:54:06,841 INFO L273 TraceCheckUtils]: 19: Hoare triple {6268#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} assume #t~mem13.base != 0 || #t~mem13.offset != 0;havoc #t~mem13.base, #t~mem13.offset;call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6268#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:54:06,841 INFO L256 TraceCheckUtils]: 20: Hoare triple {6268#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} call #t~ret15 := is_list_containing_x(#t~mem14.base, #t~mem14.offset, ~x.base, ~x.offset); {6257#true} is VALID [2018-11-23 12:54:06,841 INFO L273 TraceCheckUtils]: 21: Hoare triple {6257#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {6257#true} is VALID [2018-11-23 12:54:06,842 INFO L273 TraceCheckUtils]: 22: Hoare triple {6257#true} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6257#true} is VALID [2018-11-23 12:54:06,842 INFO L273 TraceCheckUtils]: 23: Hoare triple {6257#true} assume #t~mem13.base != 0 || #t~mem13.offset != 0;havoc #t~mem13.base, #t~mem13.offset;call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6257#true} is VALID [2018-11-23 12:54:06,842 INFO L256 TraceCheckUtils]: 24: Hoare triple {6257#true} call #t~ret15 := is_list_containing_x(#t~mem14.base, #t~mem14.offset, ~x.base, ~x.offset); {6257#true} is VALID [2018-11-23 12:54:06,842 INFO L273 TraceCheckUtils]: 25: Hoare triple {6257#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {6257#true} is VALID [2018-11-23 12:54:06,842 INFO L273 TraceCheckUtils]: 26: Hoare triple {6257#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {6257#true} is VALID [2018-11-23 12:54:06,843 INFO L273 TraceCheckUtils]: 27: Hoare triple {6257#true} assume true; {6257#true} is VALID [2018-11-23 12:54:06,843 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {6257#true} {6257#true} #120#return; {6257#true} is VALID [2018-11-23 12:54:06,843 INFO L273 TraceCheckUtils]: 29: Hoare triple {6257#true} #res := #t~ret15;havoc #t~mem14.base, #t~mem14.offset;havoc #t~ret15; {6257#true} is VALID [2018-11-23 12:54:06,843 INFO L273 TraceCheckUtils]: 30: Hoare triple {6257#true} assume true; {6257#true} is VALID [2018-11-23 12:54:06,844 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {6257#true} {6268#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} #120#return; {6268#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:54:06,845 INFO L273 TraceCheckUtils]: 32: Hoare triple {6268#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} #res := #t~ret15;havoc #t~mem14.base, #t~mem14.offset;havoc #t~ret15; {6268#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:54:06,845 INFO L273 TraceCheckUtils]: 33: Hoare triple {6268#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} assume true; {6268#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:54:06,846 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {6268#(or (not (= |is_list_containing_x_#in~x.offset| |is_list_containing_x_#in~l.offset|)) (not (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|)))} {6266#(and (or (not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset))) (= main_~x~0.base |main_~#list~0.base|)) (= |main_~#list~0.offset| main_~x~0.offset))} #106#return; {6269#(not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)))} is VALID [2018-11-23 12:54:06,847 INFO L273 TraceCheckUtils]: 35: Hoare triple {6269#(not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)))} assume 0 != #t~ret19 % 256;havoc #t~ret19; {6269#(not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)))} is VALID [2018-11-23 12:54:06,847 INFO L256 TraceCheckUtils]: 36: Hoare triple {6269#(not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)))} call remove(~x~0.base, ~x~0.offset); {6270#(= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)} is VALID [2018-11-23 12:54:06,848 INFO L273 TraceCheckUtils]: 37: Hoare triple {6270#(= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {6271#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (= (select |#memory_$Pointer$.base| remove_~x.base) (select |old(#memory_$Pointer$.base)| remove_~x.base)))} is VALID [2018-11-23 12:54:06,848 INFO L273 TraceCheckUtils]: 38: Hoare triple {6271#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (= (select |#memory_$Pointer$.base| remove_~x.base) (select |old(#memory_$Pointer$.base)| remove_~x.base)))} assume !(#t~mem3.base != 0 || #t~mem3.offset != 0);havoc #t~mem3.base, #t~mem3.offset; {6271#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (= (select |#memory_$Pointer$.base| remove_~x.base) (select |old(#memory_$Pointer$.base)| remove_~x.base)))} is VALID [2018-11-23 12:54:06,849 INFO L273 TraceCheckUtils]: 39: Hoare triple {6271#(and (= remove_~x.base |remove_#in~x.base|) (= remove_~x.offset |remove_#in~x.offset|) (= (select |#memory_$Pointer$.base| remove_~x.base) (select |old(#memory_$Pointer$.base)| remove_~x.base)))} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {6272#(= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|) |remove_#t~mem6.base|)} is VALID [2018-11-23 12:54:06,850 INFO L273 TraceCheckUtils]: 40: Hoare triple {6272#(= (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|) |remove_#t~mem6.base|)} assume !(#t~mem6.base != 0 || #t~mem6.offset != 0);havoc #t~mem6.base, #t~mem6.offset; {6273#(= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))} is VALID [2018-11-23 12:54:06,851 INFO L273 TraceCheckUtils]: 41: Hoare triple {6273#(= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))} assume true; {6273#(= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))} is VALID [2018-11-23 12:54:06,852 INFO L268 TraceCheckUtils]: 42: Hoare quadruple {6273#(= 0 (select (select |old(#memory_$Pointer$.base)| |remove_#in~x.base|) |remove_#in~x.offset|))} {6269#(not (= 0 (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset)))} #108#return; {6258#false} is VALID [2018-11-23 12:54:06,852 INFO L273 TraceCheckUtils]: 43: Hoare triple {6258#false} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {6258#false} is VALID [2018-11-23 12:54:06,852 INFO L273 TraceCheckUtils]: 44: Hoare triple {6258#false} assume !#t~short21; {6258#false} is VALID [2018-11-23 12:54:06,852 INFO L256 TraceCheckUtils]: 45: Hoare triple {6258#false} call #t~ret20 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {6257#true} is VALID [2018-11-23 12:54:06,852 INFO L273 TraceCheckUtils]: 46: Hoare triple {6257#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {6257#true} is VALID [2018-11-23 12:54:06,853 INFO L273 TraceCheckUtils]: 47: Hoare triple {6257#true} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6257#true} is VALID [2018-11-23 12:54:06,853 INFO L273 TraceCheckUtils]: 48: Hoare triple {6257#true} assume #t~mem13.base != 0 || #t~mem13.offset != 0;havoc #t~mem13.base, #t~mem13.offset;call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6257#true} is VALID [2018-11-23 12:54:06,853 INFO L256 TraceCheckUtils]: 49: Hoare triple {6257#true} call #t~ret15 := is_list_containing_x(#t~mem14.base, #t~mem14.offset, ~x.base, ~x.offset); {6257#true} is VALID [2018-11-23 12:54:06,853 INFO L273 TraceCheckUtils]: 50: Hoare triple {6257#true} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {6257#true} is VALID [2018-11-23 12:54:06,854 INFO L273 TraceCheckUtils]: 51: Hoare triple {6257#true} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {6257#true} is VALID [2018-11-23 12:54:06,854 INFO L273 TraceCheckUtils]: 52: Hoare triple {6257#true} assume true; {6257#true} is VALID [2018-11-23 12:54:06,854 INFO L268 TraceCheckUtils]: 53: Hoare quadruple {6257#true} {6257#true} #120#return; {6257#true} is VALID [2018-11-23 12:54:06,854 INFO L273 TraceCheckUtils]: 54: Hoare triple {6257#true} #res := #t~ret15;havoc #t~mem14.base, #t~mem14.offset;havoc #t~ret15; {6257#true} is VALID [2018-11-23 12:54:06,854 INFO L273 TraceCheckUtils]: 55: Hoare triple {6257#true} assume true; {6257#true} is VALID [2018-11-23 12:54:06,855 INFO L268 TraceCheckUtils]: 56: Hoare quadruple {6257#true} {6258#false} #110#return; {6258#false} is VALID [2018-11-23 12:54:06,855 INFO L273 TraceCheckUtils]: 57: Hoare triple {6258#false} #t~short21 := 0 == #t~ret20 % 256; {6258#false} is VALID [2018-11-23 12:54:06,855 INFO L256 TraceCheckUtils]: 58: Hoare triple {6258#false} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {6258#false} is VALID [2018-11-23 12:54:06,855 INFO L273 TraceCheckUtils]: 59: Hoare triple {6258#false} ~cond := #in~cond; {6258#false} is VALID [2018-11-23 12:54:06,855 INFO L273 TraceCheckUtils]: 60: Hoare triple {6258#false} assume 0 == ~cond; {6258#false} is VALID [2018-11-23 12:54:06,856 INFO L273 TraceCheckUtils]: 61: Hoare triple {6258#false} assume !false; {6258#false} is VALID [2018-11-23 12:54:06,863 INFO L134 CoverageAnalysis]: Checked inductivity of 61 backedges. 5 proven. 25 refuted. 0 times theorem prover too weak. 31 trivial. 0 not checked. [2018-11-23 12:54:06,863 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:54:06,863 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:54:06,872 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:54:06,924 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:06,965 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:06,968 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:54:07,257 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 2 new quantified variables, introduced 0 case distinctions, treesize of input 34 treesize of output 32 [2018-11-23 12:54:07,264 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 29 treesize of output 28 [2018-11-23 12:54:07,270 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:54:07,271 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 36 [2018-11-23 12:54:07,274 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-23 12:54:07,283 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:07,301 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:54:07,302 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 29 [2018-11-23 12:54:07,315 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:54:07,316 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 2 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 29 treesize of output 32 [2018-11-23 12:54:07,323 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2018-11-23 12:54:07,330 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:07,337 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:07,346 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 29 treesize of output 29 [2018-11-23 12:54:07,353 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 14 [2018-11-23 12:54:07,365 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:54:07,365 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 23 [2018-11-23 12:54:07,368 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2018-11-23 12:54:07,377 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:07,400 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 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 28 treesize of output 29 [2018-11-23 12:54:07,405 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 10 treesize of output 9 [2018-11-23 12:54:07,407 INFO L267 ElimStorePlain]: Start of recursive call 11: End of recursive call: and 1 xjuncts. [2018-11-23 12:54:07,417 INFO L267 ElimStorePlain]: Start of recursive call 10: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:07,427 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:07,456 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 12:54:07,457 INFO L202 ElimStorePlain]: Needed 11 recursive calls to eliminate 2 variables, input treesize:46, output treesize:65 [2018-11-23 12:54:11,863 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:54:11,864 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_$Pointer$.base_30|, main_~n~0.base]. (and (= |#memory_$Pointer$.base| (let ((.cse0 (store |v_#memory_$Pointer$.base_30| main_~n~0.base (store (store (select |v_#memory_$Pointer$.base_30| main_~n~0.base) 0 |main_~#list~0.base|) 4 0)))) (store .cse0 |main_~#list~0.base| (store (select .cse0 |main_~#list~0.base|) (+ |main_~#list~0.offset| 4) main_~n~0.base)))) (= main_~x~0.offset 0) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.offset| 0)) [2018-11-23 12:54:11,864 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse5 (select |#memory_$Pointer$.base| |main_~#list~0.base|))) (let ((.cse4 (select .cse5 (+ |main_~#list~0.offset| 4))) (.cse1 (= main_~x~0.offset 0)) (.cse2 (not (= |main_~#list~0.base| 0))) (.cse3 (= |main_~#list~0.offset| 0))) (or (let ((.cse0 (select |#memory_$Pointer$.base| .cse4))) (and (= |main_~#list~0.base| (select .cse0 0)) .cse1 .cse2 .cse3 (= (select .cse0 4) 0))) (and (= |main_~#list~0.base| .cse4) .cse1 .cse2 (= |main_~#list~0.base| (select .cse5 0)) .cse3)))) [2018-11-23 12:54:17,093 WARN L180 SmtUtils]: Spent 121.00 ms on a formula simplification. DAG size of input: 38 DAG size of output: 36 [2018-11-23 12:54:18,538 INFO L256 TraceCheckUtils]: 0: Hoare triple {6257#true} call ULTIMATE.init(); {6257#true} is VALID [2018-11-23 12:54:18,539 INFO L273 TraceCheckUtils]: 1: Hoare triple {6257#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {6257#true} is VALID [2018-11-23 12:54:18,539 INFO L273 TraceCheckUtils]: 2: Hoare triple {6257#true} assume true; {6257#true} is VALID [2018-11-23 12:54:18,539 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {6257#true} {6257#true} #102#return; {6257#true} is VALID [2018-11-23 12:54:18,539 INFO L256 TraceCheckUtils]: 4: Hoare triple {6257#true} call #t~ret23 := main(); {6257#true} is VALID [2018-11-23 12:54:18,540 INFO L273 TraceCheckUtils]: 5: Hoare triple {6257#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(8);call write~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(0, 0, ~#list~0.base, 4 + ~#list~0.offset, 4);~x~0.base, ~x~0.offset := ~#list~0.base, ~#list~0.offset;~tail~0.base, ~tail~0.offset := ~#list~0.base, ~#list~0.offset; {6292#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:54:18,540 INFO L273 TraceCheckUtils]: 6: Hoare triple {6292#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.offset| 0))} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {6296#(and (= 0 main_~n~0.offset) (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:54:18,541 INFO L273 TraceCheckUtils]: 7: Hoare triple {6296#(and (= 0 main_~n~0.offset) (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.offset| 0))} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {6296#(and (= 0 main_~n~0.offset) (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:54:18,542 INFO L273 TraceCheckUtils]: 8: Hoare triple {6296#(and (= 0 main_~n~0.offset) (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.offset| 0))} assume 0 != #t~nondet18 % 256;havoc #t~nondet18;~x~0.base, ~x~0.offset := ~n~0.base, ~n~0.offset; {6303#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:54:18,542 INFO L273 TraceCheckUtils]: 9: Hoare triple {6303#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0))} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {6303#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:54:18,543 INFO L273 TraceCheckUtils]: 10: Hoare triple {6303#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0))} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {6303#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:54:18,544 INFO L273 TraceCheckUtils]: 11: Hoare triple {6303#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0))} assume !(0 != #t~nondet18 % 256);havoc #t~nondet18; {6303#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:54:18,545 INFO L273 TraceCheckUtils]: 12: Hoare triple {6303#(and (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0))} assume !!(0 != #t~nondet16 % 256);havoc #t~nondet16;call #t~malloc17.base, #t~malloc17.offset := #Ultimate.alloc(8);~n~0.base, ~n~0.offset := #t~malloc17.base, #t~malloc17.offset; {6316#(and (= 0 main_~n~0.offset) (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 12:54:18,547 INFO L273 TraceCheckUtils]: 13: Hoare triple {6316#(and (= 0 main_~n~0.offset) (= |main_~#list~0.base| main_~tail~0.base) (= |main_~#list~0.offset| main_~tail~0.offset) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0))} assume !(~n~0.base == 0 && ~n~0.offset == 0);call write~$Pointer$(~tail~0.base, ~tail~0.offset, ~n~0.base, ~n~0.offset, 4);call write~$Pointer$(0, 0, ~n~0.base, 4 + ~n~0.offset, 4);call write~$Pointer$(~n~0.base, ~n~0.offset, ~tail~0.base, 4 + ~tail~0.offset, 4); {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} is VALID [2018-11-23 12:54:18,548 INFO L273 TraceCheckUtils]: 14: Hoare triple {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} assume !(0 != #t~nondet18 % 256);havoc #t~nondet18; {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} is VALID [2018-11-23 12:54:18,548 INFO L273 TraceCheckUtils]: 15: Hoare triple {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} assume !(0 != #t~nondet16 % 256);havoc #t~nondet16; {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} is VALID [2018-11-23 12:54:18,552 INFO L256 TraceCheckUtils]: 16: Hoare triple {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} call #t~ret19 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,552 INFO L273 TraceCheckUtils]: 17: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,553 INFO L273 TraceCheckUtils]: 18: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,553 INFO L273 TraceCheckUtils]: 19: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} assume #t~mem13.base != 0 || #t~mem13.offset != 0;havoc #t~mem13.base, #t~mem13.offset;call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,554 INFO L256 TraceCheckUtils]: 20: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} call #t~ret15 := is_list_containing_x(#t~mem14.base, #t~mem14.offset, ~x.base, ~x.offset); {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,554 INFO L273 TraceCheckUtils]: 21: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,555 INFO L273 TraceCheckUtils]: 22: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,555 INFO L273 TraceCheckUtils]: 23: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} assume #t~mem13.base != 0 || #t~mem13.offset != 0;havoc #t~mem13.base, #t~mem13.offset;call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,556 INFO L256 TraceCheckUtils]: 24: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} call #t~ret15 := is_list_containing_x(#t~mem14.base, #t~mem14.offset, ~x.base, ~x.offset); {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,556 INFO L273 TraceCheckUtils]: 25: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,557 INFO L273 TraceCheckUtils]: 26: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,558 INFO L273 TraceCheckUtils]: 27: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} assume true; {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,559 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} #120#return; {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,560 INFO L273 TraceCheckUtils]: 29: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} #res := #t~ret15;havoc #t~mem14.base, #t~mem14.offset;havoc #t~ret15; {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,560 INFO L273 TraceCheckUtils]: 30: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} assume true; {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,562 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} #120#return; {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,562 INFO L273 TraceCheckUtils]: 32: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} #res := #t~ret15;havoc #t~mem14.base, #t~mem14.offset;havoc #t~ret15; {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,563 INFO L273 TraceCheckUtils]: 33: Hoare triple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} assume true; {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} is VALID [2018-11-23 12:54:18,564 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {6330#(or (exists ((|v_main_~#list~0.base_BEFORE_CALL_6| Int)) (and (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 4) |v_main_~#list~0.base_BEFORE_CALL_6|) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_6|)) (= (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_6|) 0) |v_main_~#list~0.base_BEFORE_CALL_6|))) (exists ((v_prenex_7 Int)) (and (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 4) 0) (not (= 0 v_prenex_7)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_7) 4)) 0) v_prenex_7))))} {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} #106#return; {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} is VALID [2018-11-23 12:54:18,565 INFO L273 TraceCheckUtils]: 35: Hoare triple {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} assume 0 != #t~ret19 % 256;havoc #t~ret19; {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} is VALID [2018-11-23 12:54:18,567 INFO L256 TraceCheckUtils]: 36: Hoare triple {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} call remove(~x~0.base, ~x~0.offset); {6270#(= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)} is VALID [2018-11-23 12:54:18,568 INFO L273 TraceCheckUtils]: 37: Hoare triple {6270#(= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)} ~x.base, ~x.offset := #in~x.base, #in~x.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~x.base, 4 + ~x.offset, 4); {6394#(and (= |remove_#in~x.offset| remove_~x.offset) (= remove_~x.base |remove_#in~x.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:54:18,569 INFO L273 TraceCheckUtils]: 38: Hoare triple {6394#(and (= |remove_#in~x.offset| remove_~x.offset) (= remove_~x.base |remove_#in~x.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} assume !(#t~mem3.base != 0 || #t~mem3.offset != 0);havoc #t~mem3.base, #t~mem3.offset; {6394#(and (= |remove_#in~x.offset| remove_~x.offset) (= remove_~x.base |remove_#in~x.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:54:18,570 INFO L273 TraceCheckUtils]: 39: Hoare triple {6394#(and (= |remove_#in~x.offset| remove_~x.offset) (= remove_~x.base |remove_#in~x.base|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~x.base, ~x.offset, 4); {6401#(and (= |remove_#t~mem6.base| (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} is VALID [2018-11-23 12:54:18,570 INFO L273 TraceCheckUtils]: 40: Hoare triple {6401#(and (= |remove_#t~mem6.base| (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|))} assume !(#t~mem6.base != 0 || #t~mem6.offset != 0);havoc #t~mem6.base, #t~mem6.offset; {6405#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)))} is VALID [2018-11-23 12:54:18,571 INFO L273 TraceCheckUtils]: 41: Hoare triple {6405#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)))} assume true; {6405#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)))} is VALID [2018-11-23 12:54:18,574 INFO L268 TraceCheckUtils]: 42: Hoare quadruple {6405#(and (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= 0 (select (select |#memory_$Pointer$.base| |remove_#in~x.base|) |remove_#in~x.offset|)))} {6320#(or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} #108#return; {6412#(and (or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0))) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset) 0))} is VALID [2018-11-23 12:54:18,576 INFO L273 TraceCheckUtils]: 43: Hoare triple {6412#(and (or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= main_~x~0.offset 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0))) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) main_~x~0.offset) 0))} #t~short21 := ~#list~0.base == ~x~0.base && ~#list~0.offset == ~x~0.offset; {6416#(or (and (not (= |main_~#list~0.base| main_~x~0.base)) (or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) 0) 0) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) 0) 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0))) (not |main_#t~short21|)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) |main_~#list~0.offset|) 0) |main_#t~short21| (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} is VALID [2018-11-23 12:54:18,577 INFO L273 TraceCheckUtils]: 44: Hoare triple {6416#(or (and (not (= |main_~#list~0.base| main_~x~0.base)) (or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) 0) 0) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) 0) 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0))) (not |main_#t~short21|)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.base| main_~x~0.base) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) |main_~#list~0.offset|) 0) |main_#t~short21| (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0)))} assume !#t~short21; {6420#(and (not (= |main_~#list~0.base| main_~x~0.base)) (or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) 0) 0) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) 0) 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0))))} is VALID [2018-11-23 12:54:18,581 INFO L256 TraceCheckUtils]: 45: Hoare triple {6420#(and (not (= |main_~#list~0.base| main_~x~0.base)) (or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) 0) 0) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) 0) 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0))))} call #t~ret20 := is_list_containing_x(~#list~0.base, ~#list~0.offset, ~x~0.base, ~x~0.offset); {6424#(or (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4)))))} is VALID [2018-11-23 12:54:18,584 INFO L273 TraceCheckUtils]: 46: Hoare triple {6424#(or (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4)))))} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {6428#(or (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (= |is_list_containing_x_#in~l.offset| is_list_containing_x_~l.offset)) (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (= |is_list_containing_x_#in~l.offset| is_list_containing_x_~l.offset) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))))} is VALID [2018-11-23 12:54:18,585 INFO L273 TraceCheckUtils]: 47: Hoare triple {6428#(or (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (= |is_list_containing_x_#in~l.offset| is_list_containing_x_~l.offset)) (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (= |is_list_containing_x_#in~l.offset| is_list_containing_x_~l.offset) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))))} assume !(~l.base == ~x.base && ~l.offset == ~x.offset);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6428#(or (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (= |is_list_containing_x_#in~l.offset| is_list_containing_x_~l.offset)) (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (= |is_list_containing_x_#in~l.offset| is_list_containing_x_~l.offset) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))))} is VALID [2018-11-23 12:54:18,588 INFO L273 TraceCheckUtils]: 48: Hoare triple {6428#(or (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (= |is_list_containing_x_#in~l.offset| is_list_containing_x_~l.offset)) (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (= |is_list_containing_x_#in~l.offset| is_list_containing_x_~l.offset) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))))} assume #t~mem13.base != 0 || #t~mem13.offset != 0;havoc #t~mem13.base, #t~mem13.offset;call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~l.base, 4 + ~l.offset, 4); {6435#(or (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#t~mem14.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|)) (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#t~mem14.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))))} is VALID [2018-11-23 12:54:18,591 INFO L256 TraceCheckUtils]: 49: Hoare triple {6435#(or (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#t~mem14.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|)) (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#t~mem14.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))))} call #t~ret15 := is_list_containing_x(#t~mem14.base, #t~mem14.offset, ~x.base, ~x.offset); {6424#(or (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4)))))} is VALID [2018-11-23 12:54:18,592 INFO L273 TraceCheckUtils]: 50: Hoare triple {6424#(or (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4)))))} ~l.base, ~l.offset := #in~l.base, #in~l.offset;~x.base, ~x.offset := #in~x.base, #in~x.offset; {6442#(or (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))) (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|)))} is VALID [2018-11-23 12:54:18,594 INFO L273 TraceCheckUtils]: 51: Hoare triple {6442#(or (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))) (and (= is_list_containing_x_~l.base |is_list_containing_x_#in~l.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|)))} assume ~l.base == ~x.base && ~l.offset == ~x.offset;#res := 1; {6446#(or (and (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0))))) (and (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))))} is VALID [2018-11-23 12:54:18,595 INFO L273 TraceCheckUtils]: 52: Hoare triple {6446#(or (and (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0))))) (and (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))))} assume true; {6446#(or (and (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0))))) (and (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))))} is VALID [2018-11-23 12:54:18,600 INFO L268 TraceCheckUtils]: 53: Hoare quadruple {6446#(or (and (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0))))) (and (= |is_list_containing_x_#in~l.base| |is_list_containing_x_#in~x.base|) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))))} {6435#(or (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#t~mem14.base|) (exists ((v_prenex_8 Int) (v_prenex_9 Int)) (and (not (= 0 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_8) 4) v_prenex_8) (not (= v_prenex_9 v_prenex_8)) (= (select (select |#memory_$Pointer$.base| v_prenex_9) 0) 0) (= v_prenex_8 (select (select |#memory_$Pointer$.base| v_prenex_8) 0)))) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|)) (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#t~mem14.base|) (= is_list_containing_x_~x.base |is_list_containing_x_#in~x.base|) (exists ((|v_main_~#list~0.base_BEFORE_CALL_8| Int) (v_main_~x~0.base_BEFORE_CALL_6 Int)) (and (not (= v_main_~x~0.base_BEFORE_CALL_6 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= |v_main_~#list~0.base_BEFORE_CALL_8| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 0)) (= (select (select |#memory_$Pointer$.base| v_main_~x~0.base_BEFORE_CALL_6) 0) 0) (not (= 0 |v_main_~#list~0.base_BEFORE_CALL_8|)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |v_main_~#list~0.base_BEFORE_CALL_8|) 4)) 4))))))} #120#return; {6453#(or (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_15 Int) (v_prenex_14 Int)) (and (not (= 0 v_prenex_14)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 4)) (= (select (select |#memory_$Pointer$.base| v_prenex_15) 0) 0) (not (= v_prenex_15 v_prenex_14)) (= v_prenex_14 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 0))))) (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_11 Int) (v_prenex_10 Int)) (and (= (select (select |#memory_$Pointer$.base| v_prenex_10) 4) v_prenex_10) (not (= 0 v_prenex_10)) (= (select (select |#memory_$Pointer$.base| v_prenex_11) 0) 0) (= v_prenex_10 (select (select |#memory_$Pointer$.base| v_prenex_10) 0)) (not (= v_prenex_11 v_prenex_10))))))} is VALID [2018-11-23 12:54:18,601 INFO L273 TraceCheckUtils]: 54: Hoare triple {6453#(or (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_15 Int) (v_prenex_14 Int)) (and (not (= 0 v_prenex_14)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 4)) (= (select (select |#memory_$Pointer$.base| v_prenex_15) 0) 0) (not (= v_prenex_15 v_prenex_14)) (= v_prenex_14 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 0))))) (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_11 Int) (v_prenex_10 Int)) (and (= (select (select |#memory_$Pointer$.base| v_prenex_10) 4) v_prenex_10) (not (= 0 v_prenex_10)) (= (select (select |#memory_$Pointer$.base| v_prenex_11) 0) 0) (= v_prenex_10 (select (select |#memory_$Pointer$.base| v_prenex_10) 0)) (not (= v_prenex_11 v_prenex_10))))))} #res := #t~ret15;havoc #t~mem14.base, #t~mem14.offset;havoc #t~ret15; {6453#(or (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_15 Int) (v_prenex_14 Int)) (and (not (= 0 v_prenex_14)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 4)) (= (select (select |#memory_$Pointer$.base| v_prenex_15) 0) 0) (not (= v_prenex_15 v_prenex_14)) (= v_prenex_14 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 0))))) (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_11 Int) (v_prenex_10 Int)) (and (= (select (select |#memory_$Pointer$.base| v_prenex_10) 4) v_prenex_10) (not (= 0 v_prenex_10)) (= (select (select |#memory_$Pointer$.base| v_prenex_11) 0) 0) (= v_prenex_10 (select (select |#memory_$Pointer$.base| v_prenex_10) 0)) (not (= v_prenex_11 v_prenex_10))))))} is VALID [2018-11-23 12:54:18,601 INFO L273 TraceCheckUtils]: 55: Hoare triple {6453#(or (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_15 Int) (v_prenex_14 Int)) (and (not (= 0 v_prenex_14)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 4)) (= (select (select |#memory_$Pointer$.base| v_prenex_15) 0) 0) (not (= v_prenex_15 v_prenex_14)) (= v_prenex_14 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 0))))) (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_11 Int) (v_prenex_10 Int)) (and (= (select (select |#memory_$Pointer$.base| v_prenex_10) 4) v_prenex_10) (not (= 0 v_prenex_10)) (= (select (select |#memory_$Pointer$.base| v_prenex_11) 0) 0) (= v_prenex_10 (select (select |#memory_$Pointer$.base| v_prenex_10) 0)) (not (= v_prenex_11 v_prenex_10))))))} assume true; {6453#(or (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_15 Int) (v_prenex_14 Int)) (and (not (= 0 v_prenex_14)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 4)) (= (select (select |#memory_$Pointer$.base| v_prenex_15) 0) 0) (not (= v_prenex_15 v_prenex_14)) (= v_prenex_14 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 0))))) (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_11 Int) (v_prenex_10 Int)) (and (= (select (select |#memory_$Pointer$.base| v_prenex_10) 4) v_prenex_10) (not (= 0 v_prenex_10)) (= (select (select |#memory_$Pointer$.base| v_prenex_11) 0) 0) (= v_prenex_10 (select (select |#memory_$Pointer$.base| v_prenex_10) 0)) (not (= v_prenex_11 v_prenex_10))))))} is VALID [2018-11-23 12:54:18,604 INFO L268 TraceCheckUtils]: 56: Hoare quadruple {6453#(or (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_15 Int) (v_prenex_14 Int)) (and (not (= 0 v_prenex_14)) (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 4)) (= (select (select |#memory_$Pointer$.base| v_prenex_15) 0) 0) (not (= v_prenex_15 v_prenex_14)) (= v_prenex_14 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| v_prenex_14) 4)) 0))))) (and (= (select (select |#memory_$Pointer$.base| |is_list_containing_x_#in~l.base|) (+ |is_list_containing_x_#in~l.offset| 4)) |is_list_containing_x_#in~x.base|) (exists ((v_prenex_11 Int) (v_prenex_10 Int)) (and (= (select (select |#memory_$Pointer$.base| v_prenex_10) 4) v_prenex_10) (not (= 0 v_prenex_10)) (= (select (select |#memory_$Pointer$.base| v_prenex_11) 0) 0) (= v_prenex_10 (select (select |#memory_$Pointer$.base| v_prenex_10) 0)) (not (= v_prenex_11 v_prenex_10))))))} {6420#(and (not (= |main_~#list~0.base| main_~x~0.base)) (or (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) (not (= |main_~#list~0.base| 0)) (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) 0)) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) 0) 0) (= |main_~#list~0.offset| 0)) (and (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 0)) (not (= |main_~#list~0.base| 0)) (= (select (select |#memory_$Pointer$.base| main_~x~0.base) 0) 0) (= |main_~#list~0.offset| 0) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (+ |main_~#list~0.offset| 4))) 4) 0))))} #110#return; {6258#false} is VALID [2018-11-23 12:54:18,605 INFO L273 TraceCheckUtils]: 57: Hoare triple {6258#false} #t~short21 := 0 == #t~ret20 % 256; {6258#false} is VALID [2018-11-23 12:54:18,605 INFO L256 TraceCheckUtils]: 58: Hoare triple {6258#false} call __VERIFIER_assert((if #t~short21 then 1 else 0)); {6258#false} is VALID [2018-11-23 12:54:18,605 INFO L273 TraceCheckUtils]: 59: Hoare triple {6258#false} ~cond := #in~cond; {6258#false} is VALID [2018-11-23 12:54:18,605 INFO L273 TraceCheckUtils]: 60: Hoare triple {6258#false} assume 0 == ~cond; {6258#false} is VALID [2018-11-23 12:54:18,605 INFO L273 TraceCheckUtils]: 61: Hoare triple {6258#false} assume !false; {6258#false} is VALID [2018-11-23 12:54:18,633 INFO L134 CoverageAnalysis]: Checked inductivity of 61 backedges. 34 proven. 10 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2018-11-23 12:54:18,697 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:54:18,697 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 21] total 35 [2018-11-23 12:54:18,698 INFO L78 Accepts]: Start accepts. Automaton has 35 states. Word has length 62 [2018-11-23 12:54:18,698 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:54:18,699 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 35 states. [2018-11-23 12:54:18,959 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 93 edges. 93 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:54:18,959 INFO L459 AbstractCegarLoop]: Interpolant automaton has 35 states [2018-11-23 12:54:18,960 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2018-11-23 12:54:18,960 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=107, Invalid=1081, Unknown=2, NotChecked=0, Total=1190 [2018-11-23 12:54:18,961 INFO L87 Difference]: Start difference. First operand 118 states and 158 transitions. Second operand 35 states. [2018-11-23 12:54:30,885 WARN L180 SmtUtils]: Spent 118.00 ms on a formula simplification. DAG size of input: 48 DAG size of output: 43 [2018-11-23 12:54:37,460 WARN L180 SmtUtils]: Spent 154.00 ms on a formula simplification. DAG size of input: 73 DAG size of output: 61 [2018-11-23 12:54:37,993 WARN L180 SmtUtils]: Spent 124.00 ms on a formula simplification. DAG size of input: 69 DAG size of output: 48 [2018-11-23 12:54:39,122 WARN L180 SmtUtils]: Spent 983.00 ms on a formula simplification that was a NOOP. DAG size: 29 [2018-11-23 12:54:40,919 WARN L180 SmtUtils]: Spent 1.50 s on a formula simplification that was a NOOP. DAG size: 41 [2018-11-23 12:54:43,680 WARN L180 SmtUtils]: Spent 2.48 s on a formula simplification that was a NOOP. DAG size: 46 [2018-11-23 12:54:44,901 WARN L180 SmtUtils]: Spent 133.00 ms on a formula simplification. DAG size of input: 69 DAG size of output: 47 [2018-11-23 12:54:45,334 WARN L180 SmtUtils]: Spent 168.00 ms on a formula simplification. DAG size of input: 73 DAG size of output: 52 [2018-11-23 12:54:48,826 WARN L180 SmtUtils]: Spent 2.63 s on a formula simplification that was a NOOP. DAG size: 35 [2018-11-23 12:55:02,083 WARN L180 SmtUtils]: Spent 571.00 ms on a formula simplification that was a NOOP. DAG size: 38