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-data/hash_fun_true-unreach-call.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-61f4311 [2018-11-23 13:00:28,396 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 13:00:28,398 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 13:00:28,409 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 13:00:28,409 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 13:00:28,410 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 13:00:28,411 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 13:00:28,414 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 13:00:28,415 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 13:00:28,416 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 13:00:28,417 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 13:00:28,418 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 13:00:28,419 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 13:00:28,419 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 13:00:28,421 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 13:00:28,421 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 13:00:28,422 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 13:00:28,424 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 13:00:28,429 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 13:00:28,431 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 13:00:28,432 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 13:00:28,437 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 13:00:28,442 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 13:00:28,442 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 13:00:28,442 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 13:00:28,445 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 13:00:28,447 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 13:00:28,448 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 13:00:28,449 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 13:00:28,450 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 13:00:28,450 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 13:00:28,451 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 13:00:28,451 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 13:00:28,451 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 13:00:28,452 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 13:00:28,453 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 13:00:28,454 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 13:00:28,468 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 13:00:28,469 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 13:00:28,470 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 13:00:28,470 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 13:00:28,471 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 13:00:28,471 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 13:00:28,471 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 13:00:28,471 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 13:00:28,471 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 13:00:28,472 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 13:00:28,472 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 13:00:28,472 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 13:00:28,472 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 13:00:28,472 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 13:00:28,472 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 13:00:28,473 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 13:00:28,473 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 13:00:28,473 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 13:00:28,473 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 13:00:28,474 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 13:00:28,474 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 13:00:28,474 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 13:00:28,474 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 13:00:28,475 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 13:00:28,475 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 13:00:28,475 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 13:00:28,475 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 13:00:28,475 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-23 13:00:28,476 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 13:00:28,476 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 13:00:28,476 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-23 13:00:28,536 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 13:00:28,555 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 13:00:28,560 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 13:00:28,562 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 13:00:28,562 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 13:00:28,563 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/heap-data/hash_fun_true-unreach-call.i [2018-11-23 13:00:28,633 INFO L221 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/3c803afa8/926636ae42f24d1091f522a3b1159a82/FLAG301a5dc07 [2018-11-23 13:00:29,097 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 13:00:29,098 INFO L161 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/heap-data/hash_fun_true-unreach-call.i [2018-11-23 13:00:29,115 INFO L355 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/3c803afa8/926636ae42f24d1091f522a3b1159a82/FLAG301a5dc07 [2018-11-23 13:00:29,421 INFO L363 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/3c803afa8/926636ae42f24d1091f522a3b1159a82 [2018-11-23 13:00:29,431 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 13:00:29,433 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 13:00:29,435 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 13:00:29,435 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 13:00:29,442 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 13:00:29,444 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 01:00:29" (1/1) ... [2018-11-23 13:00:29,447 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@3a7bc8f8 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:29, skipping insertion in model container [2018-11-23 13:00:29,447 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 01:00:29" (1/1) ... [2018-11-23 13:00:29,458 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 13:00:29,514 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 13:00:29,963 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 13:00:29,984 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 13:00:30,050 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 13:00:30,126 INFO L195 MainTranslator]: Completed translation [2018-11-23 13:00:30,127 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30 WrapperNode [2018-11-23 13:00:30,127 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 13:00:30,128 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 13:00:30,128 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 13:00:30,129 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 13:00:30,139 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30" (1/1) ... [2018-11-23 13:00:30,236 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30" (1/1) ... [2018-11-23 13:00:30,247 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 13:00:30,248 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 13:00:30,248 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 13:00:30,248 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 13:00:30,256 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30" (1/1) ... [2018-11-23 13:00:30,256 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30" (1/1) ... [2018-11-23 13:00:30,260 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30" (1/1) ... [2018-11-23 13:00:30,260 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30" (1/1) ... [2018-11-23 13:00:30,272 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30" (1/1) ... [2018-11-23 13:00:30,278 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30" (1/1) ... [2018-11-23 13:00:30,280 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30" (1/1) ... [2018-11-23 13:00:30,285 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 13:00:30,285 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 13:00:30,285 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 13:00:30,285 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 13:00:30,286 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30" (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 13:00:30,341 INFO L130 BoogieDeclarations]: Found specification of procedure hash_fun [2018-11-23 13:00:30,341 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 13:00:30,341 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-23 13:00:30,342 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-23 13:00:30,342 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 13:00:30,342 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 13:00:30,342 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 13:00:30,342 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 13:00:30,343 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2018-11-23 13:00:30,343 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2018-11-23 13:00:30,343 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-23 13:00:30,343 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2018-11-23 13:00:30,343 INFO L130 BoogieDeclarations]: Found specification of procedure append_to_list [2018-11-23 13:00:30,343 INFO L138 BoogieDeclarations]: Found implementation of procedure append_to_list [2018-11-23 13:00:30,344 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 13:00:30,344 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 13:00:31,089 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 13:00:31,089 INFO L280 CfgBuilder]: Removed 2 assue(true) statements. [2018-11-23 13:00:31,089 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 01:00:31 BoogieIcfgContainer [2018-11-23 13:00:31,090 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 13:00:31,090 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 13:00:31,091 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 13:00:31,094 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 13:00:31,094 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 01:00:29" (1/3) ... [2018-11-23 13:00:31,095 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@33d63e99 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 01:00:31, skipping insertion in model container [2018-11-23 13:00:31,095 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:00:30" (2/3) ... [2018-11-23 13:00:31,096 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@33d63e99 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 01:00:31, skipping insertion in model container [2018-11-23 13:00:31,096 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 01:00:31" (3/3) ... [2018-11-23 13:00:31,098 INFO L112 eAbstractionObserver]: Analyzing ICFG hash_fun_true-unreach-call.i [2018-11-23 13:00:31,107 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 13:00:31,115 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 13:00:31,134 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 13:00:31,169 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 13:00:31,169 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 13:00:31,170 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 13:00:31,170 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 13:00:31,170 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 13:00:31,170 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 13:00:31,170 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 13:00:31,171 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 13:00:31,171 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 13:00:31,190 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states. [2018-11-23 13:00:31,197 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 13 [2018-11-23 13:00:31,197 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:00:31,198 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:00:31,201 INFO L423 AbstractCegarLoop]: === Iteration 1 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:00:31,207 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:00:31,207 INFO L82 PathProgramCache]: Analyzing trace with hash 1987897038, now seen corresponding path program 1 times [2018-11-23 13:00:31,209 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 13:00:31,210 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 13:00:31,269 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:31,269 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:00:31,269 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:31,310 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:31,383 INFO L256 TraceCheckUtils]: 0: Hoare triple {29#true} call ULTIMATE.init(); {29#true} is VALID [2018-11-23 13:00:31,387 INFO L273 TraceCheckUtils]: 1: Hoare triple {29#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {29#true} is VALID [2018-11-23 13:00:31,387 INFO L273 TraceCheckUtils]: 2: Hoare triple {29#true} assume true; {29#true} is VALID [2018-11-23 13:00:31,388 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {29#true} {29#true} #64#return; {29#true} is VALID [2018-11-23 13:00:31,388 INFO L256 TraceCheckUtils]: 4: Hoare triple {29#true} call #t~ret15 := main(); {29#true} is VALID [2018-11-23 13:00:31,388 INFO L273 TraceCheckUtils]: 5: Hoare triple {29#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {29#true} is VALID [2018-11-23 13:00:31,389 INFO L273 TraceCheckUtils]: 6: Hoare triple {29#true} assume !true; {30#false} is VALID [2018-11-23 13:00:31,390 INFO L273 TraceCheckUtils]: 7: Hoare triple {30#false} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {30#false} is VALID [2018-11-23 13:00:31,390 INFO L273 TraceCheckUtils]: 8: Hoare triple {30#false} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {30#false} is VALID [2018-11-23 13:00:31,390 INFO L273 TraceCheckUtils]: 9: Hoare triple {30#false} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {30#false} is VALID [2018-11-23 13:00:31,391 INFO L273 TraceCheckUtils]: 10: Hoare triple {30#false} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {30#false} is VALID [2018-11-23 13:00:31,391 INFO L273 TraceCheckUtils]: 11: Hoare triple {30#false} assume !false; {30#false} is VALID [2018-11-23 13:00:31,394 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 13:00:31,397 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:00:31,397 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-23 13:00:31,401 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 12 [2018-11-23 13:00:31,404 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 13:00:31,408 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2018-11-23 13:00:31,563 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 13:00:31,563 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-23 13:00:31,574 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-23 13:00:31,575 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 13:00:31,578 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 2 states. [2018-11-23 13:00:31,737 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:31,738 INFO L93 Difference]: Finished difference Result 38 states and 48 transitions. [2018-11-23 13:00:31,738 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-23 13:00:31,738 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 12 [2018-11-23 13:00:31,738 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:00:31,740 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 13:00:31,752 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 48 transitions. [2018-11-23 13:00:31,753 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 13:00:31,757 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 48 transitions. [2018-11-23 13:00:31,757 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 48 transitions. [2018-11-23 13:00:31,906 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 13:00:31,916 INFO L225 Difference]: With dead ends: 38 [2018-11-23 13:00:31,917 INFO L226 Difference]: Without dead ends: 21 [2018-11-23 13:00:31,920 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 13:00:31,936 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 21 states. [2018-11-23 13:00:31,955 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 21 to 21. [2018-11-23 13:00:31,956 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 13:00:31,956 INFO L82 GeneralOperation]: Start isEquivalent. First operand 21 states. Second operand 21 states. [2018-11-23 13:00:31,957 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 21 states. [2018-11-23 13:00:31,957 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 21 states. [2018-11-23 13:00:31,960 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:31,961 INFO L93 Difference]: Finished difference Result 21 states and 25 transitions. [2018-11-23 13:00:31,961 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 25 transitions. [2018-11-23 13:00:31,961 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:31,962 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:31,962 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 21 states. [2018-11-23 13:00:31,962 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 21 states. [2018-11-23 13:00:31,966 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:31,966 INFO L93 Difference]: Finished difference Result 21 states and 25 transitions. [2018-11-23 13:00:31,966 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 25 transitions. [2018-11-23 13:00:31,967 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:31,967 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:31,967 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 13:00:31,967 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 13:00:31,967 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-23 13:00:31,970 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 25 transitions. [2018-11-23 13:00:31,972 INFO L78 Accepts]: Start accepts. Automaton has 21 states and 25 transitions. Word has length 12 [2018-11-23 13:00:31,972 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:00:31,972 INFO L480 AbstractCegarLoop]: Abstraction has 21 states and 25 transitions. [2018-11-23 13:00:31,972 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-23 13:00:31,972 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 25 transitions. [2018-11-23 13:00:31,973 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 14 [2018-11-23 13:00:31,973 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:00:31,973 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:00:31,974 INFO L423 AbstractCegarLoop]: === Iteration 2 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:00:31,974 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:00:31,974 INFO L82 PathProgramCache]: Analyzing trace with hash 290507551, now seen corresponding path program 1 times [2018-11-23 13:00:31,974 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 13:00:31,974 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 13:00:31,976 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:31,976 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:00:31,977 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:32,003 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:32,489 INFO L256 TraceCheckUtils]: 0: Hoare triple {148#true} call ULTIMATE.init(); {148#true} is VALID [2018-11-23 13:00:32,489 INFO L273 TraceCheckUtils]: 1: Hoare triple {148#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {148#true} is VALID [2018-11-23 13:00:32,490 INFO L273 TraceCheckUtils]: 2: Hoare triple {148#true} assume true; {148#true} is VALID [2018-11-23 13:00:32,490 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {148#true} {148#true} #64#return; {148#true} is VALID [2018-11-23 13:00:32,490 INFO L256 TraceCheckUtils]: 4: Hoare triple {148#true} call #t~ret15 := main(); {148#true} is VALID [2018-11-23 13:00:32,505 INFO L273 TraceCheckUtils]: 5: Hoare triple {148#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {150#(and (= 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|)))} is VALID [2018-11-23 13:00:32,513 INFO L273 TraceCheckUtils]: 6: Hoare triple {150#(and (= 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|)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {150#(and (= 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|)))} is VALID [2018-11-23 13:00:32,516 INFO L273 TraceCheckUtils]: 7: Hoare triple {150#(and (= 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|)))} assume !(0 != #t~nondet5);havoc #t~nondet5; {150#(and (= 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|)))} is VALID [2018-11-23 13:00:32,518 INFO L273 TraceCheckUtils]: 8: Hoare triple {150#(and (= 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|)))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {151#(and (= |main_#t~mem14.base| 0) (= |main_#t~mem14.offset| 0))} is VALID [2018-11-23 13:00:32,520 INFO L273 TraceCheckUtils]: 9: Hoare triple {151#(and (= |main_#t~mem14.base| 0) (= |main_#t~mem14.offset| 0))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {149#false} is VALID [2018-11-23 13:00:32,520 INFO L273 TraceCheckUtils]: 10: Hoare triple {149#false} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {149#false} is VALID [2018-11-23 13:00:32,521 INFO L273 TraceCheckUtils]: 11: Hoare triple {149#false} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {149#false} is VALID [2018-11-23 13:00:32,521 INFO L273 TraceCheckUtils]: 12: Hoare triple {149#false} assume !false; {149#false} is VALID [2018-11-23 13:00:32,524 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 13:00:32,524 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:00:32,525 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 13:00:32,526 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 13 [2018-11-23 13:00:32,527 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 13:00:32,527 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2018-11-23 13:00:32,625 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 13 edges. 13 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 13:00:32,625 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 13:00:32,626 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 13:00:32,626 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2018-11-23 13:00:32,626 INFO L87 Difference]: Start difference. First operand 21 states and 25 transitions. Second operand 4 states. [2018-11-23 13:00:33,025 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:33,025 INFO L93 Difference]: Finished difference Result 35 states and 44 transitions. [2018-11-23 13:00:33,025 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 13:00:33,025 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 13 [2018-11-23 13:00:33,026 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:00:33,026 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-23 13:00:33,029 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 44 transitions. [2018-11-23 13:00:33,029 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-23 13:00:33,033 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 44 transitions. [2018-11-23 13:00:33,034 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 44 transitions. [2018-11-23 13:00:33,400 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 13:00:33,403 INFO L225 Difference]: With dead ends: 35 [2018-11-23 13:00:33,403 INFO L226 Difference]: Without dead ends: 26 [2018-11-23 13:00:33,404 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 5 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2018-11-23 13:00:33,405 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 26 states. [2018-11-23 13:00:33,417 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 26 to 25. [2018-11-23 13:00:33,417 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 13:00:33,417 INFO L82 GeneralOperation]: Start isEquivalent. First operand 26 states. Second operand 25 states. [2018-11-23 13:00:33,418 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 25 states. [2018-11-23 13:00:33,418 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 25 states. [2018-11-23 13:00:33,423 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:33,424 INFO L93 Difference]: Finished difference Result 26 states and 33 transitions. [2018-11-23 13:00:33,424 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 33 transitions. [2018-11-23 13:00:33,424 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:33,425 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:33,425 INFO L74 IsIncluded]: Start isIncluded. First operand 25 states. Second operand 26 states. [2018-11-23 13:00:33,425 INFO L87 Difference]: Start difference. First operand 25 states. Second operand 26 states. [2018-11-23 13:00:33,428 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:33,429 INFO L93 Difference]: Finished difference Result 26 states and 33 transitions. [2018-11-23 13:00:33,429 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 33 transitions. [2018-11-23 13:00:33,430 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:33,430 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:33,430 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 13:00:33,430 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 13:00:33,431 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 25 states. [2018-11-23 13:00:33,433 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 25 states to 25 states and 31 transitions. [2018-11-23 13:00:33,433 INFO L78 Accepts]: Start accepts. Automaton has 25 states and 31 transitions. Word has length 13 [2018-11-23 13:00:33,433 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:00:33,433 INFO L480 AbstractCegarLoop]: Abstraction has 25 states and 31 transitions. [2018-11-23 13:00:33,434 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 13:00:33,434 INFO L276 IsEmpty]: Start isEmpty. Operand 25 states and 31 transitions. [2018-11-23 13:00:33,435 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 22 [2018-11-23 13:00:33,435 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:00:33,435 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:00:33,435 INFO L423 AbstractCegarLoop]: === Iteration 3 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:00:33,436 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:00:33,436 INFO L82 PathProgramCache]: Analyzing trace with hash 1905043255, now seen corresponding path program 1 times [2018-11-23 13:00:33,436 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 13:00:33,436 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 13:00:33,438 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:33,438 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:00:33,439 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:33,484 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:33,780 INFO L256 TraceCheckUtils]: 0: Hoare triple {285#true} call ULTIMATE.init(); {285#true} is VALID [2018-11-23 13:00:33,781 INFO L273 TraceCheckUtils]: 1: Hoare triple {285#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {285#true} is VALID [2018-11-23 13:00:33,781 INFO L273 TraceCheckUtils]: 2: Hoare triple {285#true} assume true; {285#true} is VALID [2018-11-23 13:00:33,782 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {285#true} {285#true} #64#return; {285#true} is VALID [2018-11-23 13:00:33,782 INFO L256 TraceCheckUtils]: 4: Hoare triple {285#true} call #t~ret15 := main(); {285#true} is VALID [2018-11-23 13:00:33,783 INFO L273 TraceCheckUtils]: 5: Hoare triple {285#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {287#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:33,784 INFO L273 TraceCheckUtils]: 6: Hoare triple {287#(= (select |#valid| |main_~#list~0.base|) 1)} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {287#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:33,784 INFO L273 TraceCheckUtils]: 7: Hoare triple {287#(= (select |#valid| |main_~#list~0.base|) 1)} assume !!(0 != #t~nondet5);havoc #t~nondet5; {287#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:33,785 INFO L273 TraceCheckUtils]: 8: Hoare triple {287#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {287#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:33,786 INFO L273 TraceCheckUtils]: 9: Hoare triple {287#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {288#(and (<= main_~hash~0 (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1))} is VALID [2018-11-23 13:00:33,788 INFO L256 TraceCheckUtils]: 10: Hoare triple {288#(and (<= main_~hash~0 (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {289#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:00:33,791 INFO L273 TraceCheckUtils]: 11: Hoare triple {289#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {290#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} is VALID [2018-11-23 13:00:33,792 INFO L273 TraceCheckUtils]: 12: Hoare triple {290#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} assume true; {290#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} is VALID [2018-11-23 13:00:33,799 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {290#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} {288#(and (<= main_~hash~0 (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1))} #68#return; {291#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} is VALID [2018-11-23 13:00:33,800 INFO L273 TraceCheckUtils]: 14: Hoare triple {291#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {291#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} is VALID [2018-11-23 13:00:33,801 INFO L273 TraceCheckUtils]: 15: Hoare triple {291#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} assume !(0 != #t~nondet5);havoc #t~nondet5; {291#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} is VALID [2018-11-23 13:00:33,802 INFO L273 TraceCheckUtils]: 16: Hoare triple {291#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {291#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} is VALID [2018-11-23 13:00:33,808 INFO L273 TraceCheckUtils]: 17: Hoare triple {291#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {291#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} is VALID [2018-11-23 13:00:33,809 INFO L273 TraceCheckUtils]: 18: Hoare triple {291#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {292#|main_#t~short11|} is VALID [2018-11-23 13:00:33,810 INFO L273 TraceCheckUtils]: 19: Hoare triple {292#|main_#t~short11|} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {286#false} is VALID [2018-11-23 13:00:33,810 INFO L273 TraceCheckUtils]: 20: Hoare triple {286#false} assume !false; {286#false} is VALID [2018-11-23 13:00:33,814 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 13:00:33,814 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:00:33,814 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 13:00:33,834 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:00:33,870 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:33,889 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:33,894 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:00:33,974 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 13:00:33,980 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:33,995 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:33,995 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:10, output treesize:9 [2018-11-23 13:00:34,004 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:34,005 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_15|]. (and (= |#valid| (store |v_#valid_15| |main_~#list~0.base| 1)) (= |main_~#list~0.offset| 0)) [2018-11-23 13:00:34,005 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|))) [2018-11-23 13:00:34,364 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 13:00:34,396 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:00:34,420 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:34,425 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:34,463 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 13:00:34,484 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:00:34,488 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:34,495 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:34,543 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 31 treesize of output 28 [2018-11-23 13:00:34,552 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 12 treesize of output 15 [2018-11-23 13:00:34,557 INFO L267 ElimStorePlain]: Start of recursive call 7: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:34,614 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 31 treesize of output 51 [2018-11-23 13:00:34,633 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 36 treesize of output 24 [2018-11-23 13:00:34,639 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:34,722 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 29 treesize of output 27 [2018-11-23 13:00:34,726 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 2 xjuncts. [2018-11-23 13:00:34,739 INFO L267 ElimStorePlain]: Start of recursive call 8: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:00:34,751 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:00:34,796 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 3 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:00:34,797 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 6 variables, input treesize:62, output treesize:50 [2018-11-23 13:00:34,808 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:34,808 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_14|, append_to_list_~node~0.base, append_to_list_~node~0.offset, append_to_list_~hash, |v_#memory_$Pointer$.base_16|, |v_#memory_$Pointer$.offset_16|]. (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= (store |v_#memory_$Pointer$.base_16| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.base_16| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.base)) |#memory_$Pointer$.base|) (= (let ((.cse0 (store |v_#memory_int_14| append_to_list_~node~0.base (store (select |v_#memory_int_14| append_to_list_~node~0.base) append_to_list_~node~0.offset append_to_list_~hash)))) (store .cse0 |append_to_list_#in~list.base| (store (select .cse0 |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| (select (select |#memory_int| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))) |#memory_int|) (= (store |v_#memory_$Pointer$.offset_16| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.offset_16| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.offset)) |#memory_$Pointer$.offset|) (<= append_to_list_~hash |append_to_list_#in~hash|)) [2018-11-23 13:00:34,808 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (let ((.cse2 (= (select |old(#valid)| .cse0) 0)) (.cse1 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (or (and (<= (select (select |#memory_int| .cse0) .cse1) |append_to_list_#in~hash|) .cse2) (and (= .cse0 |append_to_list_#in~list.base|) .cse2 (= |append_to_list_#in~list.offset| .cse1))))) [2018-11-23 13:00:34,936 WARN L307 Elim1Store]: Array PQE input equivalent to false [2018-11-23 13:00:34,939 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:34,957 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:34,958 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:34,962 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 15 treesize of output 8 [2018-11-23 13:00:34,968 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:34,979 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:34,980 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:68, output treesize:29 [2018-11-23 13:00:34,983 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:34,983 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_old(#valid)_AFTER_CALL_2|, v_prenex_1]. (let ((.cse2 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (.cse1 (= |main_~#list~0.offset| 0)) (.cse0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (or (and (= 1 (select |v_old(#valid)_AFTER_CALL_2| |main_~#list~0.base|)) (= 0 (select |v_old(#valid)_AFTER_CALL_2| .cse0)) .cse1 (<= (select (select |#memory_int| .cse0) .cse2) (+ main_~base~0 99))) (and (= |main_~#list~0.offset| .cse2) (= 1 (select v_prenex_1 |main_~#list~0.base|)) (= 0 (select v_prenex_1 .cse0)) .cse1 (= |main_~#list~0.base| .cse0)))) [2018-11-23 13:00:34,983 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (and (not (= |main_~#list~0.base| .cse0)) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| .cse0) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))) [2018-11-23 13:00:35,327 INFO L256 TraceCheckUtils]: 0: Hoare triple {285#true} call ULTIMATE.init(); {285#true} is VALID [2018-11-23 13:00:35,327 INFO L273 TraceCheckUtils]: 1: Hoare triple {285#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {285#true} is VALID [2018-11-23 13:00:35,328 INFO L273 TraceCheckUtils]: 2: Hoare triple {285#true} assume true; {285#true} is VALID [2018-11-23 13:00:35,328 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {285#true} {285#true} #64#return; {285#true} is VALID [2018-11-23 13:00:35,328 INFO L256 TraceCheckUtils]: 4: Hoare triple {285#true} call #t~ret15 := main(); {285#true} is VALID [2018-11-23 13:00:35,332 INFO L273 TraceCheckUtils]: 5: Hoare triple {285#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {311#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:35,333 INFO L273 TraceCheckUtils]: 6: Hoare triple {311#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {311#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:35,334 INFO L273 TraceCheckUtils]: 7: Hoare triple {311#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume !!(0 != #t~nondet5);havoc #t~nondet5; {311#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:35,335 INFO L273 TraceCheckUtils]: 8: Hoare triple {311#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {311#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:35,335 INFO L273 TraceCheckUtils]: 9: Hoare triple {311#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {324#(and (< main_~hash~0 (+ main_~base~0 100)) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:35,338 INFO L256 TraceCheckUtils]: 10: Hoare triple {324#(and (< main_~hash~0 (+ main_~base~0 100)) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {289#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:00:35,341 INFO L273 TraceCheckUtils]: 11: Hoare triple {289#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {331#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) |append_to_list_#in~hash|) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} is VALID [2018-11-23 13:00:35,342 INFO L273 TraceCheckUtils]: 12: Hoare triple {331#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) |append_to_list_#in~hash|) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} assume true; {331#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) |append_to_list_#in~hash|) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} is VALID [2018-11-23 13:00:35,345 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {331#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) |append_to_list_#in~hash|) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} {324#(and (< main_~hash~0 (+ main_~base~0 100)) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} #68#return; {338#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} is VALID [2018-11-23 13:00:35,347 INFO L273 TraceCheckUtils]: 14: Hoare triple {338#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {338#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} is VALID [2018-11-23 13:00:35,349 INFO L273 TraceCheckUtils]: 15: Hoare triple {338#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} assume !(0 != #t~nondet5);havoc #t~nondet5; {338#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} is VALID [2018-11-23 13:00:35,352 INFO L273 TraceCheckUtils]: 16: Hoare triple {338#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {338#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} is VALID [2018-11-23 13:00:35,358 INFO L273 TraceCheckUtils]: 17: Hoare triple {338#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {338#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} is VALID [2018-11-23 13:00:35,359 INFO L273 TraceCheckUtils]: 18: Hoare triple {338#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {292#|main_#t~short11|} is VALID [2018-11-23 13:00:35,360 INFO L273 TraceCheckUtils]: 19: Hoare triple {292#|main_#t~short11|} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {286#false} is VALID [2018-11-23 13:00:35,360 INFO L273 TraceCheckUtils]: 20: Hoare triple {286#false} assume !false; {286#false} is VALID [2018-11-23 13:00:35,363 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 13:00:35,390 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 13:00:35,391 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 12 [2018-11-23 13:00:35,391 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 21 [2018-11-23 13:00:35,392 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 13:00:35,392 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2018-11-23 13:00:35,457 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 35 edges. 35 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 13:00:35,457 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2018-11-23 13:00:35,458 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2018-11-23 13:00:35,458 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=105, Unknown=0, NotChecked=0, Total=132 [2018-11-23 13:00:35,458 INFO L87 Difference]: Start difference. First operand 25 states and 31 transitions. Second operand 12 states. [2018-11-23 13:00:36,784 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:36,784 INFO L93 Difference]: Finished difference Result 41 states and 53 transitions. [2018-11-23 13:00:36,785 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2018-11-23 13:00:36,785 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 21 [2018-11-23 13:00:36,785 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:00:36,785 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-23 13:00:36,791 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 53 transitions. [2018-11-23 13:00:36,791 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-23 13:00:36,796 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 53 transitions. [2018-11-23 13:00:36,796 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 53 transitions. [2018-11-23 13:00:36,892 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 53 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 13:00:36,896 INFO L225 Difference]: With dead ends: 41 [2018-11-23 13:00:36,896 INFO L226 Difference]: Without dead ends: 39 [2018-11-23 13:00:36,897 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 31 GetRequests, 19 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 18 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=36, Invalid=146, Unknown=0, NotChecked=0, Total=182 [2018-11-23 13:00:36,897 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 39 states. [2018-11-23 13:00:36,963 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 39 to 34. [2018-11-23 13:00:36,963 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 13:00:36,963 INFO L82 GeneralOperation]: Start isEquivalent. First operand 39 states. Second operand 34 states. [2018-11-23 13:00:36,964 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 34 states. [2018-11-23 13:00:36,964 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 34 states. [2018-11-23 13:00:36,968 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:36,968 INFO L93 Difference]: Finished difference Result 39 states and 51 transitions. [2018-11-23 13:00:36,968 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 51 transitions. [2018-11-23 13:00:36,969 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:36,969 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:36,969 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 39 states. [2018-11-23 13:00:36,970 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 39 states. [2018-11-23 13:00:36,974 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:36,974 INFO L93 Difference]: Finished difference Result 39 states and 51 transitions. [2018-11-23 13:00:36,974 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 51 transitions. [2018-11-23 13:00:36,975 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:36,975 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:36,976 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 13:00:36,976 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 13:00:36,976 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2018-11-23 13:00:36,978 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 45 transitions. [2018-11-23 13:00:36,979 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 45 transitions. Word has length 21 [2018-11-23 13:00:36,979 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:00:36,979 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 45 transitions. [2018-11-23 13:00:36,979 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2018-11-23 13:00:36,980 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 45 transitions. [2018-11-23 13:00:36,980 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 22 [2018-11-23 13:00:36,981 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:00:36,981 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:00:36,981 INFO L423 AbstractCegarLoop]: === Iteration 4 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:00:36,981 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:00:36,982 INFO L82 PathProgramCache]: Analyzing trace with hash 1905045177, now seen corresponding path program 1 times [2018-11-23 13:00:36,982 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 13:00:36,982 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 13:00:36,984 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:36,984 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:00:36,984 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:37,021 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:37,223 INFO L256 TraceCheckUtils]: 0: Hoare triple {537#true} call ULTIMATE.init(); {537#true} is VALID [2018-11-23 13:00:37,223 INFO L273 TraceCheckUtils]: 1: Hoare triple {537#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {537#true} is VALID [2018-11-23 13:00:37,224 INFO L273 TraceCheckUtils]: 2: Hoare triple {537#true} assume true; {537#true} is VALID [2018-11-23 13:00:37,225 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {537#true} {537#true} #64#return; {537#true} is VALID [2018-11-23 13:00:37,225 INFO L256 TraceCheckUtils]: 4: Hoare triple {537#true} call #t~ret15 := main(); {537#true} is VALID [2018-11-23 13:00:37,228 INFO L273 TraceCheckUtils]: 5: Hoare triple {537#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {539#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:37,229 INFO L273 TraceCheckUtils]: 6: Hoare triple {539#(= (select |#valid| |main_~#list~0.base|) 1)} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {539#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:37,230 INFO L273 TraceCheckUtils]: 7: Hoare triple {539#(= (select |#valid| |main_~#list~0.base|) 1)} assume !!(0 != #t~nondet5);havoc #t~nondet5; {539#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:37,230 INFO L273 TraceCheckUtils]: 8: Hoare triple {539#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {539#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:37,231 INFO L273 TraceCheckUtils]: 9: Hoare triple {539#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {540#(and (<= (+ main_~base~0 1) main_~hash~0) (= (select |#valid| |main_~#list~0.base|) 1))} is VALID [2018-11-23 13:00:37,233 INFO L256 TraceCheckUtils]: 10: Hoare triple {540#(and (<= (+ main_~base~0 1) main_~hash~0) (= (select |#valid| |main_~#list~0.base|) 1))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {541#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:00:37,236 INFO L273 TraceCheckUtils]: 11: Hoare triple {541#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {542#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} is VALID [2018-11-23 13:00:37,237 INFO L273 TraceCheckUtils]: 12: Hoare triple {542#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} assume true; {542#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} is VALID [2018-11-23 13:00:37,240 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {542#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} {540#(and (<= (+ main_~base~0 1) main_~hash~0) (= (select |#valid| |main_~#list~0.base|) 1))} #68#return; {543#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} is VALID [2018-11-23 13:00:37,241 INFO L273 TraceCheckUtils]: 14: Hoare triple {543#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {543#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} is VALID [2018-11-23 13:00:37,242 INFO L273 TraceCheckUtils]: 15: Hoare triple {543#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} assume !(0 != #t~nondet5);havoc #t~nondet5; {543#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} is VALID [2018-11-23 13:00:37,243 INFO L273 TraceCheckUtils]: 16: Hoare triple {543#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {543#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} is VALID [2018-11-23 13:00:37,244 INFO L273 TraceCheckUtils]: 17: Hoare triple {543#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {544#|main_#t~short11|} is VALID [2018-11-23 13:00:37,245 INFO L273 TraceCheckUtils]: 18: Hoare triple {544#|main_#t~short11|} assume !#t~short11; {538#false} is VALID [2018-11-23 13:00:37,246 INFO L273 TraceCheckUtils]: 19: Hoare triple {538#false} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {538#false} is VALID [2018-11-23 13:00:37,246 INFO L273 TraceCheckUtils]: 20: Hoare triple {538#false} assume !false; {538#false} is VALID [2018-11-23 13:00:37,249 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 13:00:37,250 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:00:37,250 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 13:00:37,264 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:00:37,302 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:37,331 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:37,333 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:00:37,364 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 13:00:37,367 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:37,374 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:37,375 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:10, output treesize:9 [2018-11-23 13:00:37,378 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:37,378 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_17|]. (and (= |#valid| (store |v_#valid_17| |main_~#list~0.base| 1)) (= |main_~#list~0.offset| 0)) [2018-11-23 13:00:37,378 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|))) [2018-11-23 13:00:37,499 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 31 treesize of output 24 [2018-11-23 13:00:37,511 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:00:37,513 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:37,552 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 23 treesize of output 35 [2018-11-23 13:00:37,563 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 24 treesize of output 12 [2018-11-23 13:00:37,566 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:37,612 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 21 treesize of output 15 [2018-11-23 13:00:37,616 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 2 xjuncts. [2018-11-23 13:00:37,633 INFO L267 ElimStorePlain]: Start of recursive call 4: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:00:37,644 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:00:37,680 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 13:00:37,690 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:00:37,692 INFO L267 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:37,696 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:37,728 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 13:00:37,733 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:00:37,735 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:37,738 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:37,766 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 3 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:00:37,767 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 6 variables, input treesize:62, output treesize:50 [2018-11-23 13:00:37,775 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:37,775 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_15|, append_to_list_~node~0.base, append_to_list_~node~0.offset, append_to_list_~hash, |v_#memory_$Pointer$.offset_17|, |v_#memory_$Pointer$.base_17|]. (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= (store |v_#memory_$Pointer$.offset_17| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.offset_17| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.offset)) |#memory_$Pointer$.offset|) (= |#memory_$Pointer$.base| (store |v_#memory_$Pointer$.base_17| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.base_17| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.base))) (<= |append_to_list_#in~hash| append_to_list_~hash) (= (let ((.cse0 (store |v_#memory_int_15| append_to_list_~node~0.base (store (select |v_#memory_int_15| append_to_list_~node~0.base) append_to_list_~node~0.offset append_to_list_~hash)))) (store .cse0 |append_to_list_#in~list.base| (store (select .cse0 |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| (select (select |#memory_int| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))) |#memory_int|)) [2018-11-23 13:00:37,775 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (let ((.cse2 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (.cse1 (= (select |old(#valid)| .cse0) 0))) (or (and (= .cse0 |append_to_list_#in~list.base|) .cse1 (= |append_to_list_#in~list.offset| .cse2)) (and (<= |append_to_list_#in~hash| (select (select |#memory_int| .cse0) .cse2)) .cse1)))) [2018-11-23 13:00:37,881 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:37,883 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:37,884 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 35 treesize of output 29 [2018-11-23 13:00:37,890 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:37,920 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:37,921 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:68, output treesize:29 [2018-11-23 13:00:37,924 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:37,924 WARN L384 uantifierElimination]: Input elimination task: ∃ [v_prenex_2, |v_old(#valid)_AFTER_CALL_4|]. (let ((.cse1 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (.cse0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (.cse2 (= |main_~#list~0.offset| 0))) (or (and (= (select v_prenex_2 |main_~#list~0.base|) 1) (= 0 (select v_prenex_2 .cse0)) (<= (+ main_~base~0 1) (select (select |#memory_int| .cse0) .cse1)) .cse2) (and (= 0 (select |v_old(#valid)_AFTER_CALL_4| .cse0)) (= |main_~#list~0.offset| .cse1) (= (select |v_old(#valid)_AFTER_CALL_4| |main_~#list~0.base|) 1) (= |main_~#list~0.base| .cse0) .cse2))) [2018-11-23 13:00:37,924 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (and (not (= |main_~#list~0.base| .cse0)) (<= (+ main_~base~0 1) (select (select |#memory_int| .cse0) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))) [2018-11-23 13:00:38,023 INFO L256 TraceCheckUtils]: 0: Hoare triple {537#true} call ULTIMATE.init(); {537#true} is VALID [2018-11-23 13:00:38,024 INFO L273 TraceCheckUtils]: 1: Hoare triple {537#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {537#true} is VALID [2018-11-23 13:00:38,024 INFO L273 TraceCheckUtils]: 2: Hoare triple {537#true} assume true; {537#true} is VALID [2018-11-23 13:00:38,024 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {537#true} {537#true} #64#return; {537#true} is VALID [2018-11-23 13:00:38,025 INFO L256 TraceCheckUtils]: 4: Hoare triple {537#true} call #t~ret15 := main(); {537#true} is VALID [2018-11-23 13:00:38,026 INFO L273 TraceCheckUtils]: 5: Hoare triple {537#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {563#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:38,030 INFO L273 TraceCheckUtils]: 6: Hoare triple {563#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {563#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:38,031 INFO L273 TraceCheckUtils]: 7: Hoare triple {563#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume !!(0 != #t~nondet5);havoc #t~nondet5; {563#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:38,031 INFO L273 TraceCheckUtils]: 8: Hoare triple {563#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {563#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:38,035 INFO L273 TraceCheckUtils]: 9: Hoare triple {563#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {576#(and (< main_~base~0 main_~hash~0) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:38,036 INFO L256 TraceCheckUtils]: 10: Hoare triple {576#(and (< main_~base~0 main_~hash~0) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {541#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:00:38,038 INFO L273 TraceCheckUtils]: 11: Hoare triple {541#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {583#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} is VALID [2018-11-23 13:00:38,040 INFO L273 TraceCheckUtils]: 12: Hoare triple {583#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} assume true; {583#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} is VALID [2018-11-23 13:00:38,048 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {583#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} {576#(and (< main_~base~0 main_~hash~0) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} #68#return; {590#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:38,049 INFO L273 TraceCheckUtils]: 14: Hoare triple {590#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {590#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:38,054 INFO L273 TraceCheckUtils]: 15: Hoare triple {590#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} assume !(0 != #t~nondet5);havoc #t~nondet5; {590#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:38,059 INFO L273 TraceCheckUtils]: 16: Hoare triple {590#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {590#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:38,060 INFO L273 TraceCheckUtils]: 17: Hoare triple {590#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {544#|main_#t~short11|} is VALID [2018-11-23 13:00:38,060 INFO L273 TraceCheckUtils]: 18: Hoare triple {544#|main_#t~short11|} assume !#t~short11; {538#false} is VALID [2018-11-23 13:00:38,060 INFO L273 TraceCheckUtils]: 19: Hoare triple {538#false} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {538#false} is VALID [2018-11-23 13:00:38,061 INFO L273 TraceCheckUtils]: 20: Hoare triple {538#false} assume !false; {538#false} is VALID [2018-11-23 13:00:38,063 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 13:00:38,083 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 13:00:38,083 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 12 [2018-11-23 13:00:38,083 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 21 [2018-11-23 13:00:38,084 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 13:00:38,084 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2018-11-23 13:00:38,240 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 13:00:38,240 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2018-11-23 13:00:38,240 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2018-11-23 13:00:38,241 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=105, Unknown=0, NotChecked=0, Total=132 [2018-11-23 13:00:38,241 INFO L87 Difference]: Start difference. First operand 34 states and 45 transitions. Second operand 12 states. [2018-11-23 13:00:40,014 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:40,014 INFO L93 Difference]: Finished difference Result 43 states and 56 transitions. [2018-11-23 13:00:40,014 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2018-11-23 13:00:40,014 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 21 [2018-11-23 13:00:40,015 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:00:40,015 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-23 13:00:40,018 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 56 transitions. [2018-11-23 13:00:40,018 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-23 13:00:40,021 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 56 transitions. [2018-11-23 13:00:40,021 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 56 transitions. [2018-11-23 13:00:40,147 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 13:00:40,150 INFO L225 Difference]: With dead ends: 43 [2018-11-23 13:00:40,150 INFO L226 Difference]: Without dead ends: 36 [2018-11-23 13:00:40,151 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 30 GetRequests, 18 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 18 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=36, Invalid=146, Unknown=0, NotChecked=0, Total=182 [2018-11-23 13:00:40,151 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2018-11-23 13:00:40,200 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 34. [2018-11-23 13:00:40,200 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 13:00:40,200 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand 34 states. [2018-11-23 13:00:40,201 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 34 states. [2018-11-23 13:00:40,201 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 34 states. [2018-11-23 13:00:40,204 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:40,204 INFO L93 Difference]: Finished difference Result 36 states and 47 transitions. [2018-11-23 13:00:40,204 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 47 transitions. [2018-11-23 13:00:40,205 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:40,205 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:40,205 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 36 states. [2018-11-23 13:00:40,205 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 36 states. [2018-11-23 13:00:40,208 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:40,208 INFO L93 Difference]: Finished difference Result 36 states and 47 transitions. [2018-11-23 13:00:40,208 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 47 transitions. [2018-11-23 13:00:40,209 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:40,209 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:40,209 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 13:00:40,210 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 13:00:40,210 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2018-11-23 13:00:40,212 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 44 transitions. [2018-11-23 13:00:40,212 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 44 transitions. Word has length 21 [2018-11-23 13:00:40,212 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:00:40,213 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 44 transitions. [2018-11-23 13:00:40,213 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2018-11-23 13:00:40,213 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 44 transitions. [2018-11-23 13:00:40,214 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2018-11-23 13:00:40,214 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:00:40,214 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] [2018-11-23 13:00:40,214 INFO L423 AbstractCegarLoop]: === Iteration 5 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:00:40,215 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:00:40,215 INFO L82 PathProgramCache]: Analyzing trace with hash -616597425, now seen corresponding path program 1 times [2018-11-23 13:00:40,215 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 13:00:40,215 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 13:00:40,216 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:40,217 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:00:40,217 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:40,251 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:40,591 INFO L256 TraceCheckUtils]: 0: Hoare triple {785#true} call ULTIMATE.init(); {785#true} is VALID [2018-11-23 13:00:40,592 INFO L273 TraceCheckUtils]: 1: Hoare triple {785#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {785#true} is VALID [2018-11-23 13:00:40,592 INFO L273 TraceCheckUtils]: 2: Hoare triple {785#true} assume true; {785#true} is VALID [2018-11-23 13:00:40,592 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {785#true} {785#true} #64#return; {785#true} is VALID [2018-11-23 13:00:40,593 INFO L256 TraceCheckUtils]: 4: Hoare triple {785#true} call #t~ret15 := main(); {785#true} is VALID [2018-11-23 13:00:40,594 INFO L273 TraceCheckUtils]: 5: Hoare triple {785#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {787#(and (= 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|)) (= (select |#valid| |main_~#list~0.base|) 1))} is VALID [2018-11-23 13:00:40,595 INFO L273 TraceCheckUtils]: 6: Hoare triple {787#(and (= 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|)) (= (select |#valid| |main_~#list~0.base|) 1))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {787#(and (= 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|)) (= (select |#valid| |main_~#list~0.base|) 1))} is VALID [2018-11-23 13:00:40,596 INFO L273 TraceCheckUtils]: 7: Hoare triple {787#(and (= 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|)) (= (select |#valid| |main_~#list~0.base|) 1))} assume !!(0 != #t~nondet5);havoc #t~nondet5; {787#(and (= 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|)) (= (select |#valid| |main_~#list~0.base|) 1))} is VALID [2018-11-23 13:00:40,597 INFO L273 TraceCheckUtils]: 8: Hoare triple {787#(and (= 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|)) (= (select |#valid| |main_~#list~0.base|) 1))} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {787#(and (= 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|)) (= (select |#valid| |main_~#list~0.base|) 1))} is VALID [2018-11-23 13:00:40,597 INFO L273 TraceCheckUtils]: 9: Hoare triple {787#(and (= 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|)) (= (select |#valid| |main_~#list~0.base|) 1))} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {787#(and (= 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|)) (= (select |#valid| |main_~#list~0.base|) 1))} is VALID [2018-11-23 13:00:40,599 INFO L256 TraceCheckUtils]: 10: Hoare triple {787#(and (= 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|)) (= (select |#valid| |main_~#list~0.base|) 1))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {788#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 13:00:40,602 INFO L273 TraceCheckUtils]: 11: Hoare triple {788#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {789#(and (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (= (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)) (= (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))} is VALID [2018-11-23 13:00:40,605 INFO L273 TraceCheckUtils]: 12: Hoare triple {789#(and (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (= (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)) (= (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))} assume true; {789#(and (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (= (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)) (= (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))} is VALID [2018-11-23 13:00:40,607 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {789#(and (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (= (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)) (= (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))} {787#(and (= 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|)) (= (select |#valid| |main_~#list~0.base|) 1))} #68#return; {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:00:40,609 INFO L273 TraceCheckUtils]: 14: Hoare triple {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:00:40,611 INFO L273 TraceCheckUtils]: 15: Hoare triple {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} assume !(0 != #t~nondet5);havoc #t~nondet5; {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:00:40,612 INFO L273 TraceCheckUtils]: 16: Hoare triple {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:00:40,628 INFO L273 TraceCheckUtils]: 17: Hoare triple {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:00:40,629 INFO L273 TraceCheckUtils]: 18: Hoare triple {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:00:40,633 INFO L273 TraceCheckUtils]: 19: Hoare triple {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} assume !!#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:00:40,634 INFO L273 TraceCheckUtils]: 20: Hoare triple {790#(and (= 0 (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, 4 + #t~mem12.offset, 4);call write~$Pointer$(#t~mem13.base, #t~mem13.offset, ~#list~0.base, ~#list~0.offset, 4);havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset; {791#(and (= 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|)))} is VALID [2018-11-23 13:00:40,635 INFO L273 TraceCheckUtils]: 21: Hoare triple {791#(and (= 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|)))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {792#(and (= |main_#t~mem14.base| 0) (= |main_#t~mem14.offset| 0))} is VALID [2018-11-23 13:00:40,635 INFO L273 TraceCheckUtils]: 22: Hoare triple {792#(and (= |main_#t~mem14.base| 0) (= |main_#t~mem14.offset| 0))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {786#false} is VALID [2018-11-23 13:00:40,635 INFO L273 TraceCheckUtils]: 23: Hoare triple {786#false} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {786#false} is VALID [2018-11-23 13:00:40,636 INFO L273 TraceCheckUtils]: 24: Hoare triple {786#false} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {786#false} is VALID [2018-11-23 13:00:40,636 INFO L273 TraceCheckUtils]: 25: Hoare triple {786#false} assume !false; {786#false} is VALID [2018-11-23 13:00:40,639 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 13:00:40,640 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:00:40,640 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 13:00:40,649 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:00:40,693 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:40,725 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:40,728 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:00:40,978 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 13:00:40,982 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:40,991 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:40,991 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:23 [2018-11-23 13:00:41,002 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:41,002 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_19|]. (and (= 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|)) (= |#valid| (store |v_#valid_19| |main_~#list~0.base| 1)) (= |main_~#list~0.offset| 0)) [2018-11-23 13:00:41,002 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|))) [2018-11-23 13:00:41,116 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 13:00:41,121 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 13:00:41,166 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 13:00:41,173 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 13:00:41,231 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-2 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2018-11-23 13:00:41,231 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:72, output treesize:88 [2018-11-23 13:00:46,680 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:46,680 WARN L384 uantifierElimination]: Input elimination task: ∃ [append_to_list_~node~0.base, |v_#memory_$Pointer$.base_18|, |v_#memory_$Pointer$.offset_18|]. (and (= (store |old(#memory_$Pointer$.base)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.base)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 (select (select |v_#memory_$Pointer$.base_18| append_to_list_~node~0.base) 0))) |v_#memory_$Pointer$.base_18|) (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |v_#memory_$Pointer$.offset_18| (store |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 (select (select |v_#memory_$Pointer$.offset_18| append_to_list_~node~0.base) 0)))) (= (store |v_#memory_$Pointer$.offset_18| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.offset_18| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| 0)) |#memory_$Pointer$.offset|) (= |#memory_$Pointer$.base| (store |v_#memory_$Pointer$.base_18| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.base_18| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.base)))) [2018-11-23 13:00:46,680 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [append_to_list_~node~0.base, v_DerPreprocessor_4, v_DerPreprocessor_2]. (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#memory_$Pointer$.base| (let ((.cse0 (store |old(#memory_$Pointer$.base)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.base)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_4)))) (store .cse0 |append_to_list_#in~list.base| (store (select .cse0 |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.base)))) (= (let ((.cse1 (store |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_2)))) (store .cse1 |append_to_list_#in~list.base| (store (select .cse1 |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| 0))) |#memory_$Pointer$.offset|)) [2018-11-23 13:00:46,884 WARN L180 SmtUtils]: Spent 100.00 ms on a formula simplification. DAG size of input: 53 DAG size of output: 39 [2018-11-23 13:00:46,900 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:46,901 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:46,902 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 13:00:46,918 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:46,960 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 34 treesize of output 38 [2018-11-23 13:00:47,004 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 15 treesize of output 18 [2018-11-23 13:00:47,014 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 18 treesize of output 19 [2018-11-23 13:00:47,017 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,026 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,051 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 13:00:47,055 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 37 treesize of output 34 [2018-11-23 13:00:47,063 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 19 [2018-11-23 13:00:47,065 INFO L267 ElimStorePlain]: Start of recursive call 7: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,076 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,085 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,131 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 34 treesize of output 38 [2018-11-23 13:00:47,137 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 15 treesize of output 18 [2018-11-23 13:00:47,144 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 18 treesize of output 19 [2018-11-23 13:00:47,147 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,154 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,177 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 37 treesize of output 34 [2018-11-23 13:00:47,190 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 23 treesize of output 19 [2018-11-23 13:00:47,192 INFO L267 ElimStorePlain]: Start of recursive call 12: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,201 INFO L267 ElimStorePlain]: Start of recursive call 11: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,208 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,234 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, 2 dim-2 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 13:00:47,235 INFO L202 ElimStorePlain]: Needed 12 recursive calls to eliminate 6 variables, input treesize:110, output treesize:44 [2018-11-23 13:00:47,245 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:47,246 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_old(#memory_$Pointer$.base)_AFTER_CALL_3|, append_to_list_~node~0.base, v_DerPreprocessor_4, |v_#valid_BEFORE_CALL_6|, |v_old(#memory_$Pointer$.offset)_AFTER_CALL_3|, v_DerPreprocessor_2]. (let ((.cse2 (select (select |v_old(#memory_$Pointer$.offset)_AFTER_CALL_3| |main_~#list~0.base|) |main_~#list~0.offset|)) (.cse1 (select (select |v_old(#memory_$Pointer$.base)_AFTER_CALL_3| |main_~#list~0.base|) |main_~#list~0.offset|))) (and (= |#memory_$Pointer$.base| (let ((.cse0 (store |v_old(#memory_$Pointer$.base)_AFTER_CALL_3| append_to_list_~node~0.base (store (store (select |v_old(#memory_$Pointer$.base)_AFTER_CALL_3| append_to_list_~node~0.base) 4 .cse1) 0 v_DerPreprocessor_4)))) (store .cse0 |main_~#list~0.base| (store (select .cse0 |main_~#list~0.base|) |main_~#list~0.offset| append_to_list_~node~0.base)))) (= 0 (select |v_#valid_BEFORE_CALL_6| append_to_list_~node~0.base)) (= 1 (select |v_#valid_BEFORE_CALL_6| |main_~#list~0.base|)) (= .cse2 0) (= (let ((.cse3 (store |v_old(#memory_$Pointer$.offset)_AFTER_CALL_3| append_to_list_~node~0.base (store (store (select |v_old(#memory_$Pointer$.offset)_AFTER_CALL_3| append_to_list_~node~0.base) 4 .cse2) 0 v_DerPreprocessor_2)))) (store .cse3 |main_~#list~0.base| (store (select .cse3 |main_~#list~0.base|) |main_~#list~0.offset| 0))) |#memory_$Pointer$.offset|) (= .cse1 0) (= |main_~#list~0.offset| 0))) [2018-11-23 13:00:47,246 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [append_to_list_~node~0.base]. (let ((.cse1 (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4)) (.cse0 (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4))) (and (= .cse0 0) (= .cse1 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) .cse1)) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) .cse0) 0) (= |main_~#list~0.offset| 0))) [2018-11-23 13:00:47,405 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:47,406 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 13:00:47,416 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 69 treesize of output 69 [2018-11-23 13:00:47,429 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 0 case distinctions, treesize of input 62 treesize of output 54 [2018-11-23 13:00:47,433 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,446 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,474 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 13:00:47,477 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 61 treesize of output 69 [2018-11-23 13:00:47,490 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 58 treesize of output 74 [2018-11-23 13:00:47,493 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,504 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:47,521 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-2 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 13:00:47,521 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:94, output treesize:64 [2018-11-23 13:00:49,576 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:49,577 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_$Pointer$.base_20|, |v_#memory_$Pointer$.offset_20|, append_to_list_~node~0.base]. (let ((.cse3 (select |v_#memory_$Pointer$.offset_20| |main_~#list~0.base|)) (.cse0 (select |v_#memory_$Pointer$.base_20| |main_~#list~0.base|))) (let ((.cse1 (select (select |v_#memory_$Pointer$.base_20| append_to_list_~node~0.base) 4)) (.cse4 (select .cse0 |main_~#list~0.offset|)) (.cse5 (+ (select .cse3 |main_~#list~0.offset|) 4)) (.cse2 (select (select |v_#memory_$Pointer$.offset_20| append_to_list_~node~0.base) 4))) (and (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select .cse0 .cse1)) (= 0 .cse2) (= .cse1 0) (= (store |v_#memory_$Pointer$.offset_20| |main_~#list~0.base| (store .cse3 |main_~#list~0.offset| (select (select |v_#memory_$Pointer$.offset_20| .cse4) .cse5))) |#memory_$Pointer$.offset|) (= |#memory_$Pointer$.base| (store |v_#memory_$Pointer$.base_20| |main_~#list~0.base| (store .cse0 |main_~#list~0.offset| (select (select |v_#memory_$Pointer$.base_20| .cse4) .cse5)))) (= (select .cse3 .cse2) 0) (= |main_~#list~0.offset| 0)))) [2018-11-23 13:00:49,577 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [append_to_list_~node~0.base]. (let ((.cse3 (select |#memory_$Pointer$.base| append_to_list_~node~0.base))) (let ((.cse2 (select .cse3 4))) (let ((.cse1 (+ .cse2 4)) (.cse0 (select |#memory_$Pointer$.offset| append_to_list_~node~0.base))) (and (= (select .cse0 .cse1) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) .cse2)) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= .cse2 |main_~#list~0.offset|) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) .cse2) (select .cse3 .cse1)) (= (select .cse0 4) |main_~#list~0.offset|) (= |main_~#list~0.offset| 0))))) [2018-11-23 13:00:49,745 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 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 57 treesize of output 45 [2018-11-23 13:00:49,753 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 15 [2018-11-23 13:00:49,755 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:49,774 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 13:00:49,774 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 22 [2018-11-23 13:00:49,777 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:49,789 INFO L267 ElimStorePlain]: Start of recursive call 2: 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:49,812 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 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 28 treesize of output 24 [2018-11-23 13:00:49,826 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 11 [2018-11-23 13:00:49,833 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:49,853 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 13:00:49,854 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 9 [2018-11-23 13:00:49,856 INFO L267 ElimStorePlain]: Start of recursive call 7: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:49,864 INFO L267 ElimStorePlain]: Start of recursive call 5: 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:49,875 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:49,876 INFO L202 ElimStorePlain]: Needed 7 recursive calls to eliminate 4 variables, input treesize:75, output treesize:7 [2018-11-23 13:00:49,881 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:49,882 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_$Pointer$.offset|, |main_~#list~0.base|, |#memory_$Pointer$.base|, append_to_list_~node~0.base]. (let ((.cse5 (select |#memory_$Pointer$.base| append_to_list_~node~0.base))) (let ((.cse1 (select .cse5 4))) (let ((.cse0 (select |#memory_$Pointer$.offset| append_to_list_~node~0.base)) (.cse4 (select |#memory_$Pointer$.base| |main_~#list~0.base|)) (.cse2 (+ .cse1 4)) (.cse3 (select |#memory_$Pointer$.offset| |main_~#list~0.base|))) (and (= (select .cse0 4) 0) (= .cse1 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= (select .cse0 .cse2) (select .cse3 .cse1)) (= |main_#t~mem14.base| (select .cse4 0)) (= (select .cse4 .cse1) (select .cse5 .cse2)) (= (select .cse3 0) |main_#t~mem14.offset|))))) [2018-11-23 13:00:49,882 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= 0 |main_#t~mem14.offset|) (= |main_#t~mem14.base| 0)) [2018-11-23 13:00:49,917 INFO L256 TraceCheckUtils]: 0: Hoare triple {785#true} call ULTIMATE.init(); {785#true} is VALID [2018-11-23 13:00:49,917 INFO L273 TraceCheckUtils]: 1: Hoare triple {785#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {785#true} is VALID [2018-11-23 13:00:49,917 INFO L273 TraceCheckUtils]: 2: Hoare triple {785#true} assume true; {785#true} is VALID [2018-11-23 13:00:49,918 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {785#true} {785#true} #64#return; {785#true} is VALID [2018-11-23 13:00:49,918 INFO L256 TraceCheckUtils]: 4: Hoare triple {785#true} call #t~ret15 := main(); {785#true} is VALID [2018-11-23 13:00:49,919 INFO L273 TraceCheckUtils]: 5: Hoare triple {785#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {811#(and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:49,920 INFO L273 TraceCheckUtils]: 6: Hoare triple {811#(and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {811#(and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:49,920 INFO L273 TraceCheckUtils]: 7: Hoare triple {811#(and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume !!(0 != #t~nondet5);havoc #t~nondet5; {811#(and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:49,922 INFO L273 TraceCheckUtils]: 8: Hoare triple {811#(and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {811#(and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:49,923 INFO L273 TraceCheckUtils]: 9: Hoare triple {811#(and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {811#(and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:49,925 INFO L256 TraceCheckUtils]: 10: Hoare triple {811#(and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {788#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 13:00:49,929 INFO L273 TraceCheckUtils]: 11: Hoare triple {788#(and (= |#valid| |old(#valid)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {830#(exists ((v_DerPreprocessor_4 Int) (v_DerPreprocessor_2 Int) (append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#memory_$Pointer$.base| (store (store |old(#memory_$Pointer$.base)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.base)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_4)) |append_to_list_#in~list.base| (store (select (store |old(#memory_$Pointer$.base)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.base)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_4)) |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.base))) (= (store (store |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_2)) |append_to_list_#in~list.base| (store (select (store |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_2)) |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| 0)) |#memory_$Pointer$.offset|)))} is VALID [2018-11-23 13:00:49,930 INFO L273 TraceCheckUtils]: 12: Hoare triple {830#(exists ((v_DerPreprocessor_4 Int) (v_DerPreprocessor_2 Int) (append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#memory_$Pointer$.base| (store (store |old(#memory_$Pointer$.base)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.base)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_4)) |append_to_list_#in~list.base| (store (select (store |old(#memory_$Pointer$.base)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.base)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_4)) |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.base))) (= (store (store |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_2)) |append_to_list_#in~list.base| (store (select (store |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_2)) |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| 0)) |#memory_$Pointer$.offset|)))} assume true; {830#(exists ((v_DerPreprocessor_4 Int) (v_DerPreprocessor_2 Int) (append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#memory_$Pointer$.base| (store (store |old(#memory_$Pointer$.base)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.base)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_4)) |append_to_list_#in~list.base| (store (select (store |old(#memory_$Pointer$.base)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.base)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_4)) |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.base))) (= (store (store |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_2)) |append_to_list_#in~list.base| (store (select (store |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_2)) |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| 0)) |#memory_$Pointer$.offset|)))} is VALID [2018-11-23 13:00:49,933 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {830#(exists ((v_DerPreprocessor_4 Int) (v_DerPreprocessor_2 Int) (append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#memory_$Pointer$.base| (store (store |old(#memory_$Pointer$.base)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.base)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_4)) |append_to_list_#in~list.base| (store (select (store |old(#memory_$Pointer$.base)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.base)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_4)) |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.base))) (= (store (store |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_2)) |append_to_list_#in~list.base| (store (select (store |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base (store (store (select |old(#memory_$Pointer$.offset)| append_to_list_~node~0.base) 4 (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0 v_DerPreprocessor_2)) |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| 0)) |#memory_$Pointer$.offset|)))} {811#(and (= 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_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} #68#return; {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:49,934 INFO L273 TraceCheckUtils]: 14: Hoare triple {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:49,935 INFO L273 TraceCheckUtils]: 15: Hoare triple {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} assume !(0 != #t~nondet5);havoc #t~nondet5; {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:49,936 INFO L273 TraceCheckUtils]: 16: Hoare triple {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:49,937 INFO L273 TraceCheckUtils]: 17: Hoare triple {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:49,939 INFO L273 TraceCheckUtils]: 18: Hoare triple {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:49,940 INFO L273 TraceCheckUtils]: 19: Hoare triple {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} assume !!#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:49,945 INFO L273 TraceCheckUtils]: 20: Hoare triple {837#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) 0) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= append_to_list_~node~0.base (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4)) 0))) (= |main_~#list~0.offset| 0))} call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, 4 + #t~mem12.offset, 4);call write~$Pointer$(#t~mem13.base, #t~mem13.offset, ~#list~0.base, ~#list~0.offset, 4);havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset; {859#(and (exists ((append_to_list_~node~0.base Int)) (and (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) (+ (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 4)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) |main_~#list~0.offset|) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4)) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) (+ (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 4))) (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:00:49,946 INFO L273 TraceCheckUtils]: 21: Hoare triple {859#(and (exists ((append_to_list_~node~0.base Int)) (and (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) (+ (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 4)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4))) (= (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) |main_~#list~0.offset|) (= (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4)) (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) (+ (select (select |#memory_$Pointer$.base| append_to_list_~node~0.base) 4) 4))) (= (select (select |#memory_$Pointer$.offset| append_to_list_~node~0.base) 4) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {792#(and (= |main_#t~mem14.base| 0) (= |main_#t~mem14.offset| 0))} is VALID [2018-11-23 13:00:49,948 INFO L273 TraceCheckUtils]: 22: Hoare triple {792#(and (= |main_#t~mem14.base| 0) (= |main_#t~mem14.offset| 0))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {786#false} is VALID [2018-11-23 13:00:49,948 INFO L273 TraceCheckUtils]: 23: Hoare triple {786#false} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {786#false} is VALID [2018-11-23 13:00:49,948 INFO L273 TraceCheckUtils]: 24: Hoare triple {786#false} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {786#false} is VALID [2018-11-23 13:00:49,948 INFO L273 TraceCheckUtils]: 25: Hoare triple {786#false} assume !false; {786#false} is VALID [2018-11-23 13:00:49,953 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 13:00:49,979 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 13:00:49,979 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 12 [2018-11-23 13:00:49,980 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 26 [2018-11-23 13:00:49,980 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 13:00:49,980 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2018-11-23 13:00:50,062 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 13:00:50,063 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2018-11-23 13:00:50,063 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2018-11-23 13:00:50,063 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=105, Unknown=0, NotChecked=0, Total=132 [2018-11-23 13:00:50,063 INFO L87 Difference]: Start difference. First operand 34 states and 44 transitions. Second operand 12 states. [2018-11-23 13:00:50,983 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:50,984 INFO L93 Difference]: Finished difference Result 45 states and 57 transitions. [2018-11-23 13:00:50,984 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2018-11-23 13:00:50,984 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 26 [2018-11-23 13:00:50,984 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:00:50,985 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-23 13:00:50,987 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2018-11-23 13:00:50,987 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-23 13:00:50,989 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2018-11-23 13:00:50,989 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 57 transitions. [2018-11-23 13:00:51,147 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 13:00:51,149 INFO L225 Difference]: With dead ends: 45 [2018-11-23 13:00:51,149 INFO L226 Difference]: Without dead ends: 31 [2018-11-23 13:00:51,150 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 35 GetRequests, 22 SyntacticMatches, 2 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 20 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=32, Invalid=124, Unknown=0, NotChecked=0, Total=156 [2018-11-23 13:00:51,150 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 31 states. [2018-11-23 13:00:51,194 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 31 to 30. [2018-11-23 13:00:51,195 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 13:00:51,195 INFO L82 GeneralOperation]: Start isEquivalent. First operand 31 states. Second operand 30 states. [2018-11-23 13:00:51,195 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 30 states. [2018-11-23 13:00:51,195 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 30 states. [2018-11-23 13:00:51,198 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:51,198 INFO L93 Difference]: Finished difference Result 31 states and 41 transitions. [2018-11-23 13:00:51,198 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 41 transitions. [2018-11-23 13:00:51,199 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:51,199 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:51,199 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 31 states. [2018-11-23 13:00:51,199 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 31 states. [2018-11-23 13:00:51,202 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:51,202 INFO L93 Difference]: Finished difference Result 31 states and 41 transitions. [2018-11-23 13:00:51,202 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 41 transitions. [2018-11-23 13:00:51,203 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:51,203 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:51,203 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 13:00:51,203 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 13:00:51,203 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2018-11-23 13:00:51,205 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 39 transitions. [2018-11-23 13:00:51,205 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 39 transitions. Word has length 26 [2018-11-23 13:00:51,206 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:00:51,206 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 39 transitions. [2018-11-23 13:00:51,206 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2018-11-23 13:00:51,206 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 39 transitions. [2018-11-23 13:00:51,207 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 30 [2018-11-23 13:00:51,207 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:00:51,207 INFO L402 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:00:51,207 INFO L423 AbstractCegarLoop]: === Iteration 6 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:00:51,208 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:00:51,208 INFO L82 PathProgramCache]: Analyzing trace with hash 479652687, now seen corresponding path program 2 times [2018-11-23 13:00:51,208 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 13:00:51,208 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 13:00:51,210 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:51,210 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:00:51,210 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:51,235 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:51,890 WARN L180 SmtUtils]: Spent 124.00 ms on a formula simplification that was a NOOP. DAG size: 12 [2018-11-23 13:00:52,193 INFO L256 TraceCheckUtils]: 0: Hoare triple {1034#true} call ULTIMATE.init(); {1034#true} is VALID [2018-11-23 13:00:52,194 INFO L273 TraceCheckUtils]: 1: Hoare triple {1034#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1034#true} is VALID [2018-11-23 13:00:52,194 INFO L273 TraceCheckUtils]: 2: Hoare triple {1034#true} assume true; {1034#true} is VALID [2018-11-23 13:00:52,194 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1034#true} {1034#true} #64#return; {1034#true} is VALID [2018-11-23 13:00:52,195 INFO L256 TraceCheckUtils]: 4: Hoare triple {1034#true} call #t~ret15 := main(); {1034#true} is VALID [2018-11-23 13:00:52,196 INFO L273 TraceCheckUtils]: 5: Hoare triple {1034#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {1036#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:52,196 INFO L273 TraceCheckUtils]: 6: Hoare triple {1036#(= (select |#valid| |main_~#list~0.base|) 1)} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1036#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:52,207 INFO L273 TraceCheckUtils]: 7: Hoare triple {1036#(= (select |#valid| |main_~#list~0.base|) 1)} assume !!(0 != #t~nondet5);havoc #t~nondet5; {1036#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:52,208 INFO L273 TraceCheckUtils]: 8: Hoare triple {1036#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {1036#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:52,208 INFO L273 TraceCheckUtils]: 9: Hoare triple {1036#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {1036#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:52,209 INFO L256 TraceCheckUtils]: 10: Hoare triple {1036#(= (select |#valid| |main_~#list~0.base|) 1)} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {1037#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:00:52,211 INFO L273 TraceCheckUtils]: 11: Hoare triple {1037#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {1038#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 13:00:52,212 INFO L273 TraceCheckUtils]: 12: Hoare triple {1038#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume true; {1038#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 13:00:52,217 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1038#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} {1036#(= (select |#valid| |main_~#list~0.base|) 1)} #68#return; {1036#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:52,218 INFO L273 TraceCheckUtils]: 14: Hoare triple {1036#(= (select |#valid| |main_~#list~0.base|) 1)} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1036#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:52,219 INFO L273 TraceCheckUtils]: 15: Hoare triple {1036#(= (select |#valid| |main_~#list~0.base|) 1)} assume !!(0 != #t~nondet5);havoc #t~nondet5; {1036#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:52,219 INFO L273 TraceCheckUtils]: 16: Hoare triple {1036#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {1036#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:00:52,220 INFO L273 TraceCheckUtils]: 17: Hoare triple {1036#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {1039#(and (<= main_~hash~0 (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1))} is VALID [2018-11-23 13:00:52,221 INFO L256 TraceCheckUtils]: 18: Hoare triple {1039#(and (<= main_~hash~0 (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {1037#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:00:52,223 INFO L273 TraceCheckUtils]: 19: Hoare triple {1037#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {1040#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} is VALID [2018-11-23 13:00:52,224 INFO L273 TraceCheckUtils]: 20: Hoare triple {1040#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} assume true; {1040#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} is VALID [2018-11-23 13:00:52,226 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {1040#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} {1039#(and (<= main_~hash~0 (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1))} #68#return; {1041#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} is VALID [2018-11-23 13:00:52,227 INFO L273 TraceCheckUtils]: 22: Hoare triple {1041#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1041#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} is VALID [2018-11-23 13:00:52,228 INFO L273 TraceCheckUtils]: 23: Hoare triple {1041#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} assume !(0 != #t~nondet5);havoc #t~nondet5; {1041#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} is VALID [2018-11-23 13:00:52,228 INFO L273 TraceCheckUtils]: 24: Hoare triple {1041#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {1041#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} is VALID [2018-11-23 13:00:52,229 INFO L273 TraceCheckUtils]: 25: Hoare triple {1041#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {1041#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} is VALID [2018-11-23 13:00:52,230 INFO L273 TraceCheckUtils]: 26: Hoare triple {1041#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {1042#|main_#t~short11|} is VALID [2018-11-23 13:00:52,231 INFO L273 TraceCheckUtils]: 27: Hoare triple {1042#|main_#t~short11|} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {1035#false} is VALID [2018-11-23 13:00:52,231 INFO L273 TraceCheckUtils]: 28: Hoare triple {1035#false} assume !false; {1035#false} is VALID [2018-11-23 13:00:52,234 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 1 proven. 6 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-23 13:00:52,234 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:00:52,235 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 13:00:52,244 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-23 13:00:52,290 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 13:00:52,290 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 13:00:52,321 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:00:52,323 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:00:52,418 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 13:00:52,420 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:52,427 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:52,427 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:10, output treesize:9 [2018-11-23 13:00:52,429 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:52,430 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_21|]. (and (= |#valid| (store |v_#valid_21| |main_~#list~0.base| 1)) (= |main_~#list~0.offset| 0)) [2018-11-23 13:00:52,430 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|))) [2018-11-23 13:00:52,531 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:52,533 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:52,534 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 17 treesize of output 21 [2018-11-23 13:00:52,537 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:52,546 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 13:00:52,546 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:20, output treesize:18 [2018-11-23 13:00:54,552 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:54,552 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_BEFORE_CALL_8|, append_to_list_~node~0.base]. (and (= |#valid| (store |v_#valid_BEFORE_CALL_8| append_to_list_~node~0.base 1)) (= (select |v_#valid_BEFORE_CALL_8| |main_~#list~0.base|) 1) (= |main_~#list~0.offset| 0) (= 0 (select |v_#valid_BEFORE_CALL_8| append_to_list_~node~0.base))) [2018-11-23 13:00:54,552 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [append_to_list_~node~0.base]. (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|))) [2018-11-23 13:00:54,721 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 31 treesize of output 24 [2018-11-23 13:00:54,728 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:00:54,729 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:54,799 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 23 treesize of output 35 [2018-11-23 13:00:54,808 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 24 treesize of output 12 [2018-11-23 13:00:54,810 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:54,909 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 21 treesize of output 15 [2018-11-23 13:00:54,911 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 2 xjuncts. [2018-11-23 13:00:54,932 INFO L267 ElimStorePlain]: Start of recursive call 4: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:00:54,943 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:00:54,983 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 13:00:54,994 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:00:54,998 INFO L267 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:55,002 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:55,040 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 13:00:55,045 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:00:55,049 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:55,052 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:55,097 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 3 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:00:55,097 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 6 variables, input treesize:62, output treesize:50 [2018-11-23 13:00:55,106 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:55,106 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_16|, append_to_list_~node~0.base, append_to_list_~node~0.offset, append_to_list_~hash, |v_#memory_$Pointer$.offset_21|, |v_#memory_$Pointer$.base_21|]. (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#memory_int| (let ((.cse0 (store |v_#memory_int_16| append_to_list_~node~0.base (store (select |v_#memory_int_16| append_to_list_~node~0.base) append_to_list_~node~0.offset append_to_list_~hash)))) (store .cse0 |append_to_list_#in~list.base| (store (select .cse0 |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| (select (select |#memory_int| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))) (= (store |v_#memory_$Pointer$.offset_21| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.offset_21| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.offset)) |#memory_$Pointer$.offset|) (= |#memory_$Pointer$.base| (store |v_#memory_$Pointer$.base_21| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.base_21| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.base))) (<= append_to_list_~hash |append_to_list_#in~hash|)) [2018-11-23 13:00:55,106 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (let ((.cse2 (= (select |old(#valid)| .cse0) 0)) (.cse1 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (or (and (<= (select (select |#memory_int| .cse0) .cse1) |append_to_list_#in~hash|) .cse2) (and (= .cse0 |append_to_list_#in~list.base|) .cse2 (= |append_to_list_#in~list.offset| .cse1))))) [2018-11-23 13:00:55,563 WARN L307 Elim1Store]: Array PQE input equivalent to false [2018-11-23 13:00:55,567 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:55,588 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:55,589 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:55,590 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:00:55,591 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 21 [2018-11-23 13:00:55,594 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 13:00:55,610 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:00:55,611 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 4 variables, input treesize:86, output treesize:29 [2018-11-23 13:00:55,620 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:00:55,621 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_BEFORE_CALL_10|, append_to_list_~node~0.base, v_prenex_3, v_prenex_4]. (let ((.cse2 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (.cse0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (.cse1 (= |main_~#list~0.offset| 0))) (or (and (= 1 (select |v_#valid_BEFORE_CALL_10| |main_~#list~0.base|)) (= (select |v_#valid_BEFORE_CALL_10| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= 0 (select |v_#valid_BEFORE_CALL_10| .cse0)) .cse1 (<= (select (select |#memory_int| .cse0) .cse2) (+ main_~base~0 99))) (and (= 1 (select v_prenex_3 |main_~#list~0.base|)) (= |main_~#list~0.offset| .cse2) (= 0 (select v_prenex_3 .cse0)) (= (select v_prenex_3 v_prenex_4) 1) (= |main_~#list~0.base| .cse0) .cse1 (not (= v_prenex_4 |main_~#list~0.base|))))) [2018-11-23 13:00:55,621 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (and (not (= |main_~#list~0.base| .cse0)) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| .cse0) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))) [2018-11-23 13:00:55,706 INFO L256 TraceCheckUtils]: 0: Hoare triple {1034#true} call ULTIMATE.init(); {1034#true} is VALID [2018-11-23 13:00:55,707 INFO L273 TraceCheckUtils]: 1: Hoare triple {1034#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1034#true} is VALID [2018-11-23 13:00:55,707 INFO L273 TraceCheckUtils]: 2: Hoare triple {1034#true} assume true; {1034#true} is VALID [2018-11-23 13:00:55,708 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1034#true} {1034#true} #64#return; {1034#true} is VALID [2018-11-23 13:00:55,708 INFO L256 TraceCheckUtils]: 4: Hoare triple {1034#true} call #t~ret15 := main(); {1034#true} is VALID [2018-11-23 13:00:55,709 INFO L273 TraceCheckUtils]: 5: Hoare triple {1034#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {1061#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:55,710 INFO L273 TraceCheckUtils]: 6: Hoare triple {1061#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1061#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:55,710 INFO L273 TraceCheckUtils]: 7: Hoare triple {1061#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume !!(0 != #t~nondet5);havoc #t~nondet5; {1061#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:55,711 INFO L273 TraceCheckUtils]: 8: Hoare triple {1061#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {1061#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:55,711 INFO L273 TraceCheckUtils]: 9: Hoare triple {1061#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {1061#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:55,712 INFO L256 TraceCheckUtils]: 10: Hoare triple {1061#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {1037#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:00:55,715 INFO L273 TraceCheckUtils]: 11: Hoare triple {1037#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {1080#(exists ((append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#valid| (store |old(#valid)| append_to_list_~node~0.base 1))))} is VALID [2018-11-23 13:00:55,722 INFO L273 TraceCheckUtils]: 12: Hoare triple {1080#(exists ((append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#valid| (store |old(#valid)| append_to_list_~node~0.base 1))))} assume true; {1080#(exists ((append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#valid| (store |old(#valid)| append_to_list_~node~0.base 1))))} is VALID [2018-11-23 13:00:55,723 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1080#(exists ((append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#valid| (store |old(#valid)| append_to_list_~node~0.base 1))))} {1061#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} #68#return; {1087#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:55,724 INFO L273 TraceCheckUtils]: 14: Hoare triple {1087#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1087#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:55,725 INFO L273 TraceCheckUtils]: 15: Hoare triple {1087#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume !!(0 != #t~nondet5);havoc #t~nondet5; {1087#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:55,725 INFO L273 TraceCheckUtils]: 16: Hoare triple {1087#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {1087#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:55,726 INFO L273 TraceCheckUtils]: 17: Hoare triple {1087#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {1100#(and (< main_~hash~0 (+ main_~base~0 100)) (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:00:55,727 INFO L256 TraceCheckUtils]: 18: Hoare triple {1100#(and (< main_~hash~0 (+ main_~base~0 100)) (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {1037#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:00:55,730 INFO L273 TraceCheckUtils]: 19: Hoare triple {1037#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {1107#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) |append_to_list_#in~hash|) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} is VALID [2018-11-23 13:00:55,731 INFO L273 TraceCheckUtils]: 20: Hoare triple {1107#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) |append_to_list_#in~hash|) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} assume true; {1107#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) |append_to_list_#in~hash|) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} is VALID [2018-11-23 13:00:55,734 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {1107#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) |append_to_list_#in~hash|) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} {1100#(and (< main_~hash~0 (+ main_~base~0 100)) (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} #68#return; {1114#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} is VALID [2018-11-23 13:00:55,735 INFO L273 TraceCheckUtils]: 22: Hoare triple {1114#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1114#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} is VALID [2018-11-23 13:00:55,736 INFO L273 TraceCheckUtils]: 23: Hoare triple {1114#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} assume !(0 != #t~nondet5);havoc #t~nondet5; {1114#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} is VALID [2018-11-23 13:00:55,737 INFO L273 TraceCheckUtils]: 24: Hoare triple {1114#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {1114#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} is VALID [2018-11-23 13:00:55,739 INFO L273 TraceCheckUtils]: 25: Hoare triple {1114#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {1114#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} is VALID [2018-11-23 13:00:55,740 INFO L273 TraceCheckUtils]: 26: Hoare triple {1114#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)))} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {1042#|main_#t~short11|} is VALID [2018-11-23 13:00:55,741 INFO L273 TraceCheckUtils]: 27: Hoare triple {1042#|main_#t~short11|} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {1035#false} is VALID [2018-11-23 13:00:55,741 INFO L273 TraceCheckUtils]: 28: Hoare triple {1035#false} assume !false; {1035#false} is VALID [2018-11-23 13:00:55,746 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 5 proven. 6 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 13:00:55,765 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 13:00:55,765 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 15 [2018-11-23 13:00:55,766 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 29 [2018-11-23 13:00:55,766 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 13:00:55,767 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states. [2018-11-23 13:00:55,836 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 13:00:55,836 INFO L459 AbstractCegarLoop]: Interpolant automaton has 15 states [2018-11-23 13:00:55,837 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2018-11-23 13:00:55,837 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=172, Unknown=0, NotChecked=0, Total=210 [2018-11-23 13:00:55,837 INFO L87 Difference]: Start difference. First operand 30 states and 39 transitions. Second operand 15 states. [2018-11-23 13:00:58,328 WARN L180 SmtUtils]: Spent 2.05 s on a formula simplification that was a NOOP. DAG size: 36 [2018-11-23 13:00:59,545 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:59,545 INFO L93 Difference]: Finished difference Result 61 states and 77 transitions. [2018-11-23 13:00:59,546 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2018-11-23 13:00:59,546 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 29 [2018-11-23 13:00:59,546 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:00:59,546 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2018-11-23 13:00:59,549 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 67 transitions. [2018-11-23 13:00:59,549 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2018-11-23 13:00:59,551 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 67 transitions. [2018-11-23 13:00:59,551 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states and 67 transitions. [2018-11-23 13:00:59,757 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 13:00:59,759 INFO L225 Difference]: With dead ends: 61 [2018-11-23 13:00:59,760 INFO L226 Difference]: Without dead ends: 59 [2018-11-23 13:00:59,760 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 47 GetRequests, 27 SyntacticMatches, 0 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 60 ImplicationChecksByTransitivity, 3.0s TimeCoverageRelationStatistics Valid=97, Invalid=365, Unknown=0, NotChecked=0, Total=462 [2018-11-23 13:00:59,760 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 59 states. [2018-11-23 13:00:59,796 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 59 to 34. [2018-11-23 13:00:59,796 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 13:00:59,797 INFO L82 GeneralOperation]: Start isEquivalent. First operand 59 states. Second operand 34 states. [2018-11-23 13:00:59,797 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand 34 states. [2018-11-23 13:00:59,797 INFO L87 Difference]: Start difference. First operand 59 states. Second operand 34 states. [2018-11-23 13:00:59,800 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:59,800 INFO L93 Difference]: Finished difference Result 59 states and 74 transitions. [2018-11-23 13:00:59,800 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 74 transitions. [2018-11-23 13:00:59,801 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:59,801 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:59,801 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 59 states. [2018-11-23 13:00:59,801 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 59 states. [2018-11-23 13:00:59,804 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:00:59,804 INFO L93 Difference]: Finished difference Result 59 states and 74 transitions. [2018-11-23 13:00:59,804 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 74 transitions. [2018-11-23 13:00:59,805 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:00:59,805 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:00:59,805 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 13:00:59,805 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 13:00:59,805 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2018-11-23 13:00:59,807 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 44 transitions. [2018-11-23 13:00:59,807 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 44 transitions. Word has length 29 [2018-11-23 13:00:59,807 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:00:59,807 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 44 transitions. [2018-11-23 13:00:59,807 INFO L481 AbstractCegarLoop]: Interpolant automaton has 15 states. [2018-11-23 13:00:59,808 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 44 transitions. [2018-11-23 13:00:59,808 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 30 [2018-11-23 13:00:59,808 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:00:59,808 INFO L402 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:00:59,809 INFO L423 AbstractCegarLoop]: === Iteration 7 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:00:59,809 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:00:59,809 INFO L82 PathProgramCache]: Analyzing trace with hash 479654609, now seen corresponding path program 2 times [2018-11-23 13:00:59,809 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 13:00:59,809 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 13:00:59,810 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:59,810 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 13:00:59,811 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:00:59,831 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:01:00,082 INFO L256 TraceCheckUtils]: 0: Hoare triple {1384#true} call ULTIMATE.init(); {1384#true} is VALID [2018-11-23 13:01:00,082 INFO L273 TraceCheckUtils]: 1: Hoare triple {1384#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1384#true} is VALID [2018-11-23 13:01:00,082 INFO L273 TraceCheckUtils]: 2: Hoare triple {1384#true} assume true; {1384#true} is VALID [2018-11-23 13:01:00,083 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1384#true} {1384#true} #64#return; {1384#true} is VALID [2018-11-23 13:01:00,083 INFO L256 TraceCheckUtils]: 4: Hoare triple {1384#true} call #t~ret15 := main(); {1384#true} is VALID [2018-11-23 13:01:00,084 INFO L273 TraceCheckUtils]: 5: Hoare triple {1384#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {1386#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:00,085 INFO L273 TraceCheckUtils]: 6: Hoare triple {1386#(= (select |#valid| |main_~#list~0.base|) 1)} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1386#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:00,085 INFO L273 TraceCheckUtils]: 7: Hoare triple {1386#(= (select |#valid| |main_~#list~0.base|) 1)} assume !!(0 != #t~nondet5);havoc #t~nondet5; {1386#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:00,088 INFO L273 TraceCheckUtils]: 8: Hoare triple {1386#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {1386#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:00,088 INFO L273 TraceCheckUtils]: 9: Hoare triple {1386#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {1386#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:00,089 INFO L256 TraceCheckUtils]: 10: Hoare triple {1386#(= (select |#valid| |main_~#list~0.base|) 1)} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {1387#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:01:00,091 INFO L273 TraceCheckUtils]: 11: Hoare triple {1387#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {1388#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 13:01:00,093 INFO L273 TraceCheckUtils]: 12: Hoare triple {1388#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume true; {1388#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 13:01:00,095 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1388#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} {1386#(= (select |#valid| |main_~#list~0.base|) 1)} #68#return; {1386#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:00,096 INFO L273 TraceCheckUtils]: 14: Hoare triple {1386#(= (select |#valid| |main_~#list~0.base|) 1)} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1386#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:00,096 INFO L273 TraceCheckUtils]: 15: Hoare triple {1386#(= (select |#valid| |main_~#list~0.base|) 1)} assume !!(0 != #t~nondet5);havoc #t~nondet5; {1386#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:00,098 INFO L273 TraceCheckUtils]: 16: Hoare triple {1386#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {1386#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:00,099 INFO L273 TraceCheckUtils]: 17: Hoare triple {1386#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {1389#(and (<= (+ main_~base~0 1) main_~hash~0) (= (select |#valid| |main_~#list~0.base|) 1))} is VALID [2018-11-23 13:01:00,105 INFO L256 TraceCheckUtils]: 18: Hoare triple {1389#(and (<= (+ main_~base~0 1) main_~hash~0) (= (select |#valid| |main_~#list~0.base|) 1))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {1387#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:01:00,107 INFO L273 TraceCheckUtils]: 19: Hoare triple {1387#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {1390#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} is VALID [2018-11-23 13:01:00,108 INFO L273 TraceCheckUtils]: 20: Hoare triple {1390#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} assume true; {1390#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} is VALID [2018-11-23 13:01:00,110 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {1390#(or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))))} {1389#(and (<= (+ main_~base~0 1) main_~hash~0) (= (select |#valid| |main_~#list~0.base|) 1))} #68#return; {1391#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} is VALID [2018-11-23 13:01:00,110 INFO L273 TraceCheckUtils]: 22: Hoare triple {1391#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1391#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} is VALID [2018-11-23 13:01:00,113 INFO L273 TraceCheckUtils]: 23: Hoare triple {1391#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} assume !(0 != #t~nondet5);havoc #t~nondet5; {1391#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} is VALID [2018-11-23 13:01:00,113 INFO L273 TraceCheckUtils]: 24: Hoare triple {1391#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {1391#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} is VALID [2018-11-23 13:01:00,115 INFO L273 TraceCheckUtils]: 25: Hoare triple {1391#(<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {1392#|main_#t~short11|} is VALID [2018-11-23 13:01:00,115 INFO L273 TraceCheckUtils]: 26: Hoare triple {1392#|main_#t~short11|} assume !#t~short11; {1385#false} is VALID [2018-11-23 13:01:00,115 INFO L273 TraceCheckUtils]: 27: Hoare triple {1385#false} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {1385#false} is VALID [2018-11-23 13:01:00,115 INFO L273 TraceCheckUtils]: 28: Hoare triple {1385#false} assume !false; {1385#false} is VALID [2018-11-23 13:01:00,118 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 1 proven. 6 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-23 13:01:00,118 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:01:00,118 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 13:01:00,127 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-23 13:01:00,172 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 13:01:00,172 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 13:01:00,187 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:01:00,189 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:01:00,217 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 13:01:00,222 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:00,230 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:01:00,230 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:10, output treesize:9 [2018-11-23 13:01:00,232 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:01:00,232 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_24|]. (and (= |main_~#list~0.offset| 0) (= |#valid| (store |v_#valid_24| |main_~#list~0.base| 1))) [2018-11-23 13:01:00,232 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|))) [2018-11-23 13:01:00,418 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:01:00,420 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:01:00,421 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 17 treesize of output 21 [2018-11-23 13:01:00,425 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:00,433 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 13:01:00,434 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:20, output treesize:18 [2018-11-23 13:01:00,441 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:01:00,441 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_BEFORE_CALL_12|, append_to_list_~node~0.base]. (and (= |#valid| (store |v_#valid_BEFORE_CALL_12| append_to_list_~node~0.base 1)) (= 1 (select |v_#valid_BEFORE_CALL_12| |main_~#list~0.base|)) (= |main_~#list~0.offset| 0) (= 0 (select |v_#valid_BEFORE_CALL_12| append_to_list_~node~0.base))) [2018-11-23 13:01:00,441 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [append_to_list_~node~0.base]. (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|))) [2018-11-23 13:01:00,633 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 31 treesize of output 24 [2018-11-23 13:01:00,639 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:01:00,640 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:00,677 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 23 treesize of output 35 [2018-11-23 13:01:00,687 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 24 treesize of output 12 [2018-11-23 13:01:00,690 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:00,726 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 21 treesize of output 15 [2018-11-23 13:01:00,730 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 2 xjuncts. [2018-11-23 13:01:00,743 INFO L267 ElimStorePlain]: Start of recursive call 4: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:01:00,754 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:01:00,792 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 13:01:00,801 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:01:00,826 INFO L267 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:00,829 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:01:00,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 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 13:01:00,855 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:01:00,856 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:00,859 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:01:00,884 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 3 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:01:00,885 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 6 variables, input treesize:62, output treesize:50 [2018-11-23 13:01:00,894 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:01:00,894 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_17|, append_to_list_~node~0.base, append_to_list_~node~0.offset, append_to_list_~hash, |v_#memory_$Pointer$.offset_22|, |v_#memory_$Pointer$.base_22|]. (and (= (store |v_#memory_$Pointer$.offset_22| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.offset_22| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.offset)) |#memory_$Pointer$.offset|) (= (store |v_#memory_$Pointer$.base_22| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.base_22| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.base)) |#memory_$Pointer$.base|) (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= (let ((.cse0 (store |v_#memory_int_17| append_to_list_~node~0.base (store (select |v_#memory_int_17| append_to_list_~node~0.base) append_to_list_~node~0.offset append_to_list_~hash)))) (store .cse0 |append_to_list_#in~list.base| (store (select .cse0 |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| (select (select |#memory_int| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))) |#memory_int|) (<= |append_to_list_#in~hash| append_to_list_~hash)) [2018-11-23 13:01:00,894 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (let ((.cse2 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (.cse1 (= (select |old(#valid)| .cse0) 0))) (or (and (= .cse0 |append_to_list_#in~list.base|) .cse1 (= |append_to_list_#in~list.offset| .cse2)) (and (<= |append_to_list_#in~hash| (select (select |#memory_int| .cse0) .cse2)) .cse1)))) [2018-11-23 13:01:00,980 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:01:00,982 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:01:00,983 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:01:00,984 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 44 treesize of output 45 [2018-11-23 13:01:00,989 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:01,061 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:01:01,061 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:86, output treesize:29 [2018-11-23 13:01:01,065 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:01:01,066 WARN L384 uantifierElimination]: Input elimination task: ∃ [v_prenex_6, v_prenex_7, |v_old(#valid)_AFTER_CALL_12|, append_to_list_~node~0.base]. (let ((.cse1 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (.cse2 (= |main_~#list~0.offset| 0)) (.cse0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (or (and (= (select v_prenex_6 |main_~#list~0.base|) 1) (= (select v_prenex_6 .cse0) 0) (not (= v_prenex_7 |main_~#list~0.base|)) (<= (+ main_~base~0 1) (select (select |#memory_int| .cse0) .cse1)) .cse2 (= 1 (select v_prenex_6 v_prenex_7))) (and (= (select |v_old(#valid)_AFTER_CALL_12| .cse0) 0) (not (= append_to_list_~node~0.base |main_~#list~0.base|)) (= 1 (select |v_old(#valid)_AFTER_CALL_12| append_to_list_~node~0.base)) (= (select |v_old(#valid)_AFTER_CALL_12| |main_~#list~0.base|) 1) (= |main_~#list~0.offset| .cse1) .cse2 (= |main_~#list~0.base| .cse0)))) [2018-11-23 13:01:01,066 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (and (not (= |main_~#list~0.base| .cse0)) (<= (+ main_~base~0 1) (select (select |#memory_int| .cse0) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))) [2018-11-23 13:01:01,133 INFO L256 TraceCheckUtils]: 0: Hoare triple {1384#true} call ULTIMATE.init(); {1384#true} is VALID [2018-11-23 13:01:01,133 INFO L273 TraceCheckUtils]: 1: Hoare triple {1384#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1384#true} is VALID [2018-11-23 13:01:01,134 INFO L273 TraceCheckUtils]: 2: Hoare triple {1384#true} assume true; {1384#true} is VALID [2018-11-23 13:01:01,134 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1384#true} {1384#true} #64#return; {1384#true} is VALID [2018-11-23 13:01:01,134 INFO L256 TraceCheckUtils]: 4: Hoare triple {1384#true} call #t~ret15 := main(); {1384#true} is VALID [2018-11-23 13:01:01,136 INFO L273 TraceCheckUtils]: 5: Hoare triple {1384#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {1411#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:01:01,138 INFO L273 TraceCheckUtils]: 6: Hoare triple {1411#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1411#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:01:01,141 INFO L273 TraceCheckUtils]: 7: Hoare triple {1411#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume !!(0 != #t~nondet5);havoc #t~nondet5; {1411#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:01:01,143 INFO L273 TraceCheckUtils]: 8: Hoare triple {1411#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {1411#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:01:01,144 INFO L273 TraceCheckUtils]: 9: Hoare triple {1411#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {1411#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:01:01,145 INFO L256 TraceCheckUtils]: 10: Hoare triple {1411#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {1387#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:01:01,147 INFO L273 TraceCheckUtils]: 11: Hoare triple {1387#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {1430#(exists ((append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#valid| (store |old(#valid)| append_to_list_~node~0.base 1))))} is VALID [2018-11-23 13:01:01,148 INFO L273 TraceCheckUtils]: 12: Hoare triple {1430#(exists ((append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#valid| (store |old(#valid)| append_to_list_~node~0.base 1))))} assume true; {1430#(exists ((append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#valid| (store |old(#valid)| append_to_list_~node~0.base 1))))} is VALID [2018-11-23 13:01:01,150 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1430#(exists ((append_to_list_~node~0.base Int)) (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= |#valid| (store |old(#valid)| append_to_list_~node~0.base 1))))} {1411#(and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} #68#return; {1437#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:01:01,151 INFO L273 TraceCheckUtils]: 14: Hoare triple {1437#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1437#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:01:01,152 INFO L273 TraceCheckUtils]: 15: Hoare triple {1437#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume !!(0 != #t~nondet5);havoc #t~nondet5; {1437#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:01:01,153 INFO L273 TraceCheckUtils]: 16: Hoare triple {1437#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {1437#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:01:01,153 INFO L273 TraceCheckUtils]: 17: Hoare triple {1437#(and (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {1450#(and (< main_~base~0 main_~hash~0) (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} is VALID [2018-11-23 13:01:01,155 INFO L256 TraceCheckUtils]: 18: Hoare triple {1450#(and (< main_~base~0 main_~hash~0) (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {1387#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:01:01,157 INFO L273 TraceCheckUtils]: 19: Hoare triple {1387#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {1457#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} is VALID [2018-11-23 13:01:01,158 INFO L273 TraceCheckUtils]: 20: Hoare triple {1457#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} assume true; {1457#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} is VALID [2018-11-23 13:01:01,180 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {1457#(or (and (= (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) |append_to_list_#in~list.base|) (= |append_to_list_#in~list.offset| (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (and (<= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)))} {1450#(and (< main_~base~0 main_~hash~0) (exists ((append_to_list_~node~0.base Int)) (and (= (select |#valid| append_to_list_~node~0.base) 1) (not (= append_to_list_~node~0.base |main_~#list~0.base|)))) (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|)))} #68#return; {1464#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:01:01,195 INFO L273 TraceCheckUtils]: 22: Hoare triple {1464#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1464#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:01:01,210 INFO L273 TraceCheckUtils]: 23: Hoare triple {1464#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} assume !(0 != #t~nondet5);havoc #t~nondet5; {1464#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:01:01,224 INFO L273 TraceCheckUtils]: 24: Hoare triple {1464#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {1464#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} is VALID [2018-11-23 13:01:01,225 INFO L273 TraceCheckUtils]: 25: Hoare triple {1464#(and (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (+ main_~base~0 1) (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (= |main_~#list~0.offset| 0))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {1392#|main_#t~short11|} is VALID [2018-11-23 13:01:01,227 INFO L273 TraceCheckUtils]: 26: Hoare triple {1392#|main_#t~short11|} assume !#t~short11; {1385#false} is VALID [2018-11-23 13:01:01,227 INFO L273 TraceCheckUtils]: 27: Hoare triple {1385#false} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {1385#false} is VALID [2018-11-23 13:01:01,227 INFO L273 TraceCheckUtils]: 28: Hoare triple {1385#false} assume !false; {1385#false} is VALID [2018-11-23 13:01:01,230 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 5 proven. 6 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 13:01:01,250 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 13:01:01,250 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 15 [2018-11-23 13:01:01,251 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 29 [2018-11-23 13:01:01,252 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 13:01:01,252 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states. [2018-11-23 13:01:01,311 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 13:01:01,312 INFO L459 AbstractCegarLoop]: Interpolant automaton has 15 states [2018-11-23 13:01:01,312 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2018-11-23 13:01:01,312 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=172, Unknown=0, NotChecked=0, Total=210 [2018-11-23 13:01:01,312 INFO L87 Difference]: Start difference. First operand 34 states and 44 transitions. Second operand 15 states. [2018-11-23 13:01:02,351 WARN L180 SmtUtils]: Spent 699.00 ms on a formula simplification that was a NOOP. DAG size: 36 [2018-11-23 13:01:03,204 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:01:03,205 INFO L93 Difference]: Finished difference Result 60 states and 76 transitions. [2018-11-23 13:01:03,205 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2018-11-23 13:01:03,205 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 29 [2018-11-23 13:01:03,205 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:01:03,205 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2018-11-23 13:01:03,207 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 66 transitions. [2018-11-23 13:01:03,207 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2018-11-23 13:01:03,209 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 66 transitions. [2018-11-23 13:01:03,209 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states and 66 transitions. [2018-11-23 13:01:03,345 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 13:01:03,347 INFO L225 Difference]: With dead ends: 60 [2018-11-23 13:01:03,347 INFO L226 Difference]: Without dead ends: 53 [2018-11-23 13:01:03,348 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 46 GetRequests, 26 SyntacticMatches, 0 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 60 ImplicationChecksByTransitivity, 1.2s TimeCoverageRelationStatistics Valid=97, Invalid=365, Unknown=0, NotChecked=0, Total=462 [2018-11-23 13:01:03,348 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 53 states. [2018-11-23 13:01:03,407 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 53 to 34. [2018-11-23 13:01:03,407 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 13:01:03,407 INFO L82 GeneralOperation]: Start isEquivalent. First operand 53 states. Second operand 34 states. [2018-11-23 13:01:03,408 INFO L74 IsIncluded]: Start isIncluded. First operand 53 states. Second operand 34 states. [2018-11-23 13:01:03,408 INFO L87 Difference]: Start difference. First operand 53 states. Second operand 34 states. [2018-11-23 13:01:03,410 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:01:03,410 INFO L93 Difference]: Finished difference Result 53 states and 66 transitions. [2018-11-23 13:01:03,411 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 66 transitions. [2018-11-23 13:01:03,411 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:01:03,411 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:01:03,412 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 53 states. [2018-11-23 13:01:03,412 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 53 states. [2018-11-23 13:01:03,414 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:01:03,414 INFO L93 Difference]: Finished difference Result 53 states and 66 transitions. [2018-11-23 13:01:03,414 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 66 transitions. [2018-11-23 13:01:03,414 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 13:01:03,415 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 13:01:03,415 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 13:01:03,415 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 13:01:03,415 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2018-11-23 13:01:03,416 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 43 transitions. [2018-11-23 13:01:03,416 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 43 transitions. Word has length 29 [2018-11-23 13:01:03,417 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:01:03,417 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 43 transitions. [2018-11-23 13:01:03,417 INFO L481 AbstractCegarLoop]: Interpolant automaton has 15 states. [2018-11-23 13:01:03,417 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 43 transitions. [2018-11-23 13:01:03,418 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2018-11-23 13:01:03,418 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:01:03,418 INFO L402 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:01:03,418 INFO L423 AbstractCegarLoop]: === Iteration 8 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:01:03,418 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:01:03,419 INFO L82 PathProgramCache]: Analyzing trace with hash -1191967945, now seen corresponding path program 2 times [2018-11-23 13:01:03,419 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 13:01:03,419 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 13:01:03,420 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:01:03,420 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 13:01:03,420 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:01:03,451 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:01:04,348 INFO L256 TraceCheckUtils]: 0: Hoare triple {1721#true} call ULTIMATE.init(); {1721#true} is VALID [2018-11-23 13:01:04,348 INFO L273 TraceCheckUtils]: 1: Hoare triple {1721#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1721#true} is VALID [2018-11-23 13:01:04,349 INFO L273 TraceCheckUtils]: 2: Hoare triple {1721#true} assume true; {1721#true} is VALID [2018-11-23 13:01:04,349 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1721#true} {1721#true} #64#return; {1721#true} is VALID [2018-11-23 13:01:04,349 INFO L256 TraceCheckUtils]: 4: Hoare triple {1721#true} call #t~ret15 := main(); {1721#true} is VALID [2018-11-23 13:01:04,350 INFO L273 TraceCheckUtils]: 5: Hoare triple {1721#true} call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4);assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~base~0 := #t~nondet4;havoc #t~nondet4; {1723#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:04,351 INFO L273 TraceCheckUtils]: 6: Hoare triple {1723#(= (select |#valid| |main_~#list~0.base|) 1)} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1723#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:04,351 INFO L273 TraceCheckUtils]: 7: Hoare triple {1723#(= (select |#valid| |main_~#list~0.base|) 1)} assume !!(0 != #t~nondet5);havoc #t~nondet5; {1723#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:04,351 INFO L273 TraceCheckUtils]: 8: Hoare triple {1723#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {1723#(= (select |#valid| |main_~#list~0.base|) 1)} is VALID [2018-11-23 13:01:04,352 INFO L273 TraceCheckUtils]: 9: Hoare triple {1723#(= (select |#valid| |main_~#list~0.base|) 1)} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {1724#(and (<= main_~hash~0 (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1))} is VALID [2018-11-23 13:01:04,353 INFO L256 TraceCheckUtils]: 10: Hoare triple {1724#(and (<= main_~hash~0 (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {1725#(= |#valid| |old(#valid)|)} is VALID [2018-11-23 13:01:04,356 INFO L273 TraceCheckUtils]: 11: Hoare triple {1725#(= |#valid| |old(#valid)|)} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {1726#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (= 0 (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (= (select |#valid| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 1) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 13:01:04,358 INFO L273 TraceCheckUtils]: 12: Hoare triple {1726#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (= 0 (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (= (select |#valid| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 1) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} assume true; {1726#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (= 0 (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (= (select |#valid| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 1) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} is VALID [2018-11-23 13:01:04,361 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1726#(and (or (= |#valid| |old(#valid)|) (= 0 (select |old(#valid)| (@diff |old(#valid)| |#valid|)))) (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (= 0 (select |old(#valid)| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (= |append_to_list_#in~hash| (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 0)) (= (select |#valid| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 1) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))) (= |#valid| (store |old(#valid)| (@diff |old(#valid)| |#valid|) (select |#valid| (@diff |old(#valid)| |#valid|)))))} {1724#(and (<= main_~hash~0 (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1))} #68#return; {1727#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 1))} is VALID [2018-11-23 13:01:04,362 INFO L273 TraceCheckUtils]: 14: Hoare triple {1727#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 1))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1727#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 1))} is VALID [2018-11-23 13:01:04,365 INFO L273 TraceCheckUtils]: 15: Hoare triple {1727#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 1))} assume !!(0 != #t~nondet5);havoc #t~nondet5; {1727#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 1))} is VALID [2018-11-23 13:01:04,367 INFO L273 TraceCheckUtils]: 16: Hoare triple {1727#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 1))} assume ~base~0 >= 0 && ~base~0 <= 1000000;~base~0 := ~base~0;call #t~ret6 := hash_fun();assume -2147483648 <= #t~ret6 && #t~ret6 <= 2147483647;~hash~0 := #t~ret6;havoc #t~ret6; {1727#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 1))} is VALID [2018-11-23 13:01:04,367 INFO L273 TraceCheckUtils]: 17: Hoare triple {1727#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 1))} assume ~hash~0 > ~base~0 && ~hash~0 < 100 + ~base~0; {1727#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 1))} is VALID [2018-11-23 13:01:04,369 INFO L256 TraceCheckUtils]: 18: Hoare triple {1727#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 1))} call append_to_list(~#list~0.base, ~#list~0.offset, ~hash~0); {1728#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 13:01:04,373 INFO L273 TraceCheckUtils]: 19: Hoare triple {1728#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~list.base, ~list.offset := #in~list.base, #in~list.offset;~hash := #in~hash;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~node~0.base, ~node~0.offset := #t~malloc2.base, #t~malloc2.offset;call #t~mem3.base, #t~mem3.offset := read~$Pointer$(~list.base, ~list.offset, 4);call write~$Pointer$(#t~mem3.base, #t~mem3.offset, ~node~0.base, 4 + ~node~0.offset, 4);havoc #t~mem3.base, #t~mem3.offset;call write~int(~hash, ~node~0.base, ~node~0.offset, 4);call write~$Pointer$(~node~0.base, ~node~0.offset, ~list.base, ~list.offset, 4); {1729#(and (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (or (= (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) |append_to_list_#in~list.base|) (= 0 (select |old(#valid)| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|)) (= (store (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|))) |#memory_int|) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4) (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|))) (= (@diff |old(#memory_int)| |#memory_int|) |append_to_list_#in~list.base|) (= |#memory_int| |old(#memory_int)|)) (or (= (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|) |append_to_list_#in~list.base|) (= 0 (select |old(#valid)| (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|))) (= (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|)))) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))} is VALID [2018-11-23 13:01:04,375 INFO L273 TraceCheckUtils]: 20: Hoare triple {1729#(and (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (or (= (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) |append_to_list_#in~list.base|) (= 0 (select |old(#valid)| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|)) (= (store (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|))) |#memory_int|) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4) (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|))) (= (@diff |old(#memory_int)| |#memory_int|) |append_to_list_#in~list.base|) (= |#memory_int| |old(#memory_int)|)) (or (= (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|) |append_to_list_#in~list.base|) (= 0 (select |old(#valid)| (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|))) (= (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|)))) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))} assume true; {1729#(and (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (or (= (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) |append_to_list_#in~list.base|) (= 0 (select |old(#valid)| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|)) (= (store (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|))) |#memory_int|) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4) (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|))) (= (@diff |old(#memory_int)| |#memory_int|) |append_to_list_#in~list.base|) (= |#memory_int| |old(#memory_int)|)) (or (= (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|) |append_to_list_#in~list.base|) (= 0 (select |old(#valid)| (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|))) (= (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|)))) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))} is VALID [2018-11-23 13:01:04,380 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {1729#(and (or (= 0 (select |old(#valid)| |append_to_list_#in~list.base|)) (and (or (= (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) |append_to_list_#in~list.base|) (= 0 (select |old(#valid)| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|)) (= (store (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|))) |#memory_int|) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4) (select (select |old(#memory_$Pointer$.base)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (= (select (select |old(#memory_$Pointer$.offset)| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) 4)) (or (= 0 (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|))) (= (@diff |old(#memory_int)| |#memory_int|) |append_to_list_#in~list.base|) (= |#memory_int| |old(#memory_int)|)) (or (= (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|) |append_to_list_#in~list.base|) (= 0 (select |old(#valid)| (@diff (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|))) (= (store (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (select |#memory_int| (@diff (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))) |#memory_int|)))) (= 0 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))} {1727#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)) (= (select |#valid| |main_~#list~0.base|) 1) (= (select |#valid| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 1))} #68#return; {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:01:04,382 INFO L273 TraceCheckUtils]: 22: Hoare triple {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:01:04,383 INFO L273 TraceCheckUtils]: 23: Hoare triple {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} assume !(0 != #t~nondet5);havoc #t~nondet5; {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:01:04,385 INFO L273 TraceCheckUtils]: 24: Hoare triple {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:01:04,386 INFO L273 TraceCheckUtils]: 25: Hoare triple {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:01:04,387 INFO L273 TraceCheckUtils]: 26: Hoare triple {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:01:04,387 INFO L273 TraceCheckUtils]: 27: Hoare triple {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} assume !!#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} is VALID [2018-11-23 13:01:04,389 INFO L273 TraceCheckUtils]: 28: Hoare triple {1730#(and (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) 0) (+ main_~base~0 99)) (not (= |main_~#list~0.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4)))) (= 0 (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 4))) (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) 0))} call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, 4 + #t~mem12.offset, 4);call write~$Pointer$(#t~mem13.base, #t~mem13.offset, ~#list~0.base, ~#list~0.offset, 4);havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset; {1731#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)))} is VALID [2018-11-23 13:01:04,390 INFO L273 TraceCheckUtils]: 29: Hoare triple {1731#(and (= 0 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)))} call #t~mem14.base, #t~mem14.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); {1732#(and (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) |main_#t~mem14.offset|) (= |main_#t~mem14.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)))} is VALID [2018-11-23 13:01:04,392 INFO L273 TraceCheckUtils]: 30: Hoare triple {1732#(and (= (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|) |main_#t~mem14.offset|) (= |main_#t~mem14.offset| 0) (<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) 0) (+ main_~base~0 99)))} assume !!(#t~mem14.base != 0 || #t~mem14.offset != 0);havoc #t~mem14.base, #t~mem14.offset;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem8 := read~int(#t~mem7.base, #t~mem7.offset, 4);#t~short11 := #t~mem8 >= ~base~0; {1733#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} is VALID [2018-11-23 13:01:04,393 INFO L273 TraceCheckUtils]: 31: Hoare triple {1733#(<= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99))} assume #t~short11;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call #t~mem10 := read~int(#t~mem9.base, #t~mem9.offset, 4);#t~short11 := #t~mem10 < 100 + ~base~0; {1734#|main_#t~short11|} is VALID [2018-11-23 13:01:04,393 INFO L273 TraceCheckUtils]: 32: Hoare triple {1734#|main_#t~short11|} assume !#t~short11;havoc #t~mem7.base, #t~mem7.offset;havoc #t~mem8;havoc #t~mem10;havoc #t~short11;havoc #t~mem9.base, #t~mem9.offset; {1722#false} is VALID [2018-11-23 13:01:04,394 INFO L273 TraceCheckUtils]: 33: Hoare triple {1722#false} assume !false; {1722#false} is VALID [2018-11-23 13:01:04,400 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 5 proven. 11 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 13:01:04,400 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:01:04,400 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 13:01:04,410 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-23 13:01:04,459 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 13:01:04,460 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 13:01:04,480 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:01:04,483 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:01:04,503 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 13:01:04,506 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:04,514 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:01:04,514 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:10, output treesize:9 [2018-11-23 13:01:04,517 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:01:04,517 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#valid_27|]. (and (= |#valid| (store |v_#valid_27| |main_~#list~0.base| 1)) (= |main_~#list~0.offset| 0)) [2018-11-23 13:01:04,517 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= |main_~#list~0.offset| 0) (= 1 (select |#valid| |main_~#list~0.base|))) [2018-11-23 13:01:04,618 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 13:01:04,623 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:01:04,625 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:04,630 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:01:04,656 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 31 treesize of output 28 [2018-11-23 13:01:04,661 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 12 treesize of output 11 [2018-11-23 13:01:04,663 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:04,699 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 27 treesize of output 47 [2018-11-23 13:01:04,719 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 32 treesize of output 20 [2018-11-23 13:01:04,721 INFO L267 ElimStorePlain]: Start of recursive call 7: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:04,757 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 25 treesize of output 19 [2018-11-23 13:01:04,760 INFO L267 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 2 xjuncts. [2018-11-23 13:01:04,773 INFO L267 ElimStorePlain]: Start of recursive call 6: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:01:04,785 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:01:04,812 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 13:01:04,818 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 13:01:04,820 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:04,824 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:01:04,852 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 3 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 13:01:04,853 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 6 variables, input treesize:68, output treesize:70 [2018-11-23 13:01:04,861 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:01:04,861 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_18|, append_to_list_~node~0.base, append_to_list_~node~0.offset, append_to_list_~hash, |v_#memory_$Pointer$.base_23|, |v_#memory_$Pointer$.offset_23|]. (and (= (select |old(#valid)| append_to_list_~node~0.base) 0) (= (let ((.cse0 (store |v_#memory_int_18| append_to_list_~node~0.base (store (select |v_#memory_int_18| append_to_list_~node~0.base) append_to_list_~node~0.offset append_to_list_~hash)))) (store .cse0 |append_to_list_#in~list.base| (store (select .cse0 |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| (select (select |#memory_int| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)))) |#memory_int|) (= |#valid| (store |old(#valid)| append_to_list_~node~0.base 1)) (= |#memory_$Pointer$.base| (store |v_#memory_$Pointer$.base_23| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.base_23| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.base))) (= (store |v_#memory_$Pointer$.offset_23| |append_to_list_#in~list.base| (store (select |v_#memory_$Pointer$.offset_23| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset| append_to_list_~node~0.offset)) |#memory_$Pointer$.offset|) (<= append_to_list_~hash |append_to_list_#in~hash|)) [2018-11-23 13:01:04,861 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse1 (select (select |#memory_$Pointer$.base| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|))) (let ((.cse0 (= (store |old(#valid)| .cse1 1) |#valid|)) (.cse3 (select (select |#memory_$Pointer$.offset| |append_to_list_#in~list.base|) |append_to_list_#in~list.offset|)) (.cse2 (= (select |old(#valid)| .cse1) 0))) (or (and .cse0 (= .cse1 |append_to_list_#in~list.base|) .cse2 (= |append_to_list_#in~list.offset| .cse3)) (and .cse0 (<= (select (select |#memory_int| .cse1) .cse3) |append_to_list_#in~hash|) .cse2)))) [2018-11-23 13:01:04,968 WARN L307 Elim1Store]: Array PQE input equivalent to false [2018-11-23 13:01:04,969 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:04,988 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:01:04,989 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 13:01:04,990 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 29 [2018-11-23 13:01:04,998 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 13:01:05,029 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 13:01:05,029 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:88, output treesize:43 [2018-11-23 13:01:05,036 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 13:01:05,036 WARN L384 uantifierElimination]: Input elimination task: ∃ [v_prenex_8, |v_#valid_BEFORE_CALL_16|]. (let ((.cse2 (= |main_~#list~0.offset| 0)) (.cse0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|)) (.cse1 (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|))) (or (and (= 0 (select |v_#valid_BEFORE_CALL_16| .cse0)) (= |main_~#list~0.offset| .cse1) (= |#valid| (store |v_#valid_BEFORE_CALL_16| .cse0 1)) (= (select |v_#valid_BEFORE_CALL_16| |main_~#list~0.base|) 1) .cse2 (= |main_~#list~0.base| .cse0)) (and (= 0 (select v_prenex_8 .cse0)) (= |#valid| (store v_prenex_8 .cse0 1)) (= (select v_prenex_8 |main_~#list~0.base|) 1) .cse2 (<= (select (select |#memory_int| .cse0) .cse1) (+ main_~base~0 99))))) [2018-11-23 13:01:05,036 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (select (select |#memory_$Pointer$.base| |main_~#list~0.base|) |main_~#list~0.offset|))) (and (not (= |main_~#list~0.base| .cse0)) (= 1 (select |#valid| .cse0)) (= |main_~#list~0.offset| 0) (<= (select (select |#memory_int| .cse0) (select (select |#memory_$Pointer$.offset| |main_~#list~0.base|) |main_~#list~0.offset|)) (+ main_~base~0 99)) (= 1 (select |#valid| |main_~#list~0.base|)))) [2018-11-23 13:01:05,473 WARN L521 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 7 z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 13:01:05,474 FATAL L292 ToolchainWalker]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.NullPointerException at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.arrays.MultiDimensionalSort.areDimensionsConsistent(MultiDimensionalSort.java:84) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.arrays.MultiDimensionalSelect.classInvariant(MultiDimensionalSelect.java:113) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.arrays.MultiDimensionalSelect.(MultiDimensionalSelect.java:90) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.arrays.MultiDimensionalStore.isCompatibleSelect(MultiDimensionalStore.java:105) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.arrays.MultiDimensionalStore.(MultiDimensionalStore.java:73) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.arrays.MultiDimensionalSelectOverStore.(MultiDimensionalSelectOverStore.java:48) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.arrays.MultiDimensionalSelectOverStore.convert(MultiDimensionalSelectOverStore.java:75) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.ArrayQuantifierEliminationUtils.elimAllSos(ArrayQuantifierEliminationUtils.java:57) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.ElimStorePlain.doElimAllRec(ElimStorePlain.java:232) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.ElimStorePlain.doElimOneRec(ElimStorePlain.java:225) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.ElimStorePlain.doElimAllRec(ElimStorePlain.java:247) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.ElimStorePlain.elimAllRec(ElimStorePlain.java:199) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.elim(PartialQuantifierElimination.java:293) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.tryToEliminate(PartialQuantifierElimination.java:101) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer$QuantifierEliminationPostprocessor.postprocess(IterativePredicateTransformer.java:245) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer.applyPostprocessors(IterativePredicateTransformer.java:439) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer.computeStrongestPostconditionSequence(IterativePredicateTransformer.java:200) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.computeInterpolantsUsingUnsatCore(TraceCheckSpWp.java:286) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.computeInterpolants(TraceCheckSpWp.java:175) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.(TraceCheckSpWp.java:162) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructForwardBackward(TraceCheckConstructor.java:224) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructTraceCheck(TraceCheckConstructor.java:188) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.get(TraceCheckConstructor.java:165) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.MultiTrackRefinementStrategy.getTraceCheck(MultiTrackRefinementStrategy.java:232) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseRefinementStrategy.checkFeasibility(BaseRefinementStrategy.java:223) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseRefinementStrategy.executeStrategy(BaseRefinementStrategy.java:197) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceAbstractionRefinementEngine.(TraceAbstractionRefinementEngine.java:70) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.BasicCegarLoop.isCounterexampleFeasible(BasicCegarLoop.java:456) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterateInternal(AbstractCegarLoop.java:434) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterate(AbstractCegarLoop.java:376) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.iterate(TraceAbstractionStarter.java:334) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:174) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:126) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:123) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:168) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runTool(PluginConnector.java:151) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.run(PluginConnector.java:128) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.executePluginConnector(ToolchainWalker.java:232) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.processPlugin(ToolchainWalker.java:226) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walkUnprotected(ToolchainWalker.java:142) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walk(ToolchainWalker.java:104) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainManager$Toolchain.processToolchain(ToolchainManager.java:316) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) [2018-11-23 13:01:05,479 INFO L168 Benchmark]: Toolchain (without parser) took 36047.31 ms. Allocated memory was 1.5 GB in the beginning and 2.6 GB in the end (delta: 1.0 GB). Free memory was 1.4 GB in the beginning and 1.9 GB in the end (delta: -471.2 MB). Peak memory consumption was 576.3 MB. Max. memory is 7.1 GB. [2018-11-23 13:01:05,480 INFO L168 Benchmark]: CDTParser took 0.20 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 13:01:05,480 INFO L168 Benchmark]: CACSL2BoogieTranslator took 692.68 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 21.1 MB). Peak memory consumption was 21.1 MB. Max. memory is 7.1 GB. [2018-11-23 13:01:05,481 INFO L168 Benchmark]: Boogie Procedure Inliner took 119.08 ms. Allocated memory was 1.5 GB in the beginning and 2.2 GB in the end (delta: 720.4 MB). Free memory was 1.4 GB in the beginning and 2.2 GB in the end (delta: -791.0 MB). Peak memory consumption was 15.9 MB. Max. memory is 7.1 GB. [2018-11-23 13:01:05,482 INFO L168 Benchmark]: Boogie Preprocessor took 37.38 ms. Allocated memory is still 2.2 GB. Free memory is still 2.2 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 13:01:05,482 INFO L168 Benchmark]: RCFGBuilder took 804.56 ms. Allocated memory is still 2.2 GB. Free memory was 2.2 GB in the beginning and 2.2 GB in the end (delta: 37.1 MB). Peak memory consumption was 37.1 MB. Max. memory is 7.1 GB. [2018-11-23 13:01:05,482 INFO L168 Benchmark]: TraceAbstraction took 34386.77 ms. Allocated memory was 2.2 GB in the beginning and 2.6 GB in the end (delta: 327.2 MB). Free memory was 2.2 GB in the beginning and 1.9 GB in the end (delta: 261.6 MB). Peak memory consumption was 588.8 MB. Max. memory is 7.1 GB. [2018-11-23 13:01:05,490 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - GenericResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.20 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 692.68 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 21.1 MB). Peak memory consumption was 21.1 MB. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 119.08 ms. Allocated memory was 1.5 GB in the beginning and 2.2 GB in the end (delta: 720.4 MB). Free memory was 1.4 GB in the beginning and 2.2 GB in the end (delta: -791.0 MB). Peak memory consumption was 15.9 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 37.38 ms. Allocated memory is still 2.2 GB. Free memory is still 2.2 GB. There was no memory consumed. Max. memory is 7.1 GB. * RCFGBuilder took 804.56 ms. Allocated memory is still 2.2 GB. Free memory was 2.2 GB in the beginning and 2.2 GB in the end (delta: 37.1 MB). Peak memory consumption was 37.1 MB. Max. memory is 7.1 GB. * TraceAbstraction took 34386.77 ms. Allocated memory was 2.2 GB in the beginning and 2.6 GB in the end (delta: 327.2 MB). Free memory was 2.2 GB in the beginning and 1.9 GB in the end (delta: 261.6 MB). Peak memory consumption was 588.8 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - ExceptionOrErrorResult: NullPointerException: null de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: NullPointerException: null: de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.arrays.MultiDimensionalSort.areDimensionsConsistent(MultiDimensionalSort.java:84) RESULT: Ultimate could not prove your program: Toolchain returned no result. Received shutdown request...