./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/list-simple/dll2c_insert_equal.i --full-output -ea --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version 03d7b7b3 Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/list-simple/dll2c_insert_equal.i -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 535caea86e22f289c2fcb0364594f5e7b1dfaabfa814e56099346e6a240c0067 --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 16:54:01,367 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 16:54:01,368 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 16:54:01,400 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 16:54:01,405 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 16:54:01,406 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 16:54:01,407 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 16:54:01,408 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 16:54:01,409 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 16:54:01,410 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 16:54:01,413 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 16:54:01,413 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 16:54:01,414 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 16:54:01,414 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 16:54:01,416 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 16:54:01,417 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 16:54:01,418 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 16:54:01,420 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 16:54:01,421 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 16:54:01,425 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 16:54:01,426 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 16:54:01,427 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 16:54:01,428 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 16:54:01,432 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 16:54:01,433 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 16:54:01,433 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 16:54:01,434 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 16:54:01,434 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 16:54:01,436 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 16:54:01,437 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 16:54:01,437 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 16:54:01,438 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 16:54:01,438 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 16:54:01,439 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 16:54:01,439 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 16:54:01,440 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 16:54:01,440 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 16:54:01,440 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 16:54:01,440 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 16:54:01,441 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 16:54:01,454 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 16:54:01,456 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf [2022-02-20 16:54:01,477 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 16:54:01,480 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 16:54:01,480 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 16:54:01,480 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 16:54:01,481 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 16:54:01,481 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 16:54:01,482 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 16:54:01,482 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 16:54:01,482 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 16:54:01,482 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 16:54:01,483 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 16:54:01,483 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-02-20 16:54:01,483 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 16:54:01,484 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 16:54:01,484 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 16:54:01,484 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 16:54:01,484 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 16:54:01,484 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 16:54:01,484 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 16:54:01,485 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 16:54:01,485 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 16:54:01,485 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 16:54:01,485 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 16:54:01,485 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 16:54:01,485 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:54:01,485 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 16:54:01,486 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 16:54:01,486 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 16:54:01,486 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-02-20 16:54:01,486 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-02-20 16:54:01,486 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 16:54:01,486 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 16:54:01,487 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 16:54:01,487 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> 535caea86e22f289c2fcb0364594f5e7b1dfaabfa814e56099346e6a240c0067 [2022-02-20 16:54:01,685 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 16:54:01,702 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 16:54:01,705 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 16:54:01,706 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 16:54:01,706 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 16:54:01,707 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/list-simple/dll2c_insert_equal.i [2022-02-20 16:54:01,752 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/df38103f1/70ee08e15e724eb48c50980d540dd140/FLAGf389c1a68 [2022-02-20 16:54:02,177 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 16:54:02,177 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/list-simple/dll2c_insert_equal.i [2022-02-20 16:54:02,190 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/df38103f1/70ee08e15e724eb48c50980d540dd140/FLAGf389c1a68 [2022-02-20 16:54:02,199 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/df38103f1/70ee08e15e724eb48c50980d540dd140 [2022-02-20 16:54:02,201 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 16:54:02,202 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 16:54:02,203 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 16:54:02,203 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 16:54:02,205 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 16:54:02,206 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,207 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@62bbe151 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02, skipping insertion in model container [2022-02-20 16:54:02,207 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,212 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 16:54:02,234 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 16:54:02,626 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/list-simple/dll2c_insert_equal.i[24877,24890] [2022-02-20 16:54:02,628 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:54:02,649 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 16:54:02,699 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/list-simple/dll2c_insert_equal.i[24877,24890] [2022-02-20 16:54:02,701 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:54:02,724 INFO L208 MainTranslator]: Completed translation [2022-02-20 16:54:02,724 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02 WrapperNode [2022-02-20 16:54:02,724 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 16:54:02,725 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 16:54:02,726 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 16:54:02,726 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 16:54:02,730 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,754 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,786 INFO L137 Inliner]: procedures = 127, calls = 53, calls flagged for inlining = 6, calls inlined = 6, statements flattened = 154 [2022-02-20 16:54:02,786 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 16:54:02,787 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 16:54:02,787 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 16:54:02,787 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 16:54:02,792 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,792 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,804 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,804 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,815 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,818 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,820 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,822 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 16:54:02,822 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 16:54:02,822 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 16:54:02,822 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 16:54:02,823 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02" (1/1) ... [2022-02-20 16:54:02,828 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:54:02,846 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:54:02,860 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 16:54:02,862 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 16:54:02,895 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-02-20 16:54:02,896 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-02-20 16:54:02,896 INFO L130 BoogieDeclarations]: Found specification of procedure node_create [2022-02-20 16:54:02,896 INFO L138 BoogieDeclarations]: Found implementation of procedure node_create [2022-02-20 16:54:02,896 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2022-02-20 16:54:02,896 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 16:54:02,896 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2022-02-20 16:54:02,896 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2022-02-20 16:54:02,898 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2022-02-20 16:54:02,898 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-02-20 16:54:02,898 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2022-02-20 16:54:02,898 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-02-20 16:54:02,898 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 16:54:02,899 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 16:54:03,043 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 16:54:03,044 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 16:54:03,348 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 16:54:03,353 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 16:54:03,353 INFO L299 CfgBuilder]: Removed 4 assume(true) statements. [2022-02-20 16:54:03,354 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:54:03 BoogieIcfgContainer [2022-02-20 16:54:03,354 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 16:54:03,355 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 16:54:03,355 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 16:54:03,360 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 16:54:03,361 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 04:54:02" (1/3) ... [2022-02-20 16:54:03,361 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@c1437b and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:54:03, skipping insertion in model container [2022-02-20 16:54:03,361 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:02" (2/3) ... [2022-02-20 16:54:03,362 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@c1437b and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:54:03, skipping insertion in model container [2022-02-20 16:54:03,362 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:54:03" (3/3) ... [2022-02-20 16:54:03,363 INFO L111 eAbstractionObserver]: Analyzing ICFG dll2c_insert_equal.i [2022-02-20 16:54:03,366 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 16:54:03,366 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 16:54:03,406 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 16:54:03,412 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 16:54:03,412 INFO L340 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-02-20 16:54:03,426 INFO L276 IsEmpty]: Start isEmpty. Operand has 38 states, 32 states have (on average 1.5) internal successors, (48), 33 states have internal predecessors, (48), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:03,430 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 26 [2022-02-20 16:54:03,430 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:54:03,431 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:54:03,431 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:54:03,437 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:54:03,437 INFO L85 PathProgramCache]: Analyzing trace with hash -1237252285, now seen corresponding path program 1 times [2022-02-20 16:54:03,443 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:54:03,443 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [447176500] [2022-02-20 16:54:03,443 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:54:03,444 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:54:03,574 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:03,634 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:54:03,647 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:03,678 INFO L290 TraceCheckUtils]: 0: Hoare triple {53#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {41#true} is VALID [2022-02-20 16:54:03,679 INFO L290 TraceCheckUtils]: 1: Hoare triple {41#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {41#true} is VALID [2022-02-20 16:54:03,680 INFO L290 TraceCheckUtils]: 2: Hoare triple {41#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {41#true} is VALID [2022-02-20 16:54:03,680 INFO L290 TraceCheckUtils]: 3: Hoare triple {41#true} assume true; {41#true} is VALID [2022-02-20 16:54:03,680 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {41#true} {41#true} #119#return; {41#true} is VALID [2022-02-20 16:54:03,681 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-02-20 16:54:03,694 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:03,703 INFO L290 TraceCheckUtils]: 0: Hoare triple {53#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {41#true} is VALID [2022-02-20 16:54:03,704 INFO L290 TraceCheckUtils]: 1: Hoare triple {41#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {41#true} is VALID [2022-02-20 16:54:03,704 INFO L290 TraceCheckUtils]: 2: Hoare triple {41#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {41#true} is VALID [2022-02-20 16:54:03,704 INFO L290 TraceCheckUtils]: 3: Hoare triple {41#true} assume true; {41#true} is VALID [2022-02-20 16:54:03,704 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {41#true} {42#false} #123#return; {42#false} is VALID [2022-02-20 16:54:03,705 INFO L290 TraceCheckUtils]: 0: Hoare triple {41#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(21, 2); {41#true} is VALID [2022-02-20 16:54:03,705 INFO L290 TraceCheckUtils]: 1: Hoare triple {41#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret18#1.base, main_#t~ret18#1.offset, main_#t~mem19#1.base, main_#t~mem19#1.offset, main_#t~mem21#1, main_#t~mem22#1.base, main_#t~mem22#1.offset, main_#t~post23#1, main_#t~mem20#1.base, main_#t~mem20#1.offset, main_#t~mem24#1.base, main_#t~mem24#1.offset, main_~len~0#1, main_~data~0#1, main_~#s~0#1.base, main_~#s~0#1.offset, main_~ptr~0#1.base, main_~ptr~0#1.offset, main_~count~0#1;main_~len~0#1 := 2;main_~data~0#1 := 1;call main_~#s~0#1.base, main_~#s~0#1.offset := #Ultimate.allocOnStack(4);assume { :begin_inline_dll_circular_create } true;dll_circular_create_#in~len#1, dll_circular_create_#in~data#1 := main_~len~0#1, main_~data~0#1;havoc dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset, dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset, dll_circular_create_#t~post6#1, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~len#1, dll_circular_create_~data#1, dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset;dll_circular_create_~len#1 := dll_circular_create_#in~len#1;dll_circular_create_~data#1 := dll_circular_create_#in~data#1; {41#true} is VALID [2022-02-20 16:54:03,706 INFO L272 TraceCheckUtils]: 2: Hoare triple {41#true} call dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset := node_create(dll_circular_create_~data#1); {53#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:54:03,706 INFO L290 TraceCheckUtils]: 3: Hoare triple {53#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {41#true} is VALID [2022-02-20 16:54:03,707 INFO L290 TraceCheckUtils]: 4: Hoare triple {41#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {41#true} is VALID [2022-02-20 16:54:03,707 INFO L290 TraceCheckUtils]: 5: Hoare triple {41#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {41#true} is VALID [2022-02-20 16:54:03,707 INFO L290 TraceCheckUtils]: 6: Hoare triple {41#true} assume true; {41#true} is VALID [2022-02-20 16:54:03,707 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {41#true} {41#true} #119#return; {41#true} is VALID [2022-02-20 16:54:03,707 INFO L290 TraceCheckUtils]: 8: Hoare triple {41#true} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {41#true} is VALID [2022-02-20 16:54:03,708 INFO L290 TraceCheckUtils]: 9: Hoare triple {41#true} assume !true; {42#false} is VALID [2022-02-20 16:54:03,708 INFO L290 TraceCheckUtils]: 10: Hoare triple {42#false} call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, 4);call write~$Pointer$(dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, dll_circular_create_~head~0#1.base, 4 + dll_circular_create_~head~0#1.offset, 4);dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {42#false} is VALID [2022-02-20 16:54:03,708 INFO L290 TraceCheckUtils]: 11: Hoare triple {42#false} main_#t~ret18#1.base, main_#t~ret18#1.offset := dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;assume { :end_inline_dll_circular_create } true;call write~init~$Pointer$(main_#t~ret18#1.base, main_#t~ret18#1.offset, main_~#s~0#1.base, main_~#s~0#1.offset, 4);havoc main_#t~ret18#1.base, main_#t~ret18#1.offset;assume { :begin_inline_dll_circular_insert } true;dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset, dll_circular_insert_#in~data#1, dll_circular_insert_#in~index#1 := main_~#s~0#1.base, main_~#s~0#1.offset, main_~data~0#1, (if main_~len~0#1 < 0 && 0 != main_~len~0#1 % 2 then 1 + main_~len~0#1 / 2 else main_~len~0#1 / 2);havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset, dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset, dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset, dll_circular_insert_#t~post12#1, dll_circular_insert_#t~mem13#1.base, dll_circular_insert_#t~mem13#1.offset, dll_circular_insert_#t~mem14#1.base, dll_circular_insert_#t~mem14#1.offset, dll_circular_insert_#t~mem15#1.base, dll_circular_insert_#t~mem15#1.offset, dll_circular_insert_#t~mem16#1.base, dll_circular_insert_#t~mem16#1.offset, dll_circular_insert_#t~mem17#1.base, dll_circular_insert_#t~mem17#1.offset, dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, dll_circular_insert_~data#1, dll_circular_insert_~index#1, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset;dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset := dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset;dll_circular_insert_~data#1 := dll_circular_insert_#in~data#1;dll_circular_insert_~index#1 := dll_circular_insert_#in~index#1; {42#false} is VALID [2022-02-20 16:54:03,709 INFO L272 TraceCheckUtils]: 12: Hoare triple {42#false} call dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset := node_create(dll_circular_insert_~data#1); {53#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:54:03,709 INFO L290 TraceCheckUtils]: 13: Hoare triple {53#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {41#true} is VALID [2022-02-20 16:54:03,709 INFO L290 TraceCheckUtils]: 14: Hoare triple {41#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {41#true} is VALID [2022-02-20 16:54:03,709 INFO L290 TraceCheckUtils]: 15: Hoare triple {41#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {41#true} is VALID [2022-02-20 16:54:03,710 INFO L290 TraceCheckUtils]: 16: Hoare triple {41#true} assume true; {41#true} is VALID [2022-02-20 16:54:03,710 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {41#true} {42#false} #123#return; {42#false} is VALID [2022-02-20 16:54:03,710 INFO L290 TraceCheckUtils]: 18: Hoare triple {42#false} dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset := dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset := 0, 0;call dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset := read~$Pointer$(dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, 4);dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset := dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset;havoc dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset; {42#false} is VALID [2022-02-20 16:54:03,710 INFO L290 TraceCheckUtils]: 19: Hoare triple {42#false} assume !(dll_circular_insert_~index#1 > 0); {42#false} is VALID [2022-02-20 16:54:03,711 INFO L290 TraceCheckUtils]: 20: Hoare triple {42#false} assume dll_circular_insert_~snd_to_last~0#1.base != 0 || dll_circular_insert_~snd_to_last~0#1.offset != 0;call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~new_node~0#1.base, 4 + dll_circular_insert_~new_node~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~last~1#1.base, 4 + dll_circular_insert_~last~1#1.offset, 4); {42#false} is VALID [2022-02-20 16:54:03,711 INFO L290 TraceCheckUtils]: 21: Hoare triple {42#false} assume { :end_inline_dll_circular_insert } true;call main_#t~mem19#1.base, main_#t~mem19#1.offset := read~$Pointer$(main_~#s~0#1.base, main_~#s~0#1.offset, 4);main_~ptr~0#1.base, main_~ptr~0#1.offset := main_#t~mem19#1.base, main_#t~mem19#1.offset;havoc main_#t~mem19#1.base, main_#t~mem19#1.offset;main_~count~0#1 := 0; {42#false} is VALID [2022-02-20 16:54:03,711 INFO L290 TraceCheckUtils]: 22: Hoare triple {42#false} assume !true; {42#false} is VALID [2022-02-20 16:54:03,711 INFO L290 TraceCheckUtils]: 23: Hoare triple {42#false} assume main_~count~0#1 != 1 + main_~len~0#1; {42#false} is VALID [2022-02-20 16:54:03,711 INFO L290 TraceCheckUtils]: 24: Hoare triple {42#false} assume !false; {42#false} is VALID [2022-02-20 16:54:03,712 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-02-20 16:54:03,712 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:54:03,713 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [447176500] [2022-02-20 16:54:03,713 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [447176500] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:54:03,713 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:54:03,714 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-02-20 16:54:03,715 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1399391608] [2022-02-20 16:54:03,715 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:54:03,718 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 5.666666666666667) internal successors, (17), 2 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 25 [2022-02-20 16:54:03,720 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:54:03,722 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 3 states, 3 states have (on average 5.666666666666667) internal successors, (17), 2 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:03,745 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 21 edges. 21 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:03,745 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-02-20 16:54:03,745 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:54:03,762 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-02-20 16:54:03,762 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-02-20 16:54:03,765 INFO L87 Difference]: Start difference. First operand has 38 states, 32 states have (on average 1.5) internal successors, (48), 33 states have internal predecessors, (48), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand has 3 states, 3 states have (on average 5.666666666666667) internal successors, (17), 2 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:03,913 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:03,914 INFO L93 Difference]: Finished difference Result 67 states and 94 transitions. [2022-02-20 16:54:03,914 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-02-20 16:54:03,914 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 5.666666666666667) internal successors, (17), 2 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 25 [2022-02-20 16:54:03,914 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:54:03,915 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 5.666666666666667) internal successors, (17), 2 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:03,920 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 94 transitions. [2022-02-20 16:54:03,920 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 5.666666666666667) internal successors, (17), 2 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:03,922 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 94 transitions. [2022-02-20 16:54:03,922 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 94 transitions. [2022-02-20 16:54:03,991 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 94 edges. 94 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:03,996 INFO L225 Difference]: With dead ends: 67 [2022-02-20 16:54:03,996 INFO L226 Difference]: Without dead ends: 30 [2022-02-20 16:54:03,998 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-02-20 16:54:04,000 INFO L933 BasicCegarLoop]: 48 mSDtfsCounter, 0 mSDsluCounter, 22 mSDsCounter, 0 mSdLazyCounter, 25 mSolverCounterSat, 2 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 70 SdHoareTripleChecker+Invalid, 27 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 2 IncrementalHoareTripleChecker+Valid, 25 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:54:04,001 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 70 Invalid, 27 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [2 Valid, 25 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:54:04,010 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 30 states. [2022-02-20 16:54:04,017 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 30 to 30. [2022-02-20 16:54:04,017 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:54:04,018 INFO L82 GeneralOperation]: Start isEquivalent. First operand 30 states. Second operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,019 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,019 INFO L87 Difference]: Start difference. First operand 30 states. Second operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,021 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:04,021 INFO L93 Difference]: Finished difference Result 30 states and 38 transitions. [2022-02-20 16:54:04,022 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 38 transitions. [2022-02-20 16:54:04,022 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:04,022 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:04,022 INFO L74 IsIncluded]: Start isIncluded. First operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 30 states. [2022-02-20 16:54:04,023 INFO L87 Difference]: Start difference. First operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 30 states. [2022-02-20 16:54:04,025 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:04,025 INFO L93 Difference]: Finished difference Result 30 states and 38 transitions. [2022-02-20 16:54:04,025 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 38 transitions. [2022-02-20 16:54:04,025 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:04,025 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:04,026 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:54:04,026 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:54:04,026 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,027 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 38 transitions. [2022-02-20 16:54:04,028 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 38 transitions. Word has length 25 [2022-02-20 16:54:04,028 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:54:04,029 INFO L470 AbstractCegarLoop]: Abstraction has 30 states and 38 transitions. [2022-02-20 16:54:04,029 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 3 states, 3 states have (on average 5.666666666666667) internal successors, (17), 2 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:04,029 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 38 transitions. [2022-02-20 16:54:04,030 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 26 [2022-02-20 16:54:04,030 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:54:04,030 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:54:04,030 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-02-20 16:54:04,030 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:54:04,031 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:54:04,031 INFO L85 PathProgramCache]: Analyzing trace with hash 1104710801, now seen corresponding path program 1 times [2022-02-20 16:54:04,031 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:54:04,031 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1673638140] [2022-02-20 16:54:04,031 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:54:04,031 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:54:04,066 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:04,097 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:54:04,104 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:04,111 INFO L290 TraceCheckUtils]: 0: Hoare triple {256#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {243#true} is VALID [2022-02-20 16:54:04,112 INFO L290 TraceCheckUtils]: 1: Hoare triple {243#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {243#true} is VALID [2022-02-20 16:54:04,112 INFO L290 TraceCheckUtils]: 2: Hoare triple {243#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {243#true} is VALID [2022-02-20 16:54:04,112 INFO L290 TraceCheckUtils]: 3: Hoare triple {243#true} assume true; {243#true} is VALID [2022-02-20 16:54:04,113 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {243#true} {245#(= (+ (- 2) |ULTIMATE.start_dll_circular_create_~len#1|) 0)} #119#return; {245#(= (+ (- 2) |ULTIMATE.start_dll_circular_create_~len#1|) 0)} is VALID [2022-02-20 16:54:04,113 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-02-20 16:54:04,119 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:04,125 INFO L290 TraceCheckUtils]: 0: Hoare triple {256#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {243#true} is VALID [2022-02-20 16:54:04,125 INFO L290 TraceCheckUtils]: 1: Hoare triple {243#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {243#true} is VALID [2022-02-20 16:54:04,126 INFO L290 TraceCheckUtils]: 2: Hoare triple {243#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {243#true} is VALID [2022-02-20 16:54:04,126 INFO L290 TraceCheckUtils]: 3: Hoare triple {243#true} assume true; {243#true} is VALID [2022-02-20 16:54:04,126 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {243#true} {244#false} #123#return; {244#false} is VALID [2022-02-20 16:54:04,126 INFO L290 TraceCheckUtils]: 0: Hoare triple {243#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(21, 2); {243#true} is VALID [2022-02-20 16:54:04,127 INFO L290 TraceCheckUtils]: 1: Hoare triple {243#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret18#1.base, main_#t~ret18#1.offset, main_#t~mem19#1.base, main_#t~mem19#1.offset, main_#t~mem21#1, main_#t~mem22#1.base, main_#t~mem22#1.offset, main_#t~post23#1, main_#t~mem20#1.base, main_#t~mem20#1.offset, main_#t~mem24#1.base, main_#t~mem24#1.offset, main_~len~0#1, main_~data~0#1, main_~#s~0#1.base, main_~#s~0#1.offset, main_~ptr~0#1.base, main_~ptr~0#1.offset, main_~count~0#1;main_~len~0#1 := 2;main_~data~0#1 := 1;call main_~#s~0#1.base, main_~#s~0#1.offset := #Ultimate.allocOnStack(4);assume { :begin_inline_dll_circular_create } true;dll_circular_create_#in~len#1, dll_circular_create_#in~data#1 := main_~len~0#1, main_~data~0#1;havoc dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset, dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset, dll_circular_create_#t~post6#1, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~len#1, dll_circular_create_~data#1, dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset;dll_circular_create_~len#1 := dll_circular_create_#in~len#1;dll_circular_create_~data#1 := dll_circular_create_#in~data#1; {245#(= (+ (- 2) |ULTIMATE.start_dll_circular_create_~len#1|) 0)} is VALID [2022-02-20 16:54:04,128 INFO L272 TraceCheckUtils]: 2: Hoare triple {245#(= (+ (- 2) |ULTIMATE.start_dll_circular_create_~len#1|) 0)} call dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset := node_create(dll_circular_create_~data#1); {256#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:54:04,128 INFO L290 TraceCheckUtils]: 3: Hoare triple {256#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {243#true} is VALID [2022-02-20 16:54:04,128 INFO L290 TraceCheckUtils]: 4: Hoare triple {243#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {243#true} is VALID [2022-02-20 16:54:04,128 INFO L290 TraceCheckUtils]: 5: Hoare triple {243#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {243#true} is VALID [2022-02-20 16:54:04,129 INFO L290 TraceCheckUtils]: 6: Hoare triple {243#true} assume true; {243#true} is VALID [2022-02-20 16:54:04,129 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {243#true} {245#(= (+ (- 2) |ULTIMATE.start_dll_circular_create_~len#1|) 0)} #119#return; {245#(= (+ (- 2) |ULTIMATE.start_dll_circular_create_~len#1|) 0)} is VALID [2022-02-20 16:54:04,130 INFO L290 TraceCheckUtils]: 8: Hoare triple {245#(= (+ (- 2) |ULTIMATE.start_dll_circular_create_~len#1|) 0)} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {245#(= (+ (- 2) |ULTIMATE.start_dll_circular_create_~len#1|) 0)} is VALID [2022-02-20 16:54:04,130 INFO L290 TraceCheckUtils]: 9: Hoare triple {245#(= (+ (- 2) |ULTIMATE.start_dll_circular_create_~len#1|) 0)} assume !(dll_circular_create_~len#1 > 1); {244#false} is VALID [2022-02-20 16:54:04,130 INFO L290 TraceCheckUtils]: 10: Hoare triple {244#false} call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, 4);call write~$Pointer$(dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, dll_circular_create_~head~0#1.base, 4 + dll_circular_create_~head~0#1.offset, 4);dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {244#false} is VALID [2022-02-20 16:54:04,131 INFO L290 TraceCheckUtils]: 11: Hoare triple {244#false} main_#t~ret18#1.base, main_#t~ret18#1.offset := dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;assume { :end_inline_dll_circular_create } true;call write~init~$Pointer$(main_#t~ret18#1.base, main_#t~ret18#1.offset, main_~#s~0#1.base, main_~#s~0#1.offset, 4);havoc main_#t~ret18#1.base, main_#t~ret18#1.offset;assume { :begin_inline_dll_circular_insert } true;dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset, dll_circular_insert_#in~data#1, dll_circular_insert_#in~index#1 := main_~#s~0#1.base, main_~#s~0#1.offset, main_~data~0#1, (if main_~len~0#1 < 0 && 0 != main_~len~0#1 % 2 then 1 + main_~len~0#1 / 2 else main_~len~0#1 / 2);havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset, dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset, dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset, dll_circular_insert_#t~post12#1, dll_circular_insert_#t~mem13#1.base, dll_circular_insert_#t~mem13#1.offset, dll_circular_insert_#t~mem14#1.base, dll_circular_insert_#t~mem14#1.offset, dll_circular_insert_#t~mem15#1.base, dll_circular_insert_#t~mem15#1.offset, dll_circular_insert_#t~mem16#1.base, dll_circular_insert_#t~mem16#1.offset, dll_circular_insert_#t~mem17#1.base, dll_circular_insert_#t~mem17#1.offset, dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, dll_circular_insert_~data#1, dll_circular_insert_~index#1, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset;dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset := dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset;dll_circular_insert_~data#1 := dll_circular_insert_#in~data#1;dll_circular_insert_~index#1 := dll_circular_insert_#in~index#1; {244#false} is VALID [2022-02-20 16:54:04,131 INFO L272 TraceCheckUtils]: 12: Hoare triple {244#false} call dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset := node_create(dll_circular_insert_~data#1); {256#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:54:04,131 INFO L290 TraceCheckUtils]: 13: Hoare triple {256#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {243#true} is VALID [2022-02-20 16:54:04,131 INFO L290 TraceCheckUtils]: 14: Hoare triple {243#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {243#true} is VALID [2022-02-20 16:54:04,132 INFO L290 TraceCheckUtils]: 15: Hoare triple {243#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {243#true} is VALID [2022-02-20 16:54:04,132 INFO L290 TraceCheckUtils]: 16: Hoare triple {243#true} assume true; {243#true} is VALID [2022-02-20 16:54:04,132 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {243#true} {244#false} #123#return; {244#false} is VALID [2022-02-20 16:54:04,132 INFO L290 TraceCheckUtils]: 18: Hoare triple {244#false} dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset := dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset := 0, 0;call dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset := read~$Pointer$(dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, 4);dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset := dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset;havoc dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset; {244#false} is VALID [2022-02-20 16:54:04,132 INFO L290 TraceCheckUtils]: 19: Hoare triple {244#false} assume !(dll_circular_insert_~index#1 > 0); {244#false} is VALID [2022-02-20 16:54:04,132 INFO L290 TraceCheckUtils]: 20: Hoare triple {244#false} assume dll_circular_insert_~snd_to_last~0#1.base != 0 || dll_circular_insert_~snd_to_last~0#1.offset != 0;call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~new_node~0#1.base, 4 + dll_circular_insert_~new_node~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~last~1#1.base, 4 + dll_circular_insert_~last~1#1.offset, 4); {244#false} is VALID [2022-02-20 16:54:04,133 INFO L290 TraceCheckUtils]: 21: Hoare triple {244#false} assume { :end_inline_dll_circular_insert } true;call main_#t~mem19#1.base, main_#t~mem19#1.offset := read~$Pointer$(main_~#s~0#1.base, main_~#s~0#1.offset, 4);main_~ptr~0#1.base, main_~ptr~0#1.offset := main_#t~mem19#1.base, main_#t~mem19#1.offset;havoc main_#t~mem19#1.base, main_#t~mem19#1.offset;main_~count~0#1 := 0; {244#false} is VALID [2022-02-20 16:54:04,133 INFO L290 TraceCheckUtils]: 22: Hoare triple {244#false} call main_#t~mem21#1 := read~int(main_~ptr~0#1.base, 8 + main_~ptr~0#1.offset, 4); {244#false} is VALID [2022-02-20 16:54:04,133 INFO L290 TraceCheckUtils]: 23: Hoare triple {244#false} assume main_~data~0#1 != main_#t~mem21#1;havoc main_#t~mem21#1; {244#false} is VALID [2022-02-20 16:54:04,133 INFO L290 TraceCheckUtils]: 24: Hoare triple {244#false} assume !false; {244#false} is VALID [2022-02-20 16:54:04,133 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-02-20 16:54:04,134 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:54:04,134 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1673638140] [2022-02-20 16:54:04,134 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1673638140] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:54:04,134 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:54:04,134 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:54:04,134 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1900052766] [2022-02-20 16:54:04,135 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:54:04,136 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 4.25) internal successors, (17), 3 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 25 [2022-02-20 16:54:04,136 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:54:04,136 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 4.25) internal successors, (17), 3 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:04,153 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 21 edges. 21 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:04,153 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:54:04,153 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:54:04,153 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:54:04,154 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:54:04,154 INFO L87 Difference]: Start difference. First operand 30 states and 38 transitions. Second operand has 4 states, 4 states have (on average 4.25) internal successors, (17), 3 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:04,284 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:04,284 INFO L93 Difference]: Finished difference Result 56 states and 71 transitions. [2022-02-20 16:54:04,284 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:54:04,284 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 4.25) internal successors, (17), 3 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 25 [2022-02-20 16:54:04,285 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:54:04,285 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 4.25) internal successors, (17), 3 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:04,287 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 71 transitions. [2022-02-20 16:54:04,287 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 4.25) internal successors, (17), 3 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:04,288 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 71 transitions. [2022-02-20 16:54:04,289 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 71 transitions. [2022-02-20 16:54:04,347 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 71 edges. 71 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:04,348 INFO L225 Difference]: With dead ends: 56 [2022-02-20 16:54:04,348 INFO L226 Difference]: Without dead ends: 35 [2022-02-20 16:54:04,349 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:54:04,350 INFO L933 BasicCegarLoop]: 36 mSDtfsCounter, 4 mSDsluCounter, 46 mSDsCounter, 0 mSdLazyCounter, 28 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 5 SdHoareTripleChecker+Valid, 82 SdHoareTripleChecker+Invalid, 31 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 28 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:54:04,350 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [5 Valid, 82 Invalid, 31 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 28 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:54:04,351 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2022-02-20 16:54:04,353 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 31. [2022-02-20 16:54:04,353 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:54:04,353 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,354 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,354 INFO L87 Difference]: Start difference. First operand 35 states. Second operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,356 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:04,356 INFO L93 Difference]: Finished difference Result 35 states and 45 transitions. [2022-02-20 16:54:04,356 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 45 transitions. [2022-02-20 16:54:04,356 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:04,356 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:04,357 INFO L74 IsIncluded]: Start isIncluded. First operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 35 states. [2022-02-20 16:54:04,357 INFO L87 Difference]: Start difference. First operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 35 states. [2022-02-20 16:54:04,358 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:04,359 INFO L93 Difference]: Finished difference Result 35 states and 45 transitions. [2022-02-20 16:54:04,359 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 45 transitions. [2022-02-20 16:54:04,359 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:04,359 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:04,359 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:54:04,359 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:54:04,360 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,361 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 31 states to 31 states and 39 transitions. [2022-02-20 16:54:04,361 INFO L78 Accepts]: Start accepts. Automaton has 31 states and 39 transitions. Word has length 25 [2022-02-20 16:54:04,361 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:54:04,361 INFO L470 AbstractCegarLoop]: Abstraction has 31 states and 39 transitions. [2022-02-20 16:54:04,362 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 4.25) internal successors, (17), 3 states have internal predecessors, (17), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:04,362 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 39 transitions. [2022-02-20 16:54:04,362 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2022-02-20 16:54:04,363 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:54:04,363 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:54:04,363 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1 [2022-02-20 16:54:04,363 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:54:04,363 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:54:04,364 INFO L85 PathProgramCache]: Analyzing trace with hash -313226979, now seen corresponding path program 1 times [2022-02-20 16:54:04,364 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:54:04,364 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [70290737] [2022-02-20 16:54:04,364 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:54:04,364 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:54:04,408 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:04,444 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:54:04,448 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:04,453 INFO L290 TraceCheckUtils]: 0: Hoare triple {461#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {443#true} is VALID [2022-02-20 16:54:04,454 INFO L290 TraceCheckUtils]: 1: Hoare triple {443#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {443#true} is VALID [2022-02-20 16:54:04,454 INFO L290 TraceCheckUtils]: 2: Hoare triple {443#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {443#true} is VALID [2022-02-20 16:54:04,454 INFO L290 TraceCheckUtils]: 3: Hoare triple {443#true} assume true; {443#true} is VALID [2022-02-20 16:54:04,454 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {443#true} {443#true} #119#return; {443#true} is VALID [2022-02-20 16:54:04,455 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 10 [2022-02-20 16:54:04,457 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:04,462 INFO L290 TraceCheckUtils]: 0: Hoare triple {461#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {443#true} is VALID [2022-02-20 16:54:04,462 INFO L290 TraceCheckUtils]: 1: Hoare triple {443#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {443#true} is VALID [2022-02-20 16:54:04,462 INFO L290 TraceCheckUtils]: 2: Hoare triple {443#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {443#true} is VALID [2022-02-20 16:54:04,462 INFO L290 TraceCheckUtils]: 3: Hoare triple {443#true} assume true; {443#true} is VALID [2022-02-20 16:54:04,462 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {443#true} {443#true} #121#return; {443#true} is VALID [2022-02-20 16:54:04,463 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 22 [2022-02-20 16:54:04,465 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:04,470 INFO L290 TraceCheckUtils]: 0: Hoare triple {461#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {443#true} is VALID [2022-02-20 16:54:04,470 INFO L290 TraceCheckUtils]: 1: Hoare triple {443#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {443#true} is VALID [2022-02-20 16:54:04,470 INFO L290 TraceCheckUtils]: 2: Hoare triple {443#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {443#true} is VALID [2022-02-20 16:54:04,470 INFO L290 TraceCheckUtils]: 3: Hoare triple {443#true} assume true; {443#true} is VALID [2022-02-20 16:54:04,470 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {443#true} {443#true} #123#return; {443#true} is VALID [2022-02-20 16:54:04,470 INFO L290 TraceCheckUtils]: 0: Hoare triple {443#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(21, 2); {443#true} is VALID [2022-02-20 16:54:04,471 INFO L290 TraceCheckUtils]: 1: Hoare triple {443#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret18#1.base, main_#t~ret18#1.offset, main_#t~mem19#1.base, main_#t~mem19#1.offset, main_#t~mem21#1, main_#t~mem22#1.base, main_#t~mem22#1.offset, main_#t~post23#1, main_#t~mem20#1.base, main_#t~mem20#1.offset, main_#t~mem24#1.base, main_#t~mem24#1.offset, main_~len~0#1, main_~data~0#1, main_~#s~0#1.base, main_~#s~0#1.offset, main_~ptr~0#1.base, main_~ptr~0#1.offset, main_~count~0#1;main_~len~0#1 := 2;main_~data~0#1 := 1;call main_~#s~0#1.base, main_~#s~0#1.offset := #Ultimate.allocOnStack(4);assume { :begin_inline_dll_circular_create } true;dll_circular_create_#in~len#1, dll_circular_create_#in~data#1 := main_~len~0#1, main_~data~0#1;havoc dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset, dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset, dll_circular_create_#t~post6#1, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~len#1, dll_circular_create_~data#1, dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset;dll_circular_create_~len#1 := dll_circular_create_#in~len#1;dll_circular_create_~data#1 := dll_circular_create_#in~data#1; {443#true} is VALID [2022-02-20 16:54:04,472 INFO L272 TraceCheckUtils]: 2: Hoare triple {443#true} call dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset := node_create(dll_circular_create_~data#1); {461#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:54:04,472 INFO L290 TraceCheckUtils]: 3: Hoare triple {461#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {443#true} is VALID [2022-02-20 16:54:04,472 INFO L290 TraceCheckUtils]: 4: Hoare triple {443#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {443#true} is VALID [2022-02-20 16:54:04,472 INFO L290 TraceCheckUtils]: 5: Hoare triple {443#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {443#true} is VALID [2022-02-20 16:54:04,472 INFO L290 TraceCheckUtils]: 6: Hoare triple {443#true} assume true; {443#true} is VALID [2022-02-20 16:54:04,472 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {443#true} {443#true} #119#return; {443#true} is VALID [2022-02-20 16:54:04,473 INFO L290 TraceCheckUtils]: 8: Hoare triple {443#true} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {443#true} is VALID [2022-02-20 16:54:04,473 INFO L290 TraceCheckUtils]: 9: Hoare triple {443#true} assume !!(dll_circular_create_~len#1 > 1); {443#true} is VALID [2022-02-20 16:54:04,474 INFO L272 TraceCheckUtils]: 10: Hoare triple {443#true} call dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset := node_create(dll_circular_create_~data#1); {461#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:54:04,474 INFO L290 TraceCheckUtils]: 11: Hoare triple {461#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {443#true} is VALID [2022-02-20 16:54:04,474 INFO L290 TraceCheckUtils]: 12: Hoare triple {443#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {443#true} is VALID [2022-02-20 16:54:04,474 INFO L290 TraceCheckUtils]: 13: Hoare triple {443#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {443#true} is VALID [2022-02-20 16:54:04,474 INFO L290 TraceCheckUtils]: 14: Hoare triple {443#true} assume true; {443#true} is VALID [2022-02-20 16:54:04,475 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {443#true} {443#true} #121#return; {443#true} is VALID [2022-02-20 16:54:04,475 INFO L290 TraceCheckUtils]: 16: Hoare triple {443#true} dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset := dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset;havoc dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset;call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, 4); {443#true} is VALID [2022-02-20 16:54:04,475 INFO L290 TraceCheckUtils]: 17: Hoare triple {443#true} assume dll_circular_create_~head~0#1.base != 0 || dll_circular_create_~head~0#1.offset != 0;call write~$Pointer$(dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~head~0#1.base, 4 + dll_circular_create_~head~0#1.offset, 4); {443#true} is VALID [2022-02-20 16:54:04,475 INFO L290 TraceCheckUtils]: 18: Hoare triple {443#true} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset;dll_circular_create_#t~post6#1 := dll_circular_create_~len#1;dll_circular_create_~len#1 := dll_circular_create_#t~post6#1 - 1;havoc dll_circular_create_#t~post6#1; {443#true} is VALID [2022-02-20 16:54:04,475 INFO L290 TraceCheckUtils]: 19: Hoare triple {443#true} assume !(dll_circular_create_~len#1 > 1); {443#true} is VALID [2022-02-20 16:54:04,476 INFO L290 TraceCheckUtils]: 20: Hoare triple {443#true} call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, 4);call write~$Pointer$(dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, dll_circular_create_~head~0#1.base, 4 + dll_circular_create_~head~0#1.offset, 4);dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {443#true} is VALID [2022-02-20 16:54:04,476 INFO L290 TraceCheckUtils]: 21: Hoare triple {443#true} main_#t~ret18#1.base, main_#t~ret18#1.offset := dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;assume { :end_inline_dll_circular_create } true;call write~init~$Pointer$(main_#t~ret18#1.base, main_#t~ret18#1.offset, main_~#s~0#1.base, main_~#s~0#1.offset, 4);havoc main_#t~ret18#1.base, main_#t~ret18#1.offset;assume { :begin_inline_dll_circular_insert } true;dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset, dll_circular_insert_#in~data#1, dll_circular_insert_#in~index#1 := main_~#s~0#1.base, main_~#s~0#1.offset, main_~data~0#1, (if main_~len~0#1 < 0 && 0 != main_~len~0#1 % 2 then 1 + main_~len~0#1 / 2 else main_~len~0#1 / 2);havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset, dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset, dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset, dll_circular_insert_#t~post12#1, dll_circular_insert_#t~mem13#1.base, dll_circular_insert_#t~mem13#1.offset, dll_circular_insert_#t~mem14#1.base, dll_circular_insert_#t~mem14#1.offset, dll_circular_insert_#t~mem15#1.base, dll_circular_insert_#t~mem15#1.offset, dll_circular_insert_#t~mem16#1.base, dll_circular_insert_#t~mem16#1.offset, dll_circular_insert_#t~mem17#1.base, dll_circular_insert_#t~mem17#1.offset, dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, dll_circular_insert_~data#1, dll_circular_insert_~index#1, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset;dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset := dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset;dll_circular_insert_~data#1 := dll_circular_insert_#in~data#1;dll_circular_insert_~index#1 := dll_circular_insert_#in~index#1; {443#true} is VALID [2022-02-20 16:54:04,477 INFO L272 TraceCheckUtils]: 22: Hoare triple {443#true} call dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset := node_create(dll_circular_insert_~data#1); {461#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:54:04,477 INFO L290 TraceCheckUtils]: 23: Hoare triple {461#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {443#true} is VALID [2022-02-20 16:54:04,477 INFO L290 TraceCheckUtils]: 24: Hoare triple {443#true} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {443#true} is VALID [2022-02-20 16:54:04,477 INFO L290 TraceCheckUtils]: 25: Hoare triple {443#true} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {443#true} is VALID [2022-02-20 16:54:04,477 INFO L290 TraceCheckUtils]: 26: Hoare triple {443#true} assume true; {443#true} is VALID [2022-02-20 16:54:04,477 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {443#true} {443#true} #123#return; {443#true} is VALID [2022-02-20 16:54:04,478 INFO L290 TraceCheckUtils]: 28: Hoare triple {443#true} dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset := dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset := 0, 0;call dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset := read~$Pointer$(dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, 4);dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset := dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset;havoc dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset; {460#(and (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| 0) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| 0))} is VALID [2022-02-20 16:54:04,478 INFO L290 TraceCheckUtils]: 29: Hoare triple {460#(and (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| 0) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| 0))} assume !(dll_circular_insert_~index#1 > 0); {460#(and (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| 0) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| 0))} is VALID [2022-02-20 16:54:04,480 INFO L290 TraceCheckUtils]: 30: Hoare triple {460#(and (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| 0) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| 0))} assume dll_circular_insert_~snd_to_last~0#1.base != 0 || dll_circular_insert_~snd_to_last~0#1.offset != 0;call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~new_node~0#1.base, 4 + dll_circular_insert_~new_node~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~last~1#1.base, 4 + dll_circular_insert_~last~1#1.offset, 4); {444#false} is VALID [2022-02-20 16:54:04,480 INFO L290 TraceCheckUtils]: 31: Hoare triple {444#false} assume { :end_inline_dll_circular_insert } true;call main_#t~mem19#1.base, main_#t~mem19#1.offset := read~$Pointer$(main_~#s~0#1.base, main_~#s~0#1.offset, 4);main_~ptr~0#1.base, main_~ptr~0#1.offset := main_#t~mem19#1.base, main_#t~mem19#1.offset;havoc main_#t~mem19#1.base, main_#t~mem19#1.offset;main_~count~0#1 := 0; {444#false} is VALID [2022-02-20 16:54:04,480 INFO L290 TraceCheckUtils]: 32: Hoare triple {444#false} call main_#t~mem21#1 := read~int(main_~ptr~0#1.base, 8 + main_~ptr~0#1.offset, 4); {444#false} is VALID [2022-02-20 16:54:04,480 INFO L290 TraceCheckUtils]: 33: Hoare triple {444#false} assume main_~data~0#1 != main_#t~mem21#1;havoc main_#t~mem21#1; {444#false} is VALID [2022-02-20 16:54:04,480 INFO L290 TraceCheckUtils]: 34: Hoare triple {444#false} assume !false; {444#false} is VALID [2022-02-20 16:54:04,481 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-02-20 16:54:04,481 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:54:04,481 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [70290737] [2022-02-20 16:54:04,481 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [70290737] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:54:04,481 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:54:04,481 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:54:04,482 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1129353975] [2022-02-20 16:54:04,482 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:54:04,482 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 5.25) internal successors, (21), 3 states have internal predecessors, (21), 1 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) Word has length 35 [2022-02-20 16:54:04,483 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:54:04,483 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 5.25) internal successors, (21), 3 states have internal predecessors, (21), 1 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-02-20 16:54:04,504 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:04,504 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:54:04,504 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:54:04,504 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:54:04,504 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:54:04,505 INFO L87 Difference]: Start difference. First operand 31 states and 39 transitions. Second operand has 4 states, 4 states have (on average 5.25) internal successors, (21), 3 states have internal predecessors, (21), 1 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-02-20 16:54:04,634 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:04,634 INFO L93 Difference]: Finished difference Result 49 states and 61 transitions. [2022-02-20 16:54:04,634 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:54:04,634 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 5.25) internal successors, (21), 3 states have internal predecessors, (21), 1 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) Word has length 35 [2022-02-20 16:54:04,635 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:54:04,635 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 5.25) internal successors, (21), 3 states have internal predecessors, (21), 1 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-02-20 16:54:04,636 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 60 transitions. [2022-02-20 16:54:04,636 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 5.25) internal successors, (21), 3 states have internal predecessors, (21), 1 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-02-20 16:54:04,637 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 60 transitions. [2022-02-20 16:54:04,637 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 60 transitions. [2022-02-20 16:54:04,683 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:04,684 INFO L225 Difference]: With dead ends: 49 [2022-02-20 16:54:04,684 INFO L226 Difference]: Without dead ends: 41 [2022-02-20 16:54:04,684 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 7 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:54:04,685 INFO L933 BasicCegarLoop]: 45 mSDtfsCounter, 13 mSDsluCounter, 50 mSDsCounter, 0 mSdLazyCounter, 29 mSolverCounterSat, 1 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 13 SdHoareTripleChecker+Valid, 95 SdHoareTripleChecker+Invalid, 30 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 1 IncrementalHoareTripleChecker+Valid, 29 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:54:04,685 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [13 Valid, 95 Invalid, 30 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [1 Valid, 29 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:54:04,685 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 41 states. [2022-02-20 16:54:04,687 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 41 to 33. [2022-02-20 16:54:04,687 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:54:04,688 INFO L82 GeneralOperation]: Start isEquivalent. First operand 41 states. Second operand has 33 states, 28 states have (on average 1.2857142857142858) internal successors, (36), 28 states have internal predecessors, (36), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,688 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand has 33 states, 28 states have (on average 1.2857142857142858) internal successors, (36), 28 states have internal predecessors, (36), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,688 INFO L87 Difference]: Start difference. First operand 41 states. Second operand has 33 states, 28 states have (on average 1.2857142857142858) internal successors, (36), 28 states have internal predecessors, (36), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,690 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:04,690 INFO L93 Difference]: Finished difference Result 41 states and 51 transitions. [2022-02-20 16:54:04,690 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 51 transitions. [2022-02-20 16:54:04,690 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:04,690 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:04,691 INFO L74 IsIncluded]: Start isIncluded. First operand has 33 states, 28 states have (on average 1.2857142857142858) internal successors, (36), 28 states have internal predecessors, (36), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 41 states. [2022-02-20 16:54:04,691 INFO L87 Difference]: Start difference. First operand has 33 states, 28 states have (on average 1.2857142857142858) internal successors, (36), 28 states have internal predecessors, (36), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 41 states. [2022-02-20 16:54:04,692 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:04,692 INFO L93 Difference]: Finished difference Result 41 states and 51 transitions. [2022-02-20 16:54:04,692 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 51 transitions. [2022-02-20 16:54:04,693 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:04,693 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:04,693 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:54:04,693 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:54:04,693 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 33 states, 28 states have (on average 1.2857142857142858) internal successors, (36), 28 states have internal predecessors, (36), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:04,694 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 42 transitions. [2022-02-20 16:54:04,694 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 42 transitions. Word has length 35 [2022-02-20 16:54:04,695 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:54:04,695 INFO L470 AbstractCegarLoop]: Abstraction has 33 states and 42 transitions. [2022-02-20 16:54:04,695 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 5.25) internal successors, (21), 3 states have internal predecessors, (21), 1 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-02-20 16:54:04,695 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 42 transitions. [2022-02-20 16:54:04,696 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2022-02-20 16:54:04,696 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:54:04,696 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:54:04,696 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-02-20 16:54:04,696 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:54:04,697 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:54:04,697 INFO L85 PathProgramCache]: Analyzing trace with hash 415590512, now seen corresponding path program 1 times [2022-02-20 16:54:04,697 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:54:04,697 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [676457827] [2022-02-20 16:54:04,697 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:54:04,697 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:54:04,817 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:05,414 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:54:05,421 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:05,487 INFO L290 TraceCheckUtils]: 0: Hoare triple {686#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {687#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|))} is VALID [2022-02-20 16:54:05,490 INFO L290 TraceCheckUtils]: 1: Hoare triple {687#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|))} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {687#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|))} is VALID [2022-02-20 16:54:05,491 INFO L290 TraceCheckUtils]: 2: Hoare triple {687#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|))} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {688#(and (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (= (select |#valid| |node_create_#res#1.base|) 1))} is VALID [2022-02-20 16:54:05,492 INFO L290 TraceCheckUtils]: 3: Hoare triple {688#(and (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (= (select |#valid| |node_create_#res#1.base|) 1))} assume true; {688#(and (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (= (select |#valid| |node_create_#res#1.base|) 1))} is VALID [2022-02-20 16:54:05,494 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {688#(and (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (= (select |#valid| |node_create_#res#1.base|) 1))} {656#(and (= (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|) 1) (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| 0))} #119#return; {662#(and (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| 0) (= (select |#valid| |ULTIMATE.start_dll_circular_create_#t~ret4#1.base|) 1) (not (= |ULTIMATE.start_dll_circular_create_#t~ret4#1.base| |ULTIMATE.start_main_~#s~0#1.base|)))} is VALID [2022-02-20 16:54:05,494 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 10 [2022-02-20 16:54:05,500 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:05,561 INFO L290 TraceCheckUtils]: 0: Hoare triple {686#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {689#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (= |node_create_~data#1| |node_create_#in~data#1|) (= |node_create_~temp~0#1.offset| 0) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)))} is VALID [2022-02-20 16:54:05,562 INFO L290 TraceCheckUtils]: 1: Hoare triple {689#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (= |node_create_~data#1| |node_create_#in~data#1|) (= |node_create_~temp~0#1.offset| 0) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)))} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {689#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (= |node_create_~data#1| |node_create_#in~data#1|) (= |node_create_~temp~0#1.offset| 0) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)))} is VALID [2022-02-20 16:54:05,563 INFO L290 TraceCheckUtils]: 2: Hoare triple {689#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (= |node_create_~data#1| |node_create_#in~data#1|) (= |node_create_~temp~0#1.offset| 0) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)))} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {690#(and (= (select (select |#memory_int| |node_create_#res#1.base|) 8) |node_create_#in~data#1|) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= 0 |node_create_#res#1.offset|) (= (select |#valid| |node_create_#res#1.base|) 1))} is VALID [2022-02-20 16:54:05,563 INFO L290 TraceCheckUtils]: 3: Hoare triple {690#(and (= (select (select |#memory_int| |node_create_#res#1.base|) 8) |node_create_#in~data#1|) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= 0 |node_create_#res#1.offset|) (= (select |#valid| |node_create_#res#1.base|) 1))} assume true; {690#(and (= (select (select |#memory_int| |node_create_#res#1.base|) 8) |node_create_#in~data#1|) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= 0 |node_create_#res#1.offset|) (= (select |#valid| |node_create_#res#1.base|) 1))} is VALID [2022-02-20 16:54:05,564 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {690#(and (= (select (select |#memory_int| |node_create_#res#1.base|) 8) |node_create_#in~data#1|) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= 0 |node_create_#res#1.offset|) (= (select |#valid| |node_create_#res#1.base|) 1))} {663#(and (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|) 1) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_main_~#s~0#1.offset| 0))} #121#return; {669#(and (= (select |#valid| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|) 1) (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.offset| 0) (not (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)))} is VALID [2022-02-20 16:54:05,564 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 22 [2022-02-20 16:54:05,573 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:06,063 INFO L290 TraceCheckUtils]: 0: Hoare triple {686#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {691#(and (= |#memory_int| |old(#memory_int)|) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= |node_create_~temp~0#1.offset| 1)))} is VALID [2022-02-20 16:54:06,064 INFO L290 TraceCheckUtils]: 1: Hoare triple {691#(and (= |#memory_int| |old(#memory_int)|) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= |node_create_~temp~0#1.offset| 1)))} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {691#(and (= |#memory_int| |old(#memory_int)|) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= |node_create_~temp~0#1.offset| 1)))} is VALID [2022-02-20 16:54:06,067 INFO L290 TraceCheckUtils]: 2: Hoare triple {691#(and (= |#memory_int| |old(#memory_int)|) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= |node_create_~temp~0#1.offset| 1)))} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {692#(and (= |#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|)))) (or (<= (+ (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (or (not (= (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)) 1)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= |#memory_$Pointer$.offset| (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)))) (or (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (not (= (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|)) 1))) (or (= |#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|)))) (not (= (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|)) 1))) (or (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (<= (+ (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) 1) |#StackHeapBarrier|)) (or (not (= (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|)) 1)) (= |#memory_int| |old(#memory_int)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} is VALID [2022-02-20 16:54:06,069 INFO L290 TraceCheckUtils]: 3: Hoare triple {692#(and (= |#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|)))) (or (<= (+ (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (or (not (= (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)) 1)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= |#memory_$Pointer$.offset| (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)))) (or (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (not (= (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|)) 1))) (or (= |#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|)))) (not (= (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|)) 1))) (or (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (<= (+ (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) 1) |#StackHeapBarrier|)) (or (not (= (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|)) 1)) (= |#memory_int| |old(#memory_int)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} assume true; {692#(and (= |#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|)))) (or (<= (+ (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (or (not (= (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)) 1)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= |#memory_$Pointer$.offset| (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)))) (or (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (not (= (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|)) 1))) (or (= |#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|)))) (not (= (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|)) 1))) (or (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (<= (+ (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) 1) |#StackHeapBarrier|)) (or (not (= (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|)) 1)) (= |#memory_int| |old(#memory_int)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} is VALID [2022-02-20 16:54:06,073 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {692#(and (= |#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|)))) (or (<= (+ (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (or (not (= (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)) 1)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= |#memory_$Pointer$.offset| (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)))) (or (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (not (= (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|)) 1))) (or (= |#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|)))) (not (= (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|)) 1))) (or (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (<= (+ (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) 1) |#StackHeapBarrier|)) (or (not (= (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|)) 1)) (= |#memory_int| |old(#memory_int)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} {674#(and (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (= |ULTIMATE.start_dll_circular_insert_~head#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (= (select |#valid| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) 8) |ULTIMATE.start_main_~data~0#1|) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) |ULTIMATE.start_dll_circular_insert_~head#1.base|)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_main_~#s~0#1.offset|) (= |ULTIMATE.start_dll_circular_insert_~head#1.base| |ULTIMATE.start_main_~#s~0#1.base|))} #123#return; {680#(and (= |ULTIMATE.start_dll_circular_insert_~head#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (not (= |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|) |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base|)) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) |ULTIMATE.start_dll_circular_insert_~head#1.base|)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) 8) |ULTIMATE.start_main_~data~0#1|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|) |ULTIMATE.start_main_~#s~0#1.offset|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (= |ULTIMATE.start_dll_circular_insert_~head#1.base| |ULTIMATE.start_main_~#s~0#1.base|))} is VALID [2022-02-20 16:54:06,074 INFO L290 TraceCheckUtils]: 0: Hoare triple {654#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(21, 2); {654#true} is VALID [2022-02-20 16:54:06,075 INFO L290 TraceCheckUtils]: 1: Hoare triple {654#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret18#1.base, main_#t~ret18#1.offset, main_#t~mem19#1.base, main_#t~mem19#1.offset, main_#t~mem21#1, main_#t~mem22#1.base, main_#t~mem22#1.offset, main_#t~post23#1, main_#t~mem20#1.base, main_#t~mem20#1.offset, main_#t~mem24#1.base, main_#t~mem24#1.offset, main_~len~0#1, main_~data~0#1, main_~#s~0#1.base, main_~#s~0#1.offset, main_~ptr~0#1.base, main_~ptr~0#1.offset, main_~count~0#1;main_~len~0#1 := 2;main_~data~0#1 := 1;call main_~#s~0#1.base, main_~#s~0#1.offset := #Ultimate.allocOnStack(4);assume { :begin_inline_dll_circular_create } true;dll_circular_create_#in~len#1, dll_circular_create_#in~data#1 := main_~len~0#1, main_~data~0#1;havoc dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset, dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset, dll_circular_create_#t~post6#1, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~len#1, dll_circular_create_~data#1, dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset;dll_circular_create_~len#1 := dll_circular_create_#in~len#1;dll_circular_create_~data#1 := dll_circular_create_#in~data#1; {656#(and (= (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|) 1) (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| 0))} is VALID [2022-02-20 16:54:06,076 INFO L272 TraceCheckUtils]: 2: Hoare triple {656#(and (= (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|) 1) (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| 0))} call dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset := node_create(dll_circular_create_~data#1); {686#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:54:06,076 INFO L290 TraceCheckUtils]: 3: Hoare triple {686#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {687#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|))} is VALID [2022-02-20 16:54:06,077 INFO L290 TraceCheckUtils]: 4: Hoare triple {687#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|))} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {687#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|))} is VALID [2022-02-20 16:54:06,078 INFO L290 TraceCheckUtils]: 5: Hoare triple {687#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|))} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {688#(and (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (= (select |#valid| |node_create_#res#1.base|) 1))} is VALID [2022-02-20 16:54:06,078 INFO L290 TraceCheckUtils]: 6: Hoare triple {688#(and (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (= (select |#valid| |node_create_#res#1.base|) 1))} assume true; {688#(and (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (= (select |#valid| |node_create_#res#1.base|) 1))} is VALID [2022-02-20 16:54:06,079 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {688#(and (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (= (select |#valid| |node_create_#res#1.base|) 1))} {656#(and (= (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|) 1) (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| 0))} #119#return; {662#(and (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| 0) (= (select |#valid| |ULTIMATE.start_dll_circular_create_#t~ret4#1.base|) 1) (not (= |ULTIMATE.start_dll_circular_create_#t~ret4#1.base| |ULTIMATE.start_main_~#s~0#1.base|)))} is VALID [2022-02-20 16:54:06,080 INFO L290 TraceCheckUtils]: 8: Hoare triple {662#(and (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| 0) (= (select |#valid| |ULTIMATE.start_dll_circular_create_#t~ret4#1.base|) 1) (not (= |ULTIMATE.start_dll_circular_create_#t~ret4#1.base| |ULTIMATE.start_main_~#s~0#1.base|)))} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {663#(and (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|) 1) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_main_~#s~0#1.offset| 0))} is VALID [2022-02-20 16:54:06,081 INFO L290 TraceCheckUtils]: 9: Hoare triple {663#(and (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|) 1) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_main_~#s~0#1.offset| 0))} assume !!(dll_circular_create_~len#1 > 1); {663#(and (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|) 1) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_main_~#s~0#1.offset| 0))} is VALID [2022-02-20 16:54:06,082 INFO L272 TraceCheckUtils]: 10: Hoare triple {663#(and (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|) 1) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_main_~#s~0#1.offset| 0))} call dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset := node_create(dll_circular_create_~data#1); {686#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:54:06,082 INFO L290 TraceCheckUtils]: 11: Hoare triple {686#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {689#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (= |node_create_~data#1| |node_create_#in~data#1|) (= |node_create_~temp~0#1.offset| 0) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)))} is VALID [2022-02-20 16:54:06,083 INFO L290 TraceCheckUtils]: 12: Hoare triple {689#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (= |node_create_~data#1| |node_create_#in~data#1|) (= |node_create_~temp~0#1.offset| 0) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)))} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {689#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (= |node_create_~data#1| |node_create_#in~data#1|) (= |node_create_~temp~0#1.offset| 0) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)))} is VALID [2022-02-20 16:54:06,084 INFO L290 TraceCheckUtils]: 13: Hoare triple {689#(and (= 1 (select |#valid| |node_create_~temp~0#1.base|)) (= |node_create_~data#1| |node_create_#in~data#1|) (= |node_create_~temp~0#1.offset| 0) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)))} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {690#(and (= (select (select |#memory_int| |node_create_#res#1.base|) 8) |node_create_#in~data#1|) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= 0 |node_create_#res#1.offset|) (= (select |#valid| |node_create_#res#1.base|) 1))} is VALID [2022-02-20 16:54:06,084 INFO L290 TraceCheckUtils]: 14: Hoare triple {690#(and (= (select (select |#memory_int| |node_create_#res#1.base|) 8) |node_create_#in~data#1|) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= 0 |node_create_#res#1.offset|) (= (select |#valid| |node_create_#res#1.base|) 1))} assume true; {690#(and (= (select (select |#memory_int| |node_create_#res#1.base|) 8) |node_create_#in~data#1|) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= 0 |node_create_#res#1.offset|) (= (select |#valid| |node_create_#res#1.base|) 1))} is VALID [2022-02-20 16:54:06,086 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {690#(and (= (select (select |#memory_int| |node_create_#res#1.base|) 8) |node_create_#in~data#1|) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= 0 |node_create_#res#1.offset|) (= (select |#valid| |node_create_#res#1.base|) 1))} {663#(and (= |ULTIMATE.start_dll_circular_create_~data#1| |ULTIMATE.start_main_~data~0#1|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|) 1) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_main_~#s~0#1.offset| 0))} #121#return; {669#(and (= (select |#valid| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|) 1) (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.offset| 0) (not (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)))} is VALID [2022-02-20 16:54:06,087 INFO L290 TraceCheckUtils]: 16: Hoare triple {669#(and (= (select |#valid| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|) 1) (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.offset| 0) (not (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)))} dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset := dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset;havoc dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset;call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, 4); {670#(and (= (select |#valid| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) 1) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_main_~#s~0#1.base|)) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset| 0) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|))} is VALID [2022-02-20 16:54:06,088 INFO L290 TraceCheckUtils]: 17: Hoare triple {670#(and (= (select |#valid| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) 1) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_main_~#s~0#1.base|)) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset| 0) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|))} assume dll_circular_create_~head~0#1.base != 0 || dll_circular_create_~head~0#1.offset != 0;call write~$Pointer$(dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~head~0#1.base, 4 + dll_circular_create_~head~0#1.offset, 4); {671#(and (= (select |#valid| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) 1) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_main_~#s~0#1.base|)) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset| 0) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|))} is VALID [2022-02-20 16:54:06,089 INFO L290 TraceCheckUtils]: 18: Hoare triple {671#(and (= (select |#valid| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) 1) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_main_~#s~0#1.base|)) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset| 0) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|))} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset;dll_circular_create_#t~post6#1 := dll_circular_create_~len#1;dll_circular_create_~len#1 := dll_circular_create_#t~post6#1 - 1;havoc dll_circular_create_#t~post6#1; {672#(and (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| 0) (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) |ULTIMATE.start_dll_circular_create_~head~0#1.offset|))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) |ULTIMATE.start_dll_circular_create_~head~0#1.offset|))) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)))} is VALID [2022-02-20 16:54:06,090 INFO L290 TraceCheckUtils]: 19: Hoare triple {672#(and (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| 0) (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) |ULTIMATE.start_dll_circular_create_~head~0#1.offset|))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) |ULTIMATE.start_dll_circular_create_~head~0#1.offset|))) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)))} assume !(dll_circular_create_~len#1 > 1); {672#(and (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| 0) (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) |ULTIMATE.start_dll_circular_create_~head~0#1.offset|))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) |ULTIMATE.start_dll_circular_create_~head~0#1.offset|))) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)))} is VALID [2022-02-20 16:54:06,091 INFO L290 TraceCheckUtils]: 20: Hoare triple {672#(and (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| 0) (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) |ULTIMATE.start_dll_circular_create_~head~0#1.offset|))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) |ULTIMATE.start_dll_circular_create_~head~0#1.offset|))) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)))} call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, 4);call write~$Pointer$(dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, dll_circular_create_~head~0#1.base, 4 + dll_circular_create_~head~0#1.offset, 4);dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {673#(and (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) |ULTIMATE.start_dll_circular_create_#res#1.offset|) |ULTIMATE.start_main_~#s~0#1.base|)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) |ULTIMATE.start_dll_circular_create_#res#1.offset|) |ULTIMATE.start_dll_circular_create_#res#1.base|)) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_#res#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_#res#1.base|) 1) (= |ULTIMATE.start_dll_circular_create_#res#1.offset| 0) (= |ULTIMATE.start_dll_circular_create_#res#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|))} is VALID [2022-02-20 16:54:06,092 INFO L290 TraceCheckUtils]: 21: Hoare triple {673#(and (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) |ULTIMATE.start_dll_circular_create_#res#1.offset|) |ULTIMATE.start_main_~#s~0#1.base|)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) |ULTIMATE.start_dll_circular_create_#res#1.offset|) |ULTIMATE.start_dll_circular_create_#res#1.base|)) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_#res#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_#res#1.base|) 1) (= |ULTIMATE.start_dll_circular_create_#res#1.offset| 0) (= |ULTIMATE.start_dll_circular_create_#res#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|))} main_#t~ret18#1.base, main_#t~ret18#1.offset := dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;assume { :end_inline_dll_circular_create } true;call write~init~$Pointer$(main_#t~ret18#1.base, main_#t~ret18#1.offset, main_~#s~0#1.base, main_~#s~0#1.offset, 4);havoc main_#t~ret18#1.base, main_#t~ret18#1.offset;assume { :begin_inline_dll_circular_insert } true;dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset, dll_circular_insert_#in~data#1, dll_circular_insert_#in~index#1 := main_~#s~0#1.base, main_~#s~0#1.offset, main_~data~0#1, (if main_~len~0#1 < 0 && 0 != main_~len~0#1 % 2 then 1 + main_~len~0#1 / 2 else main_~len~0#1 / 2);havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset, dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset, dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset, dll_circular_insert_#t~post12#1, dll_circular_insert_#t~mem13#1.base, dll_circular_insert_#t~mem13#1.offset, dll_circular_insert_#t~mem14#1.base, dll_circular_insert_#t~mem14#1.offset, dll_circular_insert_#t~mem15#1.base, dll_circular_insert_#t~mem15#1.offset, dll_circular_insert_#t~mem16#1.base, dll_circular_insert_#t~mem16#1.offset, dll_circular_insert_#t~mem17#1.base, dll_circular_insert_#t~mem17#1.offset, dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, dll_circular_insert_~data#1, dll_circular_insert_~index#1, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset;dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset := dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset;dll_circular_insert_~data#1 := dll_circular_insert_#in~data#1;dll_circular_insert_~index#1 := dll_circular_insert_#in~index#1; {674#(and (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (= |ULTIMATE.start_dll_circular_insert_~head#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (= (select |#valid| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) 8) |ULTIMATE.start_main_~data~0#1|) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) |ULTIMATE.start_dll_circular_insert_~head#1.base|)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_main_~#s~0#1.offset|) (= |ULTIMATE.start_dll_circular_insert_~head#1.base| |ULTIMATE.start_main_~#s~0#1.base|))} is VALID [2022-02-20 16:54:06,093 INFO L272 TraceCheckUtils]: 22: Hoare triple {674#(and (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (= |ULTIMATE.start_dll_circular_insert_~head#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (= (select |#valid| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) 8) |ULTIMATE.start_main_~data~0#1|) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) |ULTIMATE.start_dll_circular_insert_~head#1.base|)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_main_~#s~0#1.offset|) (= |ULTIMATE.start_dll_circular_insert_~head#1.base| |ULTIMATE.start_main_~#s~0#1.base|))} call dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset := node_create(dll_circular_insert_~data#1); {686#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:54:06,094 INFO L290 TraceCheckUtils]: 23: Hoare triple {686#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {691#(and (= |#memory_int| |old(#memory_int)|) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= |node_create_~temp~0#1.offset| 1)))} is VALID [2022-02-20 16:54:06,094 INFO L290 TraceCheckUtils]: 24: Hoare triple {691#(and (= |#memory_int| |old(#memory_int)|) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= |node_create_~temp~0#1.offset| 1)))} assume !(0 == ~temp~0#1.base && 0 == ~temp~0#1.offset); {691#(and (= |#memory_int| |old(#memory_int)|) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= |node_create_~temp~0#1.offset| 1)))} is VALID [2022-02-20 16:54:06,097 INFO L290 TraceCheckUtils]: 25: Hoare triple {691#(and (= |#memory_int| |old(#memory_int)|) (<= (+ |node_create_~temp~0#1.base| 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |node_create_~temp~0#1.offset| (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= |node_create_~temp~0#1.offset| 1)))} call write~$Pointer$(0, 0, ~temp~0#1.base, ~temp~0#1.offset, 4);call write~$Pointer$(0, 0, ~temp~0#1.base, 4 + ~temp~0#1.offset, 4);call write~int(~data#1, ~temp~0#1.base, 8 + ~temp~0#1.offset, 4);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {692#(and (= |#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|)))) (or (<= (+ (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (or (not (= (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)) 1)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= |#memory_$Pointer$.offset| (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)))) (or (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (not (= (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|)) 1))) (or (= |#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|)))) (not (= (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|)) 1))) (or (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (<= (+ (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) 1) |#StackHeapBarrier|)) (or (not (= (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|)) 1)) (= |#memory_int| |old(#memory_int)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} is VALID [2022-02-20 16:54:06,099 INFO L290 TraceCheckUtils]: 26: Hoare triple {692#(and (= |#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|)))) (or (<= (+ (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (or (not (= (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)) 1)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= |#memory_$Pointer$.offset| (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)))) (or (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (not (= (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|)) 1))) (or (= |#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|)))) (not (= (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|)) 1))) (or (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (<= (+ (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) 1) |#StackHeapBarrier|)) (or (not (= (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|)) 1)) (= |#memory_int| |old(#memory_int)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} assume true; {692#(and (= |#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|)))) (or (<= (+ (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (or (not (= (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)) 1)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= |#memory_$Pointer$.offset| (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)))) (or (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (not (= (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|)) 1))) (or (= |#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|)))) (not (= (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|)) 1))) (or (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (<= (+ (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) 1) |#StackHeapBarrier|)) (or (not (= (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|)) 1)) (= |#memory_int| |old(#memory_int)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} is VALID [2022-02-20 16:54:06,103 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {692#(and (= |#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|)))) (or (<= (+ (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) 1) |#StackHeapBarrier|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (<= (+ |node_create_#res#1.base| 1) |#StackHeapBarrier|) (or (not (= (select |old(#valid)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)) 1)) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|)) (not (= (select |old(#valid)| |node_create_#res#1.base|) 1)) (= |#memory_$Pointer$.offset| (store |old(#memory_$Pointer$.offset)| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) (select |#memory_$Pointer$.offset| (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|)))) (or (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (not (= (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|)) 1))) (or (= |#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|)))) (not (= (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|)) 1))) (or (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (<= (+ (@diff |old(#memory_$Pointer$.offset)| |#memory_$Pointer$.offset|) 1) |#StackHeapBarrier|)) (or (not (= (select |old(#valid)| (@diff |old(#memory_int)| |#memory_int|)) 1)) (= |#memory_int| |old(#memory_int)|)) (= |#memory_$Pointer$.base| (store |old(#memory_$Pointer$.base)| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|) (select |#memory_$Pointer$.base| (@diff |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|)))))} {674#(and (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (= |ULTIMATE.start_dll_circular_insert_~head#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (= (select |#valid| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) 1) (<= (+ |#StackHeapBarrier| 1) |ULTIMATE.start_main_~#s~0#1.base|) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) 8) |ULTIMATE.start_main_~data~0#1|) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) |ULTIMATE.start_dll_circular_insert_~head#1.base|)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_main_~#s~0#1.offset|) (= |ULTIMATE.start_dll_circular_insert_~head#1.base| |ULTIMATE.start_main_~#s~0#1.base|))} #123#return; {680#(and (= |ULTIMATE.start_dll_circular_insert_~head#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (not (= |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|) |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base|)) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) |ULTIMATE.start_dll_circular_insert_~head#1.base|)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) 8) |ULTIMATE.start_main_~data~0#1|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|) |ULTIMATE.start_main_~#s~0#1.offset|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (= |ULTIMATE.start_dll_circular_insert_~head#1.base| |ULTIMATE.start_main_~#s~0#1.base|))} is VALID [2022-02-20 16:54:06,111 INFO L290 TraceCheckUtils]: 28: Hoare triple {680#(and (= |ULTIMATE.start_dll_circular_insert_~head#1.offset| |ULTIMATE.start_main_~#s~0#1.offset|) (not (= |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|) |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base|)) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) |ULTIMATE.start_dll_circular_insert_~head#1.base|)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|)) 8) |ULTIMATE.start_main_~data~0#1|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_dll_circular_insert_~head#1.offset|) |ULTIMATE.start_main_~#s~0#1.offset|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_dll_circular_insert_~head#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (= |ULTIMATE.start_dll_circular_insert_~head#1.base| |ULTIMATE.start_main_~#s~0#1.base|))} dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset := dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset := 0, 0;call dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset := read~$Pointer$(dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, 4);dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset := dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset;havoc dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset; {681#(and (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~last~1#1.base|) |ULTIMATE.start_dll_circular_insert_~last~1#1.offset|) |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~last~1#1.base|) |ULTIMATE.start_dll_circular_insert_~last~1#1.offset|) |ULTIMATE.start_dll_circular_insert_~last~1#1.base|)) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_insert_~last~1#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_dll_circular_insert_~last~1#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.offset| 8)))} is VALID [2022-02-20 16:54:06,112 INFO L290 TraceCheckUtils]: 29: Hoare triple {681#(and (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~last~1#1.base|) |ULTIMATE.start_dll_circular_insert_~last~1#1.offset|) |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_insert_~last~1#1.base|) |ULTIMATE.start_dll_circular_insert_~last~1#1.offset|) |ULTIMATE.start_dll_circular_insert_~last~1#1.base|)) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_insert_~last~1#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_dll_circular_insert_~last~1#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.offset| 8)))} assume !!(dll_circular_insert_~index#1 > 0);dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset := dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset;call dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset := read~$Pointer$(dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset, 4);dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset := dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset;havoc dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset;dll_circular_insert_#t~post12#1 := dll_circular_insert_~index#1;dll_circular_insert_~index#1 := dll_circular_insert_#t~post12#1 - 1;havoc dll_circular_insert_#t~post12#1; {682#(and (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| 8)))} is VALID [2022-02-20 16:54:06,113 INFO L290 TraceCheckUtils]: 30: Hoare triple {682#(and (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| 8)))} assume !(dll_circular_insert_~index#1 > 0); {682#(and (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| 8)))} is VALID [2022-02-20 16:54:06,114 INFO L290 TraceCheckUtils]: 31: Hoare triple {682#(and (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|) 8) |ULTIMATE.start_main_~data~0#1|) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (not (= |ULTIMATE.start_dll_circular_insert_~last~1#1.base| |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| 8)))} assume dll_circular_insert_~snd_to_last~0#1.base != 0 || dll_circular_insert_~snd_to_last~0#1.offset != 0;call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~new_node~0#1.base, 4 + dll_circular_insert_~new_node~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, 4);call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~last~1#1.base, 4 + dll_circular_insert_~last~1#1.offset, 4); {683#(and (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) 8) |ULTIMATE.start_main_~data~0#1|))} is VALID [2022-02-20 16:54:06,115 INFO L290 TraceCheckUtils]: 32: Hoare triple {683#(and (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) 0) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) 8) |ULTIMATE.start_main_~data~0#1|))} assume { :end_inline_dll_circular_insert } true;call main_#t~mem19#1.base, main_#t~mem19#1.offset := read~$Pointer$(main_~#s~0#1.base, main_~#s~0#1.offset, 4);main_~ptr~0#1.base, main_~ptr~0#1.offset := main_#t~mem19#1.base, main_#t~mem19#1.offset;havoc main_#t~mem19#1.base, main_#t~mem19#1.offset;main_~count~0#1 := 0; {684#(and (= (select (select |#memory_int| |ULTIMATE.start_main_~ptr~0#1.base|) (+ |ULTIMATE.start_main_~ptr~0#1.offset| 8)) |ULTIMATE.start_main_~data~0#1|) (= |ULTIMATE.start_main_~ptr~0#1.offset| 0))} is VALID [2022-02-20 16:54:06,115 INFO L290 TraceCheckUtils]: 33: Hoare triple {684#(and (= (select (select |#memory_int| |ULTIMATE.start_main_~ptr~0#1.base|) (+ |ULTIMATE.start_main_~ptr~0#1.offset| 8)) |ULTIMATE.start_main_~data~0#1|) (= |ULTIMATE.start_main_~ptr~0#1.offset| 0))} call main_#t~mem21#1 := read~int(main_~ptr~0#1.base, 8 + main_~ptr~0#1.offset, 4); {685#(= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_main_#t~mem21#1|)} is VALID [2022-02-20 16:54:06,115 INFO L290 TraceCheckUtils]: 34: Hoare triple {685#(= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_main_#t~mem21#1|)} assume main_~data~0#1 != main_#t~mem21#1;havoc main_#t~mem21#1; {655#false} is VALID [2022-02-20 16:54:06,116 INFO L290 TraceCheckUtils]: 35: Hoare triple {655#false} assume !false; {655#false} is VALID [2022-02-20 16:54:06,116 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 0 proven. 14 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2022-02-20 16:54:06,116 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:54:06,117 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [676457827] [2022-02-20 16:54:06,117 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [676457827] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:54:06,117 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2138632282] [2022-02-20 16:54:06,117 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:54:06,117 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:54:06,117 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:54:06,131 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 16:54:06,135 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2022-02-20 16:54:06,590 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:06,606 INFO L263 TraceCheckSpWp]: Trace formula consists of 437 conjuncts, 203 conjunts are in the unsatisfiable core [2022-02-20 16:54:06,639 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:06,643 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:54:06,689 INFO L390 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 [2022-02-20 16:54:06,790 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 5 treesize of output 3 [2022-02-20 16:54:06,921 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:06,922 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:06,923 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:06,926 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 4 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 26 [2022-02-20 16:54:07,052 INFO L356 Elim1Store]: treesize reduction 18, result has 35.7 percent of original size [2022-02-20 16:54:07,054 INFO L390 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 2 new quantified variables, introduced 2 case distinctions, treesize of input 17 treesize of output 21 [2022-02-20 16:54:07,469 INFO L390 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 2 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2022-02-20 16:54:07,680 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:07,683 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:07,684 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:07,685 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 26 [2022-02-20 16:54:07,693 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 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 13 treesize of output 9 [2022-02-20 16:54:07,931 INFO L356 Elim1Store]: treesize reduction 11, result has 45.0 percent of original size [2022-02-20 16:54:07,931 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 1 case distinctions, treesize of input 21 treesize of output 25 [2022-02-20 16:54:07,985 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:07,996 INFO L356 Elim1Store]: treesize reduction 18, result has 35.7 percent of original size [2022-02-20 16:54:07,996 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 2 case distinctions, treesize of input 22 treesize of output 29 [2022-02-20 16:54:08,245 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 11 [2022-02-20 16:54:08,263 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 18 [2022-02-20 16:54:08,308 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2022-02-20 16:54:08,525 INFO L356 Elim1Store]: treesize reduction 15, result has 25.0 percent of original size [2022-02-20 16:54:08,526 INFO L390 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 1 case distinctions, treesize of input 102 treesize of output 87 [2022-02-20 16:54:08,537 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2022-02-20 16:54:08,557 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 49 treesize of output 39 [2022-02-20 16:54:09,034 INFO L356 Elim1Store]: treesize reduction 17, result has 29.2 percent of original size [2022-02-20 16:54:09,035 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 158 treesize of output 95 [2022-02-20 16:54:09,062 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:09,070 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 23 [2022-02-20 16:54:09,095 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:09,105 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 57 treesize of output 42 [2022-02-20 16:54:09,134 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 29 [2022-02-20 16:54:09,158 INFO L390 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 18 [2022-02-20 16:54:09,176 INFO L390 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 2 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 29 [2022-02-20 16:54:09,193 INFO L390 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 18 [2022-02-20 16:54:09,600 INFO L356 Elim1Store]: treesize reduction 24, result has 4.0 percent of original size [2022-02-20 16:54:09,601 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 5 new quantified variables, introduced 3 case distinctions, treesize of input 141 treesize of output 63 [2022-02-20 16:54:09,696 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:09,697 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 4 new quantified variables, introduced 0 case distinctions, treesize of input 29 treesize of output 13 [2022-02-20 16:54:09,788 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:09,790 INFO L390 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 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2022-02-20 16:54:09,848 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 3 [2022-02-20 16:54:10,243 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:10,258 INFO L356 Elim1Store]: treesize reduction 52, result has 17.5 percent of original size [2022-02-20 16:54:10,258 INFO L390 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 5 new quantified variables, introduced 5 case distinctions, treesize of input 149 treesize of output 115 [2022-02-20 16:54:10,271 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:10,272 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2022-02-20 16:54:10,284 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:10,284 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:10,285 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:10,286 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:10,287 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 3 select indices, 3 select index equivalence classes, 7 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 55 treesize of output 53 [2022-02-20 16:54:10,298 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:10,299 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:10,308 INFO L356 Elim1Store]: treesize reduction 8, result has 72.4 percent of original size [2022-02-20 16:54:10,308 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 4 new quantified variables, introduced 2 case distinctions, treesize of input 33 treesize of output 33 [2022-02-20 16:54:11,166 INFO L356 Elim1Store]: treesize reduction 72, result has 20.0 percent of original size [2022-02-20 16:54:11,167 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 4 select indices, 4 select index equivalence classes, 0 disjoint index pairs (out of 6 index pairs), introduced 7 new quantified variables, introduced 8 case distinctions, treesize of input 292 treesize of output 161 [2022-02-20 16:54:11,269 INFO L356 Elim1Store]: treesize reduction 74, result has 17.8 percent of original size [2022-02-20 16:54:11,270 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 3 select indices, 3 select index equivalence classes, 2 disjoint index pairs (out of 3 index pairs), introduced 5 new quantified variables, introduced 5 case distinctions, treesize of input 258 treesize of output 199 [2022-02-20 16:54:11,367 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:11,390 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:11,391 WARN L325 FreeRefinementEngine]: Global settings require throwing the following exception [2022-02-20 16:54:11,410 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Forceful destruction successful, exit code 0 [2022-02-20 16:54:11,607 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:54:11,608 FATAL L? ?]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.AssertionError: var is still there: |v_#memory_$Pointer$.offset_49| at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.arrays.Elim1Store.elim1(Elim1Store.java:285) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.arrays.ElimStorePlain.applyComplexEliminationRules(ElimStorePlain.java:427) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminate(DualJunctionSaa.java:184) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminateOne3(DualJunctionSaa.java:166) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminateOne2(DualJunctionSaa.java:154) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminateOne1(DualJunctionSaa.java:142) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminateOne0(DualJunctionSaa.java:126) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminateOne(DualJunctionSaa.java:110) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryExhaustivelyToEliminate(DualJunctionSaa.java:95) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminate(DualJunctionSaa.java:90) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.tryToEliminateOne(QuantifierPusher.java:904) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.applyNewEliminationTechniquesExhaustively(QuantifierPusher.java:865) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.applyDualJunctionEliminationTechniques(QuantifierPusher.java:783) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.tryToPushOverDualFiniteConnective2(QuantifierPusher.java:425) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.tryToPushOverDualFiniteConnective(QuantifierPusher.java:355) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.convert(QuantifierPushTermWalker.java:172) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.convert(QuantifierPushTermWalker.java:1) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermContextTransformationEngine$ApplicationTermTask.doStep(TermContextTransformationEngine.java:169) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermContextTransformationEngine.transform(TermContextTransformationEngine.java:77) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermContextTransformationEngine.transform(TermContextTransformationEngine.java:61) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.eliminate(QuantifierPushTermWalker.java:261) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.eliminate(QuantifierPushTermWalker.java:247) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.PartialQuantifierElimination.eliminate(PartialQuantifierElimination.java:92) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer$QuantifierEliminationPostprocessor.postprocess(IterativePredicateTransformer.java:238) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer.applyPostprocessors(IterativePredicateTransformer.java:420) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer.computeStrongestPostconditionSequence(IterativePredicateTransformer.java:199) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.computeInterpolantsUsingUnsatCore(TraceCheckSpWp.java:299) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.computeInterpolants(TraceCheckSpWp.java:185) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.(TraceCheckSpWp.java:163) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleSpWp.construct(IpTcStrategyModuleSpWp.java:108) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleSpWp.construct(IpTcStrategyModuleSpWp.java:1) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.getOrConstruct(IpTcStrategyModuleBase.java:100) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.getInterpolantComputationStatus(IpTcStrategyModuleBase.java:76) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.AutomatonFreeRefinementEngine.tryExecuteInterpolantGenerator(AutomatonFreeRefinementEngine.java:273) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.AutomatonFreeRefinementEngine.generateProof(AutomatonFreeRefinementEngine.java:155) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.AutomatonFreeRefinementEngine.executeStrategy(AutomatonFreeRefinementEngine.java:145) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.AutomatonFreeRefinementEngine.(AutomatonFreeRefinementEngine.java:93) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceAbstractionRefinementEngine.(TraceAbstractionRefinementEngine.java:79) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.BasicCegarLoop.isCounterexampleFeasible(BasicCegarLoop.java:610) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterate(AbstractCegarLoop.java:413) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.startCegar(AbstractCegarLoop.java:348) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.runCegar(AbstractCegarLoop.java:330) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.CegarLoopUtils.getCegarLoopResult(CegarLoopUtils.java:56) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.executeCegarLoop(TraceAbstractionStarter.java:414) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.analyseProgram(TraceAbstractionStarter.java:304) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.analyseSequentialProgram(TraceAbstractionStarter.java:264) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:177) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:156) 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:320) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) [2022-02-20 16:54:11,611 INFO L158 Benchmark]: Toolchain (without parser) took 9409.40ms. Allocated memory was 96.5MB in the beginning and 207.6MB in the end (delta: 111.1MB). Free memory was 64.1MB in the beginning and 89.8MB in the end (delta: -25.6MB). Peak memory consumption was 114.8MB. Max. memory is 16.1GB. [2022-02-20 16:54:11,612 INFO L158 Benchmark]: CDTParser took 0.14ms. Allocated memory is still 96.5MB. Free memory is still 51.1MB. There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 16:54:11,612 INFO L158 Benchmark]: CACSL2BoogieTranslator took 521.63ms. Allocated memory is still 96.5MB. Free memory was 63.9MB in the beginning and 62.6MB in the end (delta: 1.3MB). Peak memory consumption was 8.4MB. Max. memory is 16.1GB. [2022-02-20 16:54:11,612 INFO L158 Benchmark]: Boogie Procedure Inliner took 60.93ms. Allocated memory is still 96.5MB. Free memory was 62.6MB in the beginning and 59.6MB in the end (delta: 2.9MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:54:11,612 INFO L158 Benchmark]: Boogie Preprocessor took 34.81ms. Allocated memory is still 96.5MB. Free memory was 59.6MB in the beginning and 57.3MB in the end (delta: 2.3MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:54:11,612 INFO L158 Benchmark]: RCFGBuilder took 532.09ms. Allocated memory was 96.5MB in the beginning and 138.4MB in the end (delta: 41.9MB). Free memory was 57.3MB in the beginning and 103.2MB in the end (delta: -45.9MB). Peak memory consumption was 17.9MB. Max. memory is 16.1GB. [2022-02-20 16:54:11,612 INFO L158 Benchmark]: TraceAbstraction took 8255.62ms. Allocated memory was 138.4MB in the beginning and 207.6MB in the end (delta: 69.2MB). Free memory was 102.6MB in the beginning and 89.8MB in the end (delta: 12.8MB). Peak memory consumption was 111.9MB. Max. memory is 16.1GB. [2022-02-20 16:54:11,613 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.14ms. Allocated memory is still 96.5MB. Free memory is still 51.1MB. There was no memory consumed. Max. memory is 16.1GB. * CACSL2BoogieTranslator took 521.63ms. Allocated memory is still 96.5MB. Free memory was 63.9MB in the beginning and 62.6MB in the end (delta: 1.3MB). Peak memory consumption was 8.4MB. Max. memory is 16.1GB. * Boogie Procedure Inliner took 60.93ms. Allocated memory is still 96.5MB. Free memory was 62.6MB in the beginning and 59.6MB in the end (delta: 2.9MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * Boogie Preprocessor took 34.81ms. Allocated memory is still 96.5MB. Free memory was 59.6MB in the beginning and 57.3MB in the end (delta: 2.3MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * RCFGBuilder took 532.09ms. Allocated memory was 96.5MB in the beginning and 138.4MB in the end (delta: 41.9MB). Free memory was 57.3MB in the beginning and 103.2MB in the end (delta: -45.9MB). Peak memory consumption was 17.9MB. Max. memory is 16.1GB. * TraceAbstraction took 8255.62ms. Allocated memory was 138.4MB in the beginning and 207.6MB in the end (delta: 69.2MB). Free memory was 102.6MB in the beginning and 89.8MB in the end (delta: 12.8MB). Peak memory consumption was 111.9MB. Max. memory is 16.1GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - ExceptionOrErrorResult: AssertionError: var is still there: |v_#memory_$Pointer$.offset_49| de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: AssertionError: var is still there: |v_#memory_$Pointer$.offset_49|: de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.arrays.Elim1Store.elim1(Elim1Store.java:285) RESULT: Ultimate could not prove your program: Toolchain returned no result. [2022-02-20 16:54:11,635 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 0 Received shutdown request... --- End real Ultimate output --- Execution finished normally Using bit-precise analysis Retrying with bit-precise analysis ### Bit-precise run ### Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/list-simple/dll2c_insert_equal.i -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 535caea86e22f289c2fcb0364594f5e7b1dfaabfa814e56099346e6a240c0067 --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 16:54:13,474 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 16:54:13,476 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 16:54:13,517 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 16:54:13,518 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 16:54:13,520 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 16:54:13,521 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 16:54:13,525 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 16:54:13,527 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 16:54:13,531 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 16:54:13,532 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 16:54:13,533 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 16:54:13,533 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 16:54:13,535 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 16:54:13,536 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 16:54:13,541 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 16:54:13,542 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 16:54:13,542 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 16:54:13,543 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 16:54:13,545 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 16:54:13,548 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 16:54:13,549 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 16:54:13,550 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 16:54:13,551 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 16:54:13,553 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 16:54:13,554 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 16:54:13,554 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 16:54:13,555 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 16:54:13,555 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 16:54:13,556 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 16:54:13,556 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 16:54:13,557 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 16:54:13,558 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 16:54:13,558 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 16:54:13,559 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 16:54:13,559 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 16:54:13,560 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 16:54:13,560 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 16:54:13,560 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 16:54:13,561 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 16:54:13,562 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 16:54:13,565 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.epf [2022-02-20 16:54:13,587 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 16:54:13,587 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 16:54:13,588 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 16:54:13,588 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 16:54:13,589 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 16:54:13,589 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 16:54:13,590 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 16:54:13,590 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 16:54:13,590 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 16:54:13,590 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 16:54:13,591 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 16:54:13,591 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 16:54:13,591 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 16:54:13,592 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 16:54:13,592 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 16:54:13,592 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 16:54:13,592 INFO L138 SettingsManager]: * Adapt memory model on pointer casts if necessary=true [2022-02-20 16:54:13,592 INFO L138 SettingsManager]: * Use bitvectors instead of ints=true [2022-02-20 16:54:13,592 INFO L138 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2022-02-20 16:54:13,592 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 16:54:13,593 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 16:54:13,593 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 16:54:13,593 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 16:54:13,593 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 16:54:13,593 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 16:54:13,593 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 16:54:13,593 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:54:13,594 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 16:54:13,594 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 16:54:13,594 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 16:54:13,594 INFO L138 SettingsManager]: * Trace refinement strategy=WOLF [2022-02-20 16:54:13,594 INFO L138 SettingsManager]: * Command for external solver=cvc4 --incremental --print-success --lang smt [2022-02-20 16:54:13,594 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 16:54:13,594 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 16:54:13,595 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 16:54:13,595 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2022-02-20 16:54:13,595 INFO L138 SettingsManager]: * Logic for external solver=AUFBV WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> 535caea86e22f289c2fcb0364594f5e7b1dfaabfa814e56099346e6a240c0067 [2022-02-20 16:54:13,968 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 16:54:13,994 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 16:54:13,996 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 16:54:13,997 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 16:54:13,997 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 16:54:13,998 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/list-simple/dll2c_insert_equal.i [2022-02-20 16:54:14,039 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/120ae7a2a/0ce0a4792c1f4d5f98f7b7d49d3a2c94/FLAGe3fe44c1c [2022-02-20 16:54:14,389 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 16:54:14,389 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/list-simple/dll2c_insert_equal.i [2022-02-20 16:54:14,396 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/120ae7a2a/0ce0a4792c1f4d5f98f7b7d49d3a2c94/FLAGe3fe44c1c [2022-02-20 16:54:14,797 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/120ae7a2a/0ce0a4792c1f4d5f98f7b7d49d3a2c94 [2022-02-20 16:54:14,800 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 16:54:14,802 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 16:54:14,812 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 16:54:14,812 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 16:54:14,814 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 16:54:14,816 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:54:14" (1/1) ... [2022-02-20 16:54:14,817 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@216dfb8 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:14, skipping insertion in model container [2022-02-20 16:54:14,818 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:54:14" (1/1) ... [2022-02-20 16:54:14,823 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 16:54:14,848 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 16:54:15,144 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/list-simple/dll2c_insert_equal.i[24877,24890] [2022-02-20 16:54:15,146 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:54:15,159 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 16:54:15,213 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/list-simple/dll2c_insert_equal.i[24877,24890] [2022-02-20 16:54:15,215 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:54:15,242 INFO L208 MainTranslator]: Completed translation [2022-02-20 16:54:15,243 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15 WrapperNode [2022-02-20 16:54:15,243 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 16:54:15,244 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 16:54:15,244 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 16:54:15,244 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 16:54:15,249 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15" (1/1) ... [2022-02-20 16:54:15,271 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15" (1/1) ... [2022-02-20 16:54:15,299 INFO L137 Inliner]: procedures = 130, calls = 53, calls flagged for inlining = 6, calls inlined = 6, statements flattened = 155 [2022-02-20 16:54:15,299 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 16:54:15,300 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 16:54:15,300 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 16:54:15,300 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 16:54:15,308 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15" (1/1) ... [2022-02-20 16:54:15,309 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15" (1/1) ... [2022-02-20 16:54:15,318 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15" (1/1) ... [2022-02-20 16:54:15,320 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15" (1/1) ... [2022-02-20 16:54:15,342 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15" (1/1) ... [2022-02-20 16:54:15,345 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15" (1/1) ... [2022-02-20 16:54:15,357 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15" (1/1) ... [2022-02-20 16:54:15,360 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 16:54:15,360 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 16:54:15,360 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 16:54:15,361 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 16:54:15,361 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15" (1/1) ... [2022-02-20 16:54:15,365 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:54:15,373 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:54:15,392 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 16:54:15,406 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 16:54:15,420 INFO L130 BoogieDeclarations]: Found specification of procedure read~intINTTYPE4 [2022-02-20 16:54:15,420 INFO L130 BoogieDeclarations]: Found specification of procedure node_create [2022-02-20 16:54:15,420 INFO L138 BoogieDeclarations]: Found implementation of procedure node_create [2022-02-20 16:54:15,420 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2022-02-20 16:54:15,420 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 16:54:15,421 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2022-02-20 16:54:15,421 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2022-02-20 16:54:15,421 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2022-02-20 16:54:15,421 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-02-20 16:54:15,421 INFO L130 BoogieDeclarations]: Found specification of procedure write~intINTTYPE4 [2022-02-20 16:54:15,421 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2022-02-20 16:54:15,421 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~intINTTYPE1 [2022-02-20 16:54:15,422 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 16:54:15,422 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 16:54:15,497 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 16:54:15,498 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 16:54:15,930 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 16:54:15,939 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 16:54:15,941 INFO L299 CfgBuilder]: Removed 4 assume(true) statements. [2022-02-20 16:54:15,942 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:54:15 BoogieIcfgContainer [2022-02-20 16:54:15,942 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 16:54:15,943 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 16:54:15,944 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 16:54:15,945 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 16:54:15,946 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 04:54:14" (1/3) ... [2022-02-20 16:54:15,946 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@59d5f9d7 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:54:15, skipping insertion in model container [2022-02-20 16:54:15,946 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:54:15" (2/3) ... [2022-02-20 16:54:15,947 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@59d5f9d7 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:54:15, skipping insertion in model container [2022-02-20 16:54:15,947 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:54:15" (3/3) ... [2022-02-20 16:54:15,948 INFO L111 eAbstractionObserver]: Analyzing ICFG dll2c_insert_equal.i [2022-02-20 16:54:15,951 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 16:54:15,951 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 16:54:15,997 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 16:54:16,008 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 16:54:16,009 INFO L340 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-02-20 16:54:16,023 INFO L276 IsEmpty]: Start isEmpty. Operand has 38 states, 32 states have (on average 1.5) internal successors, (48), 33 states have internal predecessors, (48), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:16,028 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 26 [2022-02-20 16:54:16,028 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:54:16,029 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:54:16,029 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:54:16,034 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:54:16,034 INFO L85 PathProgramCache]: Analyzing trace with hash -1237252285, now seen corresponding path program 1 times [2022-02-20 16:54:16,044 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:54:16,044 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1633443156] [2022-02-20 16:54:16,045 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:54:16,045 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:54:16,045 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:54:16,055 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:54:16,086 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (2)] Waiting until timeout for monitored process [2022-02-20 16:54:16,250 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:16,258 INFO L263 TraceCheckSpWp]: Trace formula consists of 214 conjuncts, 1 conjunts are in the unsatisfiable core [2022-02-20 16:54:16,275 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:16,278 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:54:16,383 INFO L290 TraceCheckUtils]: 0: Hoare triple {41#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(21bv32, 2bv32); {41#true} is VALID [2022-02-20 16:54:16,383 INFO L290 TraceCheckUtils]: 1: Hoare triple {41#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret18#1.base, main_#t~ret18#1.offset, main_#t~mem19#1.base, main_#t~mem19#1.offset, main_#t~mem21#1, main_#t~mem22#1.base, main_#t~mem22#1.offset, main_#t~post23#1, main_#t~mem20#1.base, main_#t~mem20#1.offset, main_#t~mem24#1.base, main_#t~mem24#1.offset, main_~len~0#1, main_~data~0#1, main_~#s~0#1.base, main_~#s~0#1.offset, main_~ptr~0#1.base, main_~ptr~0#1.offset, main_~count~0#1;main_~len~0#1 := 2bv32;main_~data~0#1 := 1bv32;call main_~#s~0#1.base, main_~#s~0#1.offset := #Ultimate.allocOnStack(4bv32);assume { :begin_inline_dll_circular_create } true;dll_circular_create_#in~len#1, dll_circular_create_#in~data#1 := main_~len~0#1, main_~data~0#1;havoc dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset, dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset, dll_circular_create_#t~post6#1, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~len#1, dll_circular_create_~data#1, dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset;dll_circular_create_~len#1 := dll_circular_create_#in~len#1;dll_circular_create_~data#1 := dll_circular_create_#in~data#1; {41#true} is VALID [2022-02-20 16:54:16,384 INFO L272 TraceCheckUtils]: 2: Hoare triple {41#true} call dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset := node_create(dll_circular_create_~data#1); {41#true} is VALID [2022-02-20 16:54:16,384 INFO L290 TraceCheckUtils]: 3: Hoare triple {41#true} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12bv32);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {41#true} is VALID [2022-02-20 16:54:16,384 INFO L290 TraceCheckUtils]: 4: Hoare triple {41#true} assume !(0bv32 == ~temp~0#1.base && 0bv32 == ~temp~0#1.offset); {41#true} is VALID [2022-02-20 16:54:16,385 INFO L290 TraceCheckUtils]: 5: Hoare triple {41#true} call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~temp~0#1.offset, 4bv32);call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~bvadd32(4bv32, ~temp~0#1.offset), 4bv32);call write~intINTTYPE4(~data#1, ~temp~0#1.base, ~bvadd32(8bv32, ~temp~0#1.offset), 4bv32);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {41#true} is VALID [2022-02-20 16:54:16,385 INFO L290 TraceCheckUtils]: 6: Hoare triple {41#true} assume true; {41#true} is VALID [2022-02-20 16:54:16,385 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {41#true} {41#true} #119#return; {41#true} is VALID [2022-02-20 16:54:16,386 INFO L290 TraceCheckUtils]: 8: Hoare triple {41#true} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {41#true} is VALID [2022-02-20 16:54:16,386 INFO L290 TraceCheckUtils]: 9: Hoare triple {41#true} assume !true; {41#true} is VALID [2022-02-20 16:54:16,387 INFO L290 TraceCheckUtils]: 10: Hoare triple {41#true} call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, dll_circular_create_~head~0#1.base, ~bvadd32(4bv32, dll_circular_create_~head~0#1.offset), 4bv32);dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {41#true} is VALID [2022-02-20 16:54:16,387 INFO L290 TraceCheckUtils]: 11: Hoare triple {41#true} main_#t~ret18#1.base, main_#t~ret18#1.offset := dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;assume { :end_inline_dll_circular_create } true;call write~init~$Pointer$(main_#t~ret18#1.base, main_#t~ret18#1.offset, main_~#s~0#1.base, main_~#s~0#1.offset, 4bv32);havoc main_#t~ret18#1.base, main_#t~ret18#1.offset;assume { :begin_inline_dll_circular_insert } true;dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset, dll_circular_insert_#in~data#1, dll_circular_insert_#in~index#1 := main_~#s~0#1.base, main_~#s~0#1.offset, main_~data~0#1, ~bvsdiv32(main_~len~0#1, 2bv32);havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset, dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset, dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset, dll_circular_insert_#t~post12#1, dll_circular_insert_#t~mem13#1.base, dll_circular_insert_#t~mem13#1.offset, dll_circular_insert_#t~mem14#1.base, dll_circular_insert_#t~mem14#1.offset, dll_circular_insert_#t~mem15#1.base, dll_circular_insert_#t~mem15#1.offset, dll_circular_insert_#t~mem16#1.base, dll_circular_insert_#t~mem16#1.offset, dll_circular_insert_#t~mem17#1.base, dll_circular_insert_#t~mem17#1.offset, dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, dll_circular_insert_~data#1, dll_circular_insert_~index#1, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset;dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset := dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset;dll_circular_insert_~data#1 := dll_circular_insert_#in~data#1;dll_circular_insert_~index#1 := dll_circular_insert_#in~index#1; {41#true} is VALID [2022-02-20 16:54:16,387 INFO L272 TraceCheckUtils]: 12: Hoare triple {41#true} call dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset := node_create(dll_circular_insert_~data#1); {41#true} is VALID [2022-02-20 16:54:16,388 INFO L290 TraceCheckUtils]: 13: Hoare triple {41#true} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12bv32);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {41#true} is VALID [2022-02-20 16:54:16,388 INFO L290 TraceCheckUtils]: 14: Hoare triple {41#true} assume !(0bv32 == ~temp~0#1.base && 0bv32 == ~temp~0#1.offset); {41#true} is VALID [2022-02-20 16:54:16,388 INFO L290 TraceCheckUtils]: 15: Hoare triple {41#true} call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~temp~0#1.offset, 4bv32);call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~bvadd32(4bv32, ~temp~0#1.offset), 4bv32);call write~intINTTYPE4(~data#1, ~temp~0#1.base, ~bvadd32(8bv32, ~temp~0#1.offset), 4bv32);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {41#true} is VALID [2022-02-20 16:54:16,388 INFO L290 TraceCheckUtils]: 16: Hoare triple {41#true} assume true; {41#true} is VALID [2022-02-20 16:54:16,388 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {41#true} {41#true} #123#return; {41#true} is VALID [2022-02-20 16:54:16,389 INFO L290 TraceCheckUtils]: 18: Hoare triple {41#true} dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset := dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset := 0bv32, 0bv32;call dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset := read~$Pointer$(dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, 4bv32);dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset := dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset;havoc dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset; {41#true} is VALID [2022-02-20 16:54:16,389 INFO L290 TraceCheckUtils]: 19: Hoare triple {41#true} assume !~bvsgt32(dll_circular_insert_~index#1, 0bv32); {41#true} is VALID [2022-02-20 16:54:16,389 INFO L290 TraceCheckUtils]: 20: Hoare triple {41#true} assume dll_circular_insert_~snd_to_last~0#1.base != 0bv32 || dll_circular_insert_~snd_to_last~0#1.offset != 0bv32;call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~new_node~0#1.base, ~bvadd32(4bv32, dll_circular_insert_~new_node~0#1.offset), 4bv32);call write~$Pointer$(dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~last~1#1.base, ~bvadd32(4bv32, dll_circular_insert_~last~1#1.offset), 4bv32); {41#true} is VALID [2022-02-20 16:54:16,389 INFO L290 TraceCheckUtils]: 21: Hoare triple {41#true} assume { :end_inline_dll_circular_insert } true;call main_#t~mem19#1.base, main_#t~mem19#1.offset := read~$Pointer$(main_~#s~0#1.base, main_~#s~0#1.offset, 4bv32);main_~ptr~0#1.base, main_~ptr~0#1.offset := main_#t~mem19#1.base, main_#t~mem19#1.offset;havoc main_#t~mem19#1.base, main_#t~mem19#1.offset;main_~count~0#1 := 0bv32; {41#true} is VALID [2022-02-20 16:54:16,390 INFO L290 TraceCheckUtils]: 22: Hoare triple {41#true} assume !true; {42#false} is VALID [2022-02-20 16:54:16,391 INFO L290 TraceCheckUtils]: 23: Hoare triple {42#false} assume main_~count~0#1 != ~bvadd32(1bv32, main_~len~0#1); {42#false} is VALID [2022-02-20 16:54:16,391 INFO L290 TraceCheckUtils]: 24: Hoare triple {42#false} assume !false; {42#false} is VALID [2022-02-20 16:54:16,392 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-02-20 16:54:16,392 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:54:16,393 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:54:16,393 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1633443156] [2022-02-20 16:54:16,393 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1633443156] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:54:16,394 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:54:16,394 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2022-02-20 16:54:16,396 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [443254061] [2022-02-20 16:54:16,397 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:54:16,400 INFO L78 Accepts]: Start accepts. Automaton has has 2 states, 2 states have (on average 8.5) internal successors, (17), 2 states have internal predecessors, (17), 1 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) Word has length 25 [2022-02-20 16:54:16,402 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:54:16,404 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 2 states, 2 states have (on average 8.5) internal successors, (17), 2 states have internal predecessors, (17), 1 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 16:54:16,442 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 21 edges. 21 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:16,443 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 2 states [2022-02-20 16:54:16,443 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:54:16,462 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2022-02-20 16:54:16,463 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2022-02-20 16:54:16,465 INFO L87 Difference]: Start difference. First operand has 38 states, 32 states have (on average 1.5) internal successors, (48), 33 states have internal predecessors, (48), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand has 2 states, 2 states have (on average 8.5) internal successors, (17), 2 states have internal predecessors, (17), 1 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 16:54:16,698 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:16,699 INFO L93 Difference]: Finished difference Result 67 states and 94 transitions. [2022-02-20 16:54:16,699 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2022-02-20 16:54:16,699 INFO L78 Accepts]: Start accepts. Automaton has has 2 states, 2 states have (on average 8.5) internal successors, (17), 2 states have internal predecessors, (17), 1 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) Word has length 25 [2022-02-20 16:54:16,699 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:54:16,700 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2 states, 2 states have (on average 8.5) internal successors, (17), 2 states have internal predecessors, (17), 1 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 16:54:16,705 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 94 transitions. [2022-02-20 16:54:16,706 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2 states, 2 states have (on average 8.5) internal successors, (17), 2 states have internal predecessors, (17), 1 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 16:54:16,708 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 94 transitions. [2022-02-20 16:54:16,708 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 94 transitions. [2022-02-20 16:54:16,816 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 94 edges. 94 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:16,821 INFO L225 Difference]: With dead ends: 67 [2022-02-20 16:54:16,821 INFO L226 Difference]: Without dead ends: 30 [2022-02-20 16:54:16,823 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 24 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2022-02-20 16:54:16,825 INFO L933 BasicCegarLoop]: 49 mSDtfsCounter, 0 mSDsluCounter, 0 mSDsCounter, 0 mSdLazyCounter, 0 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 49 SdHoareTripleChecker+Invalid, 0 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 0 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:54:16,826 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 49 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 0 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:54:16,835 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 30 states. [2022-02-20 16:54:16,842 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 30 to 30. [2022-02-20 16:54:16,843 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:54:16,843 INFO L82 GeneralOperation]: Start isEquivalent. First operand 30 states. Second operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:16,844 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:16,844 INFO L87 Difference]: Start difference. First operand 30 states. Second operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:16,847 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:16,847 INFO L93 Difference]: Finished difference Result 30 states and 38 transitions. [2022-02-20 16:54:16,847 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 38 transitions. [2022-02-20 16:54:16,847 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:16,847 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:16,848 INFO L74 IsIncluded]: Start isIncluded. First operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 30 states. [2022-02-20 16:54:16,848 INFO L87 Difference]: Start difference. First operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 30 states. [2022-02-20 16:54:16,850 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:16,850 INFO L93 Difference]: Finished difference Result 30 states and 38 transitions. [2022-02-20 16:54:16,850 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 38 transitions. [2022-02-20 16:54:16,851 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:16,851 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:16,851 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:54:16,851 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:54:16,851 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 30 states, 25 states have (on average 1.28) internal successors, (32), 25 states have internal predecessors, (32), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:16,853 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 38 transitions. [2022-02-20 16:54:16,854 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 38 transitions. Word has length 25 [2022-02-20 16:54:16,854 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:54:16,854 INFO L470 AbstractCegarLoop]: Abstraction has 30 states and 38 transitions. [2022-02-20 16:54:16,854 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 2 states, 2 states have (on average 8.5) internal successors, (17), 2 states have internal predecessors, (17), 1 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 16:54:16,854 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 38 transitions. [2022-02-20 16:54:16,855 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 26 [2022-02-20 16:54:16,855 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:54:16,855 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:54:16,869 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (2)] Forceful destruction successful, exit code 0 [2022-02-20 16:54:17,069 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:54:17,070 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:54:17,070 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:54:17,070 INFO L85 PathProgramCache]: Analyzing trace with hash 1104710801, now seen corresponding path program 1 times [2022-02-20 16:54:17,071 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:54:17,071 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1255020934] [2022-02-20 16:54:17,071 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:54:17,071 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:54:17,071 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:54:17,072 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:54:17,074 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (3)] Waiting until timeout for monitored process [2022-02-20 16:54:17,176 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:17,182 INFO L263 TraceCheckSpWp]: Trace formula consists of 214 conjuncts, 4 conjunts are in the unsatisfiable core [2022-02-20 16:54:17,196 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:17,197 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:54:17,323 INFO L290 TraceCheckUtils]: 0: Hoare triple {304#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(21bv32, 2bv32); {304#true} is VALID [2022-02-20 16:54:17,324 INFO L290 TraceCheckUtils]: 1: Hoare triple {304#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret18#1.base, main_#t~ret18#1.offset, main_#t~mem19#1.base, main_#t~mem19#1.offset, main_#t~mem21#1, main_#t~mem22#1.base, main_#t~mem22#1.offset, main_#t~post23#1, main_#t~mem20#1.base, main_#t~mem20#1.offset, main_#t~mem24#1.base, main_#t~mem24#1.offset, main_~len~0#1, main_~data~0#1, main_~#s~0#1.base, main_~#s~0#1.offset, main_~ptr~0#1.base, main_~ptr~0#1.offset, main_~count~0#1;main_~len~0#1 := 2bv32;main_~data~0#1 := 1bv32;call main_~#s~0#1.base, main_~#s~0#1.offset := #Ultimate.allocOnStack(4bv32);assume { :begin_inline_dll_circular_create } true;dll_circular_create_#in~len#1, dll_circular_create_#in~data#1 := main_~len~0#1, main_~data~0#1;havoc dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset, dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset, dll_circular_create_#t~post6#1, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~len#1, dll_circular_create_~data#1, dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset;dll_circular_create_~len#1 := dll_circular_create_#in~len#1;dll_circular_create_~data#1 := dll_circular_create_#in~data#1; {312#(= |ULTIMATE.start_dll_circular_create_~len#1| (_ bv2 32))} is VALID [2022-02-20 16:54:17,324 INFO L272 TraceCheckUtils]: 2: Hoare triple {312#(= |ULTIMATE.start_dll_circular_create_~len#1| (_ bv2 32))} call dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset := node_create(dll_circular_create_~data#1); {304#true} is VALID [2022-02-20 16:54:17,324 INFO L290 TraceCheckUtils]: 3: Hoare triple {304#true} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12bv32);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {304#true} is VALID [2022-02-20 16:54:17,324 INFO L290 TraceCheckUtils]: 4: Hoare triple {304#true} assume !(0bv32 == ~temp~0#1.base && 0bv32 == ~temp~0#1.offset); {304#true} is VALID [2022-02-20 16:54:17,324 INFO L290 TraceCheckUtils]: 5: Hoare triple {304#true} call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~temp~0#1.offset, 4bv32);call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~bvadd32(4bv32, ~temp~0#1.offset), 4bv32);call write~intINTTYPE4(~data#1, ~temp~0#1.base, ~bvadd32(8bv32, ~temp~0#1.offset), 4bv32);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {304#true} is VALID [2022-02-20 16:54:17,325 INFO L290 TraceCheckUtils]: 6: Hoare triple {304#true} assume true; {304#true} is VALID [2022-02-20 16:54:17,325 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {304#true} {312#(= |ULTIMATE.start_dll_circular_create_~len#1| (_ bv2 32))} #119#return; {312#(= |ULTIMATE.start_dll_circular_create_~len#1| (_ bv2 32))} is VALID [2022-02-20 16:54:17,326 INFO L290 TraceCheckUtils]: 8: Hoare triple {312#(= |ULTIMATE.start_dll_circular_create_~len#1| (_ bv2 32))} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {312#(= |ULTIMATE.start_dll_circular_create_~len#1| (_ bv2 32))} is VALID [2022-02-20 16:54:17,326 INFO L290 TraceCheckUtils]: 9: Hoare triple {312#(= |ULTIMATE.start_dll_circular_create_~len#1| (_ bv2 32))} assume !~bvsgt32(dll_circular_create_~len#1, 1bv32); {305#false} is VALID [2022-02-20 16:54:17,326 INFO L290 TraceCheckUtils]: 10: Hoare triple {305#false} call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, dll_circular_create_~head~0#1.base, ~bvadd32(4bv32, dll_circular_create_~head~0#1.offset), 4bv32);dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {305#false} is VALID [2022-02-20 16:54:17,327 INFO L290 TraceCheckUtils]: 11: Hoare triple {305#false} main_#t~ret18#1.base, main_#t~ret18#1.offset := dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;assume { :end_inline_dll_circular_create } true;call write~init~$Pointer$(main_#t~ret18#1.base, main_#t~ret18#1.offset, main_~#s~0#1.base, main_~#s~0#1.offset, 4bv32);havoc main_#t~ret18#1.base, main_#t~ret18#1.offset;assume { :begin_inline_dll_circular_insert } true;dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset, dll_circular_insert_#in~data#1, dll_circular_insert_#in~index#1 := main_~#s~0#1.base, main_~#s~0#1.offset, main_~data~0#1, ~bvsdiv32(main_~len~0#1, 2bv32);havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset, dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset, dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset, dll_circular_insert_#t~post12#1, dll_circular_insert_#t~mem13#1.base, dll_circular_insert_#t~mem13#1.offset, dll_circular_insert_#t~mem14#1.base, dll_circular_insert_#t~mem14#1.offset, dll_circular_insert_#t~mem15#1.base, dll_circular_insert_#t~mem15#1.offset, dll_circular_insert_#t~mem16#1.base, dll_circular_insert_#t~mem16#1.offset, dll_circular_insert_#t~mem17#1.base, dll_circular_insert_#t~mem17#1.offset, dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, dll_circular_insert_~data#1, dll_circular_insert_~index#1, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset;dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset := dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset;dll_circular_insert_~data#1 := dll_circular_insert_#in~data#1;dll_circular_insert_~index#1 := dll_circular_insert_#in~index#1; {305#false} is VALID [2022-02-20 16:54:17,327 INFO L272 TraceCheckUtils]: 12: Hoare triple {305#false} call dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset := node_create(dll_circular_insert_~data#1); {305#false} is VALID [2022-02-20 16:54:17,327 INFO L290 TraceCheckUtils]: 13: Hoare triple {305#false} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12bv32);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {305#false} is VALID [2022-02-20 16:54:17,327 INFO L290 TraceCheckUtils]: 14: Hoare triple {305#false} assume !(0bv32 == ~temp~0#1.base && 0bv32 == ~temp~0#1.offset); {305#false} is VALID [2022-02-20 16:54:17,327 INFO L290 TraceCheckUtils]: 15: Hoare triple {305#false} call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~temp~0#1.offset, 4bv32);call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~bvadd32(4bv32, ~temp~0#1.offset), 4bv32);call write~intINTTYPE4(~data#1, ~temp~0#1.base, ~bvadd32(8bv32, ~temp~0#1.offset), 4bv32);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {305#false} is VALID [2022-02-20 16:54:17,327 INFO L290 TraceCheckUtils]: 16: Hoare triple {305#false} assume true; {305#false} is VALID [2022-02-20 16:54:17,328 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {305#false} {305#false} #123#return; {305#false} is VALID [2022-02-20 16:54:17,328 INFO L290 TraceCheckUtils]: 18: Hoare triple {305#false} dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset := dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset := 0bv32, 0bv32;call dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset := read~$Pointer$(dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, 4bv32);dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset := dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset;havoc dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset; {305#false} is VALID [2022-02-20 16:54:17,328 INFO L290 TraceCheckUtils]: 19: Hoare triple {305#false} assume !~bvsgt32(dll_circular_insert_~index#1, 0bv32); {305#false} is VALID [2022-02-20 16:54:17,328 INFO L290 TraceCheckUtils]: 20: Hoare triple {305#false} assume dll_circular_insert_~snd_to_last~0#1.base != 0bv32 || dll_circular_insert_~snd_to_last~0#1.offset != 0bv32;call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~new_node~0#1.base, ~bvadd32(4bv32, dll_circular_insert_~new_node~0#1.offset), 4bv32);call write~$Pointer$(dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~last~1#1.base, ~bvadd32(4bv32, dll_circular_insert_~last~1#1.offset), 4bv32); {305#false} is VALID [2022-02-20 16:54:17,328 INFO L290 TraceCheckUtils]: 21: Hoare triple {305#false} assume { :end_inline_dll_circular_insert } true;call main_#t~mem19#1.base, main_#t~mem19#1.offset := read~$Pointer$(main_~#s~0#1.base, main_~#s~0#1.offset, 4bv32);main_~ptr~0#1.base, main_~ptr~0#1.offset := main_#t~mem19#1.base, main_#t~mem19#1.offset;havoc main_#t~mem19#1.base, main_#t~mem19#1.offset;main_~count~0#1 := 0bv32; {305#false} is VALID [2022-02-20 16:54:17,329 INFO L290 TraceCheckUtils]: 22: Hoare triple {305#false} call main_#t~mem21#1 := read~intINTTYPE4(main_~ptr~0#1.base, ~bvadd32(8bv32, main_~ptr~0#1.offset), 4bv32); {305#false} is VALID [2022-02-20 16:54:17,329 INFO L290 TraceCheckUtils]: 23: Hoare triple {305#false} assume main_~data~0#1 != main_#t~mem21#1;havoc main_#t~mem21#1; {305#false} is VALID [2022-02-20 16:54:17,329 INFO L290 TraceCheckUtils]: 24: Hoare triple {305#false} assume !false; {305#false} is VALID [2022-02-20 16:54:17,329 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 5 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 16:54:17,329 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:54:17,330 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:54:17,330 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1255020934] [2022-02-20 16:54:17,330 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1255020934] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:54:17,330 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:54:17,330 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-02-20 16:54:17,330 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [400864551] [2022-02-20 16:54:17,331 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:54:17,331 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 7.0) internal successors, (21), 3 states have internal predecessors, (21), 2 states have call successors, (2), 2 states have call predecessors, (2), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 25 [2022-02-20 16:54:17,332 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:54:17,332 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 3 states, 3 states have (on average 7.0) internal successors, (21), 3 states have internal predecessors, (21), 2 states have call successors, (2), 2 states have call predecessors, (2), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:17,365 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 25 edges. 25 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:17,366 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-02-20 16:54:17,366 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:54:17,366 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-02-20 16:54:17,366 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-02-20 16:54:17,367 INFO L87 Difference]: Start difference. First operand 30 states and 38 transitions. Second operand has 3 states, 3 states have (on average 7.0) internal successors, (21), 3 states have internal predecessors, (21), 2 states have call successors, (2), 2 states have call predecessors, (2), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:17,759 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:17,759 INFO L93 Difference]: Finished difference Result 56 states and 71 transitions. [2022-02-20 16:54:17,759 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-02-20 16:54:17,760 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 7.0) internal successors, (21), 3 states have internal predecessors, (21), 2 states have call successors, (2), 2 states have call predecessors, (2), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 25 [2022-02-20 16:54:17,760 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:54:17,760 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 7.0) internal successors, (21), 3 states have internal predecessors, (21), 2 states have call successors, (2), 2 states have call predecessors, (2), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:17,762 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 71 transitions. [2022-02-20 16:54:17,762 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 7.0) internal successors, (21), 3 states have internal predecessors, (21), 2 states have call successors, (2), 2 states have call predecessors, (2), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:17,763 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 71 transitions. [2022-02-20 16:54:17,763 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 71 transitions. [2022-02-20 16:54:17,858 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 71 edges. 71 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:17,859 INFO L225 Difference]: With dead ends: 56 [2022-02-20 16:54:17,859 INFO L226 Difference]: Without dead ends: 35 [2022-02-20 16:54:17,860 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 23 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-02-20 16:54:17,860 INFO L933 BasicCegarLoop]: 37 mSDtfsCounter, 4 mSDsluCounter, 32 mSDsCounter, 0 mSdLazyCounter, 5 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 5 SdHoareTripleChecker+Valid, 69 SdHoareTripleChecker+Invalid, 5 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 5 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:54:17,861 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [5 Valid, 69 Invalid, 5 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 5 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:54:17,861 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2022-02-20 16:54:17,863 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 31. [2022-02-20 16:54:17,863 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:54:17,863 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:17,864 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:17,864 INFO L87 Difference]: Start difference. First operand 35 states. Second operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:17,866 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:17,866 INFO L93 Difference]: Finished difference Result 35 states and 45 transitions. [2022-02-20 16:54:17,866 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 45 transitions. [2022-02-20 16:54:17,866 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:17,866 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:17,866 INFO L74 IsIncluded]: Start isIncluded. First operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 35 states. [2022-02-20 16:54:17,868 INFO L87 Difference]: Start difference. First operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 35 states. [2022-02-20 16:54:17,872 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:17,873 INFO L93 Difference]: Finished difference Result 35 states and 45 transitions. [2022-02-20 16:54:17,873 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 45 transitions. [2022-02-20 16:54:17,877 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:17,878 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:17,878 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:54:17,878 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:54:17,878 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 31 states, 26 states have (on average 1.2692307692307692) internal successors, (33), 26 states have internal predecessors, (33), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:17,881 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 31 states to 31 states and 39 transitions. [2022-02-20 16:54:17,882 INFO L78 Accepts]: Start accepts. Automaton has 31 states and 39 transitions. Word has length 25 [2022-02-20 16:54:17,882 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:54:17,882 INFO L470 AbstractCegarLoop]: Abstraction has 31 states and 39 transitions. [2022-02-20 16:54:17,882 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 3 states, 3 states have (on average 7.0) internal successors, (21), 3 states have internal predecessors, (21), 2 states have call successors, (2), 2 states have call predecessors, (2), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:54:17,882 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 39 transitions. [2022-02-20 16:54:17,883 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2022-02-20 16:54:17,883 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:54:17,883 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:54:17,892 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (3)] Ended with exit code 0 [2022-02-20 16:54:18,083 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:54:18,084 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:54:18,084 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:54:18,084 INFO L85 PathProgramCache]: Analyzing trace with hash -313226979, now seen corresponding path program 1 times [2022-02-20 16:54:18,085 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:54:18,085 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1204214196] [2022-02-20 16:54:18,085 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:54:18,085 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:54:18,085 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:54:18,096 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:54:18,097 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (4)] Waiting until timeout for monitored process [2022-02-20 16:54:18,286 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:18,295 INFO L263 TraceCheckSpWp]: Trace formula consists of 284 conjuncts, 4 conjunts are in the unsatisfiable core [2022-02-20 16:54:18,312 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:18,315 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:54:18,428 INFO L290 TraceCheckUtils]: 0: Hoare triple {565#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(21bv32, 2bv32); {565#true} is VALID [2022-02-20 16:54:18,429 INFO L290 TraceCheckUtils]: 1: Hoare triple {565#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret18#1.base, main_#t~ret18#1.offset, main_#t~mem19#1.base, main_#t~mem19#1.offset, main_#t~mem21#1, main_#t~mem22#1.base, main_#t~mem22#1.offset, main_#t~post23#1, main_#t~mem20#1.base, main_#t~mem20#1.offset, main_#t~mem24#1.base, main_#t~mem24#1.offset, main_~len~0#1, main_~data~0#1, main_~#s~0#1.base, main_~#s~0#1.offset, main_~ptr~0#1.base, main_~ptr~0#1.offset, main_~count~0#1;main_~len~0#1 := 2bv32;main_~data~0#1 := 1bv32;call main_~#s~0#1.base, main_~#s~0#1.offset := #Ultimate.allocOnStack(4bv32);assume { :begin_inline_dll_circular_create } true;dll_circular_create_#in~len#1, dll_circular_create_#in~data#1 := main_~len~0#1, main_~data~0#1;havoc dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset, dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset, dll_circular_create_#t~post6#1, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~len#1, dll_circular_create_~data#1, dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset;dll_circular_create_~len#1 := dll_circular_create_#in~len#1;dll_circular_create_~data#1 := dll_circular_create_#in~data#1; {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} is VALID [2022-02-20 16:54:18,429 INFO L272 TraceCheckUtils]: 2: Hoare triple {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} call dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset := node_create(dll_circular_create_~data#1); {565#true} is VALID [2022-02-20 16:54:18,429 INFO L290 TraceCheckUtils]: 3: Hoare triple {565#true} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12bv32);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {565#true} is VALID [2022-02-20 16:54:18,429 INFO L290 TraceCheckUtils]: 4: Hoare triple {565#true} assume !(0bv32 == ~temp~0#1.base && 0bv32 == ~temp~0#1.offset); {565#true} is VALID [2022-02-20 16:54:18,429 INFO L290 TraceCheckUtils]: 5: Hoare triple {565#true} call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~temp~0#1.offset, 4bv32);call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~bvadd32(4bv32, ~temp~0#1.offset), 4bv32);call write~intINTTYPE4(~data#1, ~temp~0#1.base, ~bvadd32(8bv32, ~temp~0#1.offset), 4bv32);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {565#true} is VALID [2022-02-20 16:54:18,429 INFO L290 TraceCheckUtils]: 6: Hoare triple {565#true} assume true; {565#true} is VALID [2022-02-20 16:54:18,430 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {565#true} {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} #119#return; {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} is VALID [2022-02-20 16:54:18,431 INFO L290 TraceCheckUtils]: 8: Hoare triple {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} is VALID [2022-02-20 16:54:18,432 INFO L290 TraceCheckUtils]: 9: Hoare triple {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} assume !!~bvsgt32(dll_circular_create_~len#1, 1bv32); {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} is VALID [2022-02-20 16:54:18,433 INFO L272 TraceCheckUtils]: 10: Hoare triple {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} call dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset := node_create(dll_circular_create_~data#1); {565#true} is VALID [2022-02-20 16:54:18,433 INFO L290 TraceCheckUtils]: 11: Hoare triple {565#true} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12bv32);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {565#true} is VALID [2022-02-20 16:54:18,433 INFO L290 TraceCheckUtils]: 12: Hoare triple {565#true} assume !(0bv32 == ~temp~0#1.base && 0bv32 == ~temp~0#1.offset); {565#true} is VALID [2022-02-20 16:54:18,433 INFO L290 TraceCheckUtils]: 13: Hoare triple {565#true} call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~temp~0#1.offset, 4bv32);call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~bvadd32(4bv32, ~temp~0#1.offset), 4bv32);call write~intINTTYPE4(~data#1, ~temp~0#1.base, ~bvadd32(8bv32, ~temp~0#1.offset), 4bv32);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {565#true} is VALID [2022-02-20 16:54:18,433 INFO L290 TraceCheckUtils]: 14: Hoare triple {565#true} assume true; {565#true} is VALID [2022-02-20 16:54:18,434 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {565#true} {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} #121#return; {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} is VALID [2022-02-20 16:54:18,434 INFO L290 TraceCheckUtils]: 16: Hoare triple {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset := dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset;havoc dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset;call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, 4bv32); {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} is VALID [2022-02-20 16:54:18,435 INFO L290 TraceCheckUtils]: 17: Hoare triple {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} assume dll_circular_create_~head~0#1.base != 0bv32 || dll_circular_create_~head~0#1.offset != 0bv32;call write~$Pointer$(dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~head~0#1.base, ~bvadd32(4bv32, dll_circular_create_~head~0#1.offset), 4bv32); {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} is VALID [2022-02-20 16:54:18,435 INFO L290 TraceCheckUtils]: 18: Hoare triple {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset;dll_circular_create_#t~post6#1 := dll_circular_create_~len#1;dll_circular_create_~len#1 := ~bvsub32(dll_circular_create_#t~post6#1, 1bv32);havoc dll_circular_create_#t~post6#1; {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} is VALID [2022-02-20 16:54:18,435 INFO L290 TraceCheckUtils]: 19: Hoare triple {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} assume !~bvsgt32(dll_circular_create_~len#1, 1bv32); {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} is VALID [2022-02-20 16:54:18,436 INFO L290 TraceCheckUtils]: 20: Hoare triple {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, dll_circular_create_~head~0#1.base, ~bvadd32(4bv32, dll_circular_create_~head~0#1.offset), 4bv32);dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} is VALID [2022-02-20 16:54:18,436 INFO L290 TraceCheckUtils]: 21: Hoare triple {573#(= (_ bv2 32) |ULTIMATE.start_main_~len~0#1|)} main_#t~ret18#1.base, main_#t~ret18#1.offset := dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;assume { :end_inline_dll_circular_create } true;call write~init~$Pointer$(main_#t~ret18#1.base, main_#t~ret18#1.offset, main_~#s~0#1.base, main_~#s~0#1.offset, 4bv32);havoc main_#t~ret18#1.base, main_#t~ret18#1.offset;assume { :begin_inline_dll_circular_insert } true;dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset, dll_circular_insert_#in~data#1, dll_circular_insert_#in~index#1 := main_~#s~0#1.base, main_~#s~0#1.offset, main_~data~0#1, ~bvsdiv32(main_~len~0#1, 2bv32);havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset, dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset, dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset, dll_circular_insert_#t~post12#1, dll_circular_insert_#t~mem13#1.base, dll_circular_insert_#t~mem13#1.offset, dll_circular_insert_#t~mem14#1.base, dll_circular_insert_#t~mem14#1.offset, dll_circular_insert_#t~mem15#1.base, dll_circular_insert_#t~mem15#1.offset, dll_circular_insert_#t~mem16#1.base, dll_circular_insert_#t~mem16#1.offset, dll_circular_insert_#t~mem17#1.base, dll_circular_insert_#t~mem17#1.offset, dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, dll_circular_insert_~data#1, dll_circular_insert_~index#1, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset;dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset := dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset;dll_circular_insert_~data#1 := dll_circular_insert_#in~data#1;dll_circular_insert_~index#1 := dll_circular_insert_#in~index#1; {634#(= (_ bv1 32) |ULTIMATE.start_dll_circular_insert_~index#1|)} is VALID [2022-02-20 16:54:18,436 INFO L272 TraceCheckUtils]: 22: Hoare triple {634#(= (_ bv1 32) |ULTIMATE.start_dll_circular_insert_~index#1|)} call dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset := node_create(dll_circular_insert_~data#1); {565#true} is VALID [2022-02-20 16:54:18,437 INFO L290 TraceCheckUtils]: 23: Hoare triple {565#true} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12bv32);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {565#true} is VALID [2022-02-20 16:54:18,437 INFO L290 TraceCheckUtils]: 24: Hoare triple {565#true} assume !(0bv32 == ~temp~0#1.base && 0bv32 == ~temp~0#1.offset); {565#true} is VALID [2022-02-20 16:54:18,437 INFO L290 TraceCheckUtils]: 25: Hoare triple {565#true} call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~temp~0#1.offset, 4bv32);call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~bvadd32(4bv32, ~temp~0#1.offset), 4bv32);call write~intINTTYPE4(~data#1, ~temp~0#1.base, ~bvadd32(8bv32, ~temp~0#1.offset), 4bv32);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {565#true} is VALID [2022-02-20 16:54:18,437 INFO L290 TraceCheckUtils]: 26: Hoare triple {565#true} assume true; {565#true} is VALID [2022-02-20 16:54:18,440 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {565#true} {634#(= (_ bv1 32) |ULTIMATE.start_dll_circular_insert_~index#1|)} #123#return; {634#(= (_ bv1 32) |ULTIMATE.start_dll_circular_insert_~index#1|)} is VALID [2022-02-20 16:54:18,441 INFO L290 TraceCheckUtils]: 28: Hoare triple {634#(= (_ bv1 32) |ULTIMATE.start_dll_circular_insert_~index#1|)} dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset := dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset := 0bv32, 0bv32;call dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset := read~$Pointer$(dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, 4bv32);dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset := dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset;havoc dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset; {634#(= (_ bv1 32) |ULTIMATE.start_dll_circular_insert_~index#1|)} is VALID [2022-02-20 16:54:18,441 INFO L290 TraceCheckUtils]: 29: Hoare triple {634#(= (_ bv1 32) |ULTIMATE.start_dll_circular_insert_~index#1|)} assume !~bvsgt32(dll_circular_insert_~index#1, 0bv32); {566#false} is VALID [2022-02-20 16:54:18,442 INFO L290 TraceCheckUtils]: 30: Hoare triple {566#false} assume dll_circular_insert_~snd_to_last~0#1.base != 0bv32 || dll_circular_insert_~snd_to_last~0#1.offset != 0bv32;call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~new_node~0#1.base, ~bvadd32(4bv32, dll_circular_insert_~new_node~0#1.offset), 4bv32);call write~$Pointer$(dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~last~1#1.base, ~bvadd32(4bv32, dll_circular_insert_~last~1#1.offset), 4bv32); {566#false} is VALID [2022-02-20 16:54:18,442 INFO L290 TraceCheckUtils]: 31: Hoare triple {566#false} assume { :end_inline_dll_circular_insert } true;call main_#t~mem19#1.base, main_#t~mem19#1.offset := read~$Pointer$(main_~#s~0#1.base, main_~#s~0#1.offset, 4bv32);main_~ptr~0#1.base, main_~ptr~0#1.offset := main_#t~mem19#1.base, main_#t~mem19#1.offset;havoc main_#t~mem19#1.base, main_#t~mem19#1.offset;main_~count~0#1 := 0bv32; {566#false} is VALID [2022-02-20 16:54:18,442 INFO L290 TraceCheckUtils]: 32: Hoare triple {566#false} call main_#t~mem21#1 := read~intINTTYPE4(main_~ptr~0#1.base, ~bvadd32(8bv32, main_~ptr~0#1.offset), 4bv32); {566#false} is VALID [2022-02-20 16:54:18,442 INFO L290 TraceCheckUtils]: 33: Hoare triple {566#false} assume main_~data~0#1 != main_#t~mem21#1;havoc main_#t~mem21#1; {566#false} is VALID [2022-02-20 16:54:18,442 INFO L290 TraceCheckUtils]: 34: Hoare triple {566#false} assume !false; {566#false} is VALID [2022-02-20 16:54:18,442 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-02-20 16:54:18,443 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:54:18,443 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:54:18,443 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1204214196] [2022-02-20 16:54:18,443 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1204214196] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:54:18,443 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:54:18,443 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:54:18,443 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1995450922] [2022-02-20 16:54:18,444 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:54:18,444 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 5.25) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 35 [2022-02-20 16:54:18,444 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:54:18,444 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 5.25) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:54:18,484 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:18,484 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:54:18,484 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:54:18,485 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:54:18,485 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:54:18,485 INFO L87 Difference]: Start difference. First operand 31 states and 39 transitions. Second operand has 4 states, 4 states have (on average 5.25) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:54:18,907 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:18,908 INFO L93 Difference]: Finished difference Result 43 states and 55 transitions. [2022-02-20 16:54:18,908 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:54:18,908 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 5.25) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 35 [2022-02-20 16:54:18,908 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:54:18,908 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 5.25) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:54:18,910 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 54 transitions. [2022-02-20 16:54:18,910 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 5.25) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:54:18,911 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 54 transitions. [2022-02-20 16:54:18,911 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 54 transitions. [2022-02-20 16:54:18,982 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:54:18,983 INFO L225 Difference]: With dead ends: 43 [2022-02-20 16:54:18,983 INFO L226 Difference]: Without dead ends: 32 [2022-02-20 16:54:18,983 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 35 GetRequests, 32 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2022-02-20 16:54:18,984 INFO L933 BasicCegarLoop]: 35 mSDtfsCounter, 19 mSDsluCounter, 40 mSDsCounter, 0 mSdLazyCounter, 6 mSolverCounterSat, 2 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 19 SdHoareTripleChecker+Valid, 75 SdHoareTripleChecker+Invalid, 8 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 2 IncrementalHoareTripleChecker+Valid, 6 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:54:18,984 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [19 Valid, 75 Invalid, 8 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [2 Valid, 6 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:54:18,984 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 32 states. [2022-02-20 16:54:18,988 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 32 to 32. [2022-02-20 16:54:18,988 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:54:18,988 INFO L82 GeneralOperation]: Start isEquivalent. First operand 32 states. Second operand has 32 states, 27 states have (on average 1.2592592592592593) internal successors, (34), 27 states have internal predecessors, (34), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:18,988 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand has 32 states, 27 states have (on average 1.2592592592592593) internal successors, (34), 27 states have internal predecessors, (34), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:18,989 INFO L87 Difference]: Start difference. First operand 32 states. Second operand has 32 states, 27 states have (on average 1.2592592592592593) internal successors, (34), 27 states have internal predecessors, (34), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:18,990 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:18,990 INFO L93 Difference]: Finished difference Result 32 states and 40 transitions. [2022-02-20 16:54:18,990 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 40 transitions. [2022-02-20 16:54:18,991 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:18,991 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:18,991 INFO L74 IsIncluded]: Start isIncluded. First operand has 32 states, 27 states have (on average 1.2592592592592593) internal successors, (34), 27 states have internal predecessors, (34), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 32 states. [2022-02-20 16:54:18,991 INFO L87 Difference]: Start difference. First operand has 32 states, 27 states have (on average 1.2592592592592593) internal successors, (34), 27 states have internal predecessors, (34), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) Second operand 32 states. [2022-02-20 16:54:18,992 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:54:18,993 INFO L93 Difference]: Finished difference Result 32 states and 40 transitions. [2022-02-20 16:54:18,993 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 40 transitions. [2022-02-20 16:54:18,993 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:54:18,993 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:54:18,993 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:54:18,993 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:54:18,993 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 32 states, 27 states have (on average 1.2592592592592593) internal successors, (34), 27 states have internal predecessors, (34), 3 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 3 states have call predecessors, (3), 3 states have call successors, (3) [2022-02-20 16:54:18,994 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 40 transitions. [2022-02-20 16:54:18,995 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 40 transitions. Word has length 35 [2022-02-20 16:54:18,995 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:54:18,995 INFO L470 AbstractCegarLoop]: Abstraction has 32 states and 40 transitions. [2022-02-20 16:54:18,995 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 5.25) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:54:18,995 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 40 transitions. [2022-02-20 16:54:18,996 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2022-02-20 16:54:18,996 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:54:18,996 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:54:19,006 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (4)] Forceful destruction successful, exit code 0 [2022-02-20 16:54:19,206 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:54:19,206 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:54:19,207 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:54:19,207 INFO L85 PathProgramCache]: Analyzing trace with hash 415590512, now seen corresponding path program 1 times [2022-02-20 16:54:19,207 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:54:19,207 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1297435905] [2022-02-20 16:54:19,207 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:54:19,208 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:54:19,208 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:54:19,209 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:54:19,215 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (5)] Waiting until timeout for monitored process [2022-02-20 16:54:19,473 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:19,488 INFO L263 TraceCheckSpWp]: Trace formula consists of 290 conjuncts, 113 conjunts are in the unsatisfiable core [2022-02-20 16:54:19,518 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:19,521 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:54:19,569 INFO L390 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 [2022-02-20 16:54:19,607 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 5 treesize of output 3 [2022-02-20 16:54:19,755 INFO L356 Elim1Store]: treesize reduction 15, result has 46.4 percent of original size [2022-02-20 16:54:19,756 INFO L390 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 2 new quantified variables, introduced 2 case distinctions, treesize of input 17 treesize of output 24 [2022-02-20 16:54:19,969 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 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 13 treesize of output 9 [2022-02-20 16:54:20,071 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 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 11 treesize of output 7 [2022-02-20 16:54:20,206 INFO L356 Elim1Store]: treesize reduction 30, result has 45.5 percent of original size [2022-02-20 16:54:20,206 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 4 case distinctions, treesize of input 24 treesize of output 41 [2022-02-20 16:54:20,357 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2022-02-20 16:54:20,376 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 18 [2022-02-20 16:54:20,502 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 16 [2022-02-20 16:54:20,525 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 16 [2022-02-20 16:54:20,859 INFO L356 Elim1Store]: treesize reduction 48, result has 23.8 percent of original size [2022-02-20 16:54:20,859 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 2 new quantified variables, introduced 2 case distinctions, treesize of input 109 treesize of output 66 [2022-02-20 16:54:20,881 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 15 [2022-02-20 16:54:20,887 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:20,896 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 23 [2022-02-20 16:54:20,902 INFO L390 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 18 [2022-02-20 16:54:21,255 INFO L356 Elim1Store]: treesize reduction 29, result has 12.1 percent of original size [2022-02-20 16:54:21,256 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 5 new quantified variables, introduced 3 case distinctions, treesize of input 86 treesize of output 44 [2022-02-20 16:54:21,314 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 18 [2022-02-20 16:54:21,373 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 3 [2022-02-20 16:54:21,389 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 3 [2022-02-20 16:54:21,809 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:21,839 INFO L356 Elim1Store]: treesize reduction 52, result has 17.5 percent of original size [2022-02-20 16:54:21,840 INFO L390 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 5 new quantified variables, introduced 5 case distinctions, treesize of input 92 treesize of output 80 [2022-02-20 16:54:21,855 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:21,856 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2022-02-20 16:54:21,874 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:21,902 INFO L356 Elim1Store]: treesize reduction 12, result has 67.6 percent of original size [2022-02-20 16:54:21,903 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 4 new quantified variables, introduced 3 case distinctions, treesize of input 41 treesize of output 45 [2022-02-20 16:54:21,945 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 16 [2022-02-20 16:54:22,974 INFO L356 Elim1Store]: treesize reduction 104, result has 14.8 percent of original size [2022-02-20 16:54:22,975 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 4 select indices, 4 select index equivalence classes, 0 disjoint index pairs (out of 6 index pairs), introduced 7 new quantified variables, introduced 8 case distinctions, treesize of input 236 treesize of output 145 [2022-02-20 16:54:23,133 INFO L356 Elim1Store]: treesize reduction 74, result has 17.8 percent of original size [2022-02-20 16:54:23,134 INFO L390 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 5 new quantified variables, introduced 5 case distinctions, treesize of input 254 treesize of output 197 [2022-02-20 16:54:23,187 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 53 treesize of output 51 [2022-02-20 16:54:23,315 INFO L356 Elim1Store]: treesize reduction 213, result has 11.6 percent of original size [2022-02-20 16:54:23,315 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 4 new quantified variables, introduced 3 case distinctions, treesize of input 190 treesize of output 133 [2022-02-20 16:54:23,382 INFO L356 Elim1Store]: treesize reduction 47, result has 9.6 percent of original size [2022-02-20 16:54:23,382 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 3 select indices, 3 select index equivalence classes, 2 disjoint index pairs (out of 3 index pairs), introduced 4 new quantified variables, introduced 4 case distinctions, treesize of input 146 treesize of output 141 [2022-02-20 16:54:23,439 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 4 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 37 [2022-02-20 16:54:23,473 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 9 treesize of output 7 [2022-02-20 16:54:23,638 INFO L356 Elim1Store]: treesize reduction 4, result has 50.0 percent of original size [2022-02-20 16:54:23,638 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 3 new quantified variables, introduced 1 case distinctions, treesize of input 91 treesize of output 46 [2022-02-20 16:54:23,660 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-02-20 16:54:23,661 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 5 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 18 [2022-02-20 16:54:23,817 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 7 [2022-02-20 16:54:23,882 INFO L290 TraceCheckUtils]: 0: Hoare triple {838#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(21bv32, 2bv32); {838#true} is VALID [2022-02-20 16:54:23,883 INFO L290 TraceCheckUtils]: 1: Hoare triple {838#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret18#1.base, main_#t~ret18#1.offset, main_#t~mem19#1.base, main_#t~mem19#1.offset, main_#t~mem21#1, main_#t~mem22#1.base, main_#t~mem22#1.offset, main_#t~post23#1, main_#t~mem20#1.base, main_#t~mem20#1.offset, main_#t~mem24#1.base, main_#t~mem24#1.offset, main_~len~0#1, main_~data~0#1, main_~#s~0#1.base, main_~#s~0#1.offset, main_~ptr~0#1.base, main_~ptr~0#1.offset, main_~count~0#1;main_~len~0#1 := 2bv32;main_~data~0#1 := 1bv32;call main_~#s~0#1.base, main_~#s~0#1.offset := #Ultimate.allocOnStack(4bv32);assume { :begin_inline_dll_circular_create } true;dll_circular_create_#in~len#1, dll_circular_create_#in~data#1 := main_~len~0#1, main_~data~0#1;havoc dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset, dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset, dll_circular_create_#t~post6#1, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~len#1, dll_circular_create_~data#1, dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset;dll_circular_create_~len#1 := dll_circular_create_#in~len#1;dll_circular_create_~data#1 := dll_circular_create_#in~data#1; {846#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_dll_circular_create_~data#1|) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)))} is VALID [2022-02-20 16:54:23,884 INFO L272 TraceCheckUtils]: 2: Hoare triple {846#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_dll_circular_create_~data#1|) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)))} call dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset := node_create(dll_circular_create_~data#1); {850#(and (= |old(#valid)| |#valid|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} is VALID [2022-02-20 16:54:23,885 INFO L290 TraceCheckUtils]: 3: Hoare triple {850#(and (= |old(#valid)| |#valid|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12bv32);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {854#(and (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= (bvadd |#StackHeapBarrier| (_ bv1 32)) (_ bv0 32))) (= (store |old(#valid)| |node_create_~temp~0#1.base| (_ bv1 1)) |#valid|))} is VALID [2022-02-20 16:54:23,885 INFO L290 TraceCheckUtils]: 4: Hoare triple {854#(and (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= (bvadd |#StackHeapBarrier| (_ bv1 32)) (_ bv0 32))) (= (store |old(#valid)| |node_create_~temp~0#1.base| (_ bv1 1)) |#valid|))} assume !(0bv32 == ~temp~0#1.base && 0bv32 == ~temp~0#1.offset); {854#(and (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= (bvadd |#StackHeapBarrier| (_ bv1 32)) (_ bv0 32))) (= (store |old(#valid)| |node_create_~temp~0#1.base| (_ bv1 1)) |#valid|))} is VALID [2022-02-20 16:54:23,886 INFO L290 TraceCheckUtils]: 5: Hoare triple {854#(and (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (not (= (bvadd |#StackHeapBarrier| (_ bv1 32)) (_ bv0 32))) (= (store |old(#valid)| |node_create_~temp~0#1.base| (_ bv1 1)) |#valid|))} call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~temp~0#1.offset, 4bv32);call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~bvadd32(4bv32, ~temp~0#1.offset), 4bv32);call write~intINTTYPE4(~data#1, ~temp~0#1.base, ~bvadd32(8bv32, ~temp~0#1.offset), 4bv32);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {861#(and (= (store |old(#valid)| |node_create_#res#1.base| (_ bv1 1)) |#valid|) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (not (= (bvadd |#StackHeapBarrier| (_ bv1 32)) (_ bv0 32))))} is VALID [2022-02-20 16:54:23,886 INFO L290 TraceCheckUtils]: 6: Hoare triple {861#(and (= (store |old(#valid)| |node_create_#res#1.base| (_ bv1 1)) |#valid|) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (not (= (bvadd |#StackHeapBarrier| (_ bv1 32)) (_ bv0 32))))} assume true; {861#(and (= (store |old(#valid)| |node_create_#res#1.base| (_ bv1 1)) |#valid|) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (not (= (bvadd |#StackHeapBarrier| (_ bv1 32)) (_ bv0 32))))} is VALID [2022-02-20 16:54:23,888 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {861#(and (= (store |old(#valid)| |node_create_#res#1.base| (_ bv1 1)) |#valid|) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (not (= (bvadd |#StackHeapBarrier| (_ bv1 32)) (_ bv0 32))))} {846#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_dll_circular_create_~data#1|) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)))} #119#return; {868#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_#t~ret4#1.base|)) (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_dll_circular_create_~data#1|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_#t~ret4#1.base|) (_ bv1 1)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)))} is VALID [2022-02-20 16:54:23,889 INFO L290 TraceCheckUtils]: 8: Hoare triple {868#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_#t~ret4#1.base|)) (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_dll_circular_create_~data#1|) (= (select |#valid| |ULTIMATE.start_dll_circular_create_#t~ret4#1.base|) (_ bv1 1)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)))} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;havoc dll_circular_create_#t~ret4#1.base, dll_circular_create_#t~ret4#1.offset;dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {872#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_dll_circular_create_~data#1|) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)))} is VALID [2022-02-20 16:54:23,889 INFO L290 TraceCheckUtils]: 9: Hoare triple {872#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_dll_circular_create_~data#1|) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)))} assume !!~bvsgt32(dll_circular_create_~len#1, 1bv32); {872#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_dll_circular_create_~data#1|) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)))} is VALID [2022-02-20 16:54:23,891 INFO L272 TraceCheckUtils]: 10: Hoare triple {872#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_dll_circular_create_~data#1|) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)))} call dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset := node_create(dll_circular_create_~data#1); {850#(and (= |old(#valid)| |#valid|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} is VALID [2022-02-20 16:54:23,892 INFO L290 TraceCheckUtils]: 11: Hoare triple {850#(and (= |old(#valid)| |#valid|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12bv32);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {882#(and (= |node_create_~temp~0#1.offset| (_ bv0 32)) (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (= |node_create_#in~data#1| |node_create_~data#1|) (= (store |old(#valid)| |node_create_~temp~0#1.base| (_ bv1 1)) |#valid|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} is VALID [2022-02-20 16:54:23,892 INFO L290 TraceCheckUtils]: 12: Hoare triple {882#(and (= |node_create_~temp~0#1.offset| (_ bv0 32)) (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (= |node_create_#in~data#1| |node_create_~data#1|) (= (store |old(#valid)| |node_create_~temp~0#1.base| (_ bv1 1)) |#valid|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} assume !(0bv32 == ~temp~0#1.base && 0bv32 == ~temp~0#1.offset); {882#(and (= |node_create_~temp~0#1.offset| (_ bv0 32)) (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (= |node_create_#in~data#1| |node_create_~data#1|) (= (store |old(#valid)| |node_create_~temp~0#1.base| (_ bv1 1)) |#valid|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} is VALID [2022-02-20 16:54:23,894 INFO L290 TraceCheckUtils]: 13: Hoare triple {882#(and (= |node_create_~temp~0#1.offset| (_ bv0 32)) (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (= |node_create_#in~data#1| |node_create_~data#1|) (= (store |old(#valid)| |node_create_~temp~0#1.base| (_ bv1 1)) |#valid|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~temp~0#1.offset, 4bv32);call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~bvadd32(4bv32, ~temp~0#1.offset), 4bv32);call write~intINTTYPE4(~data#1, ~temp~0#1.base, ~bvadd32(8bv32, ~temp~0#1.offset), 4bv32);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {889#(and (= (select (select |#memory_int| |node_create_#res#1.base|) (_ bv8 32)) |node_create_#in~data#1|) (= |node_create_#res#1.offset| (_ bv0 32)) (= (store |old(#valid)| |node_create_#res#1.base| (_ bv1 1)) |#valid|) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} is VALID [2022-02-20 16:54:23,894 INFO L290 TraceCheckUtils]: 14: Hoare triple {889#(and (= (select (select |#memory_int| |node_create_#res#1.base|) (_ bv8 32)) |node_create_#in~data#1|) (= |node_create_#res#1.offset| (_ bv0 32)) (= (store |old(#valid)| |node_create_#res#1.base| (_ bv1 1)) |#valid|) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} assume true; {889#(and (= (select (select |#memory_int| |node_create_#res#1.base|) (_ bv8 32)) |node_create_#in~data#1|) (= |node_create_#res#1.offset| (_ bv0 32)) (= (store |old(#valid)| |node_create_#res#1.base| (_ bv1 1)) |#valid|) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} is VALID [2022-02-20 16:54:23,897 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {889#(and (= (select (select |#memory_int| |node_create_#res#1.base|) (_ bv8 32)) |node_create_#in~data#1|) (= |node_create_#res#1.offset| (_ bv0 32)) (= (store |old(#valid)| |node_create_#res#1.base| (_ bv1 1)) |#valid|) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} {872#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_dll_circular_create_~data#1|) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)))} #121#return; {896#(and (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.offset| (_ bv0 32)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|)) (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (_ bv0 1)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|) (_ bv1 1)) (not (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)))} is VALID [2022-02-20 16:54:23,905 INFO L290 TraceCheckUtils]: 16: Hoare triple {896#(and (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.offset| (_ bv0 32)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|)) (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (_ bv0 1)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_#t~ret5#1.base|) (_ bv1 1)) (not (= |ULTIMATE.start_dll_circular_create_#t~ret5#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)))} dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset := dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset;havoc dll_circular_create_#t~ret5#1.base, dll_circular_create_#t~ret5#1.offset;call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, 4bv32); {900#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= (_ bv0 32) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) (_ bv1 1)) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (_ bv0 1)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) (_ bv8 32))))} is VALID [2022-02-20 16:54:23,907 INFO L290 TraceCheckUtils]: 17: Hoare triple {900#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= (_ bv0 32) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) (_ bv1 1)) (not (= |ULTIMATE.start_dll_circular_create_~head~0#1.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (_ bv0 1)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) (_ bv8 32))))} assume dll_circular_create_~head~0#1.base != 0bv32 || dll_circular_create_~head~0#1.offset != 0bv32;call write~$Pointer$(dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset, dll_circular_create_~head~0#1.base, ~bvadd32(4bv32, dll_circular_create_~head~0#1.offset), 4bv32); {904#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= (_ bv0 32) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) (_ bv1 1)) (not (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (_ bv0 1) (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|))) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) (_ bv8 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_dll_circular_create_~last~0#1.base|))} is VALID [2022-02-20 16:54:23,907 INFO L290 TraceCheckUtils]: 18: Hoare triple {904#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= (_ bv0 32) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) (_ bv1 1)) (not (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (_ bv0 1) (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|))) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) (_ bv8 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~new_head~0#1.base|) |ULTIMATE.start_dll_circular_create_~new_head~0#1.offset|) |ULTIMATE.start_dll_circular_create_~last~0#1.base|))} dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset := dll_circular_create_~new_head~0#1.base, dll_circular_create_~new_head~0#1.offset;dll_circular_create_#t~post6#1 := dll_circular_create_~len#1;dll_circular_create_~len#1 := ~bvsub32(dll_circular_create_#t~post6#1, 1bv32);havoc dll_circular_create_#t~post6#1; {908#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv8 32))) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| (_ bv0 32)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (_ bv0 1) (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|))) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv0 32)) |ULTIMATE.start_dll_circular_create_~last~0#1.base|))} is VALID [2022-02-20 16:54:23,910 INFO L290 TraceCheckUtils]: 19: Hoare triple {908#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv8 32))) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| (_ bv0 32)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (_ bv0 1) (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|))) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv0 32)) |ULTIMATE.start_dll_circular_create_~last~0#1.base|))} assume !~bvsgt32(dll_circular_create_~len#1, 1bv32); {908#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv8 32))) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| (_ bv0 32)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (_ bv0 1) (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|))) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv0 32)) |ULTIMATE.start_dll_circular_create_~last~0#1.base|))} is VALID [2022-02-20 16:54:23,936 INFO L290 TraceCheckUtils]: 20: Hoare triple {908#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv8 32))) (= (select |#valid| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv1 1)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_dll_circular_create_~head~0#1.offset| (_ bv0 32)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_~last~0#1.base|)) (not (= |ULTIMATE.start_dll_circular_create_~last~0#1.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (_ bv0 1) (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_dll_circular_create_~last~0#1.base|))) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_~head~0#1.base|) (_ bv0 32)) |ULTIMATE.start_dll_circular_create_~last~0#1.base|))} call write~$Pointer$(dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset, dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_create_~last~0#1.base, dll_circular_create_~last~0#1.offset, dll_circular_create_~head~0#1.base, ~bvadd32(4bv32, dll_circular_create_~head~0#1.offset), 4bv32);dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset := dll_circular_create_~head~0#1.base, dll_circular_create_~head~0#1.offset; {915#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|) |ULTIMATE.start_dll_circular_create_#res#1.base|)) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_dll_circular_create_#res#1.offset| (_ bv0 32)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv1 1)) (= (_ bv0 1) (bvadd (select |#valid| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv0 32))) (_ bv1 1))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv0 32)))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv0 32)) |ULTIMATE.start_dll_circular_create_#res#1.base|)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_#res#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv8 32))))} is VALID [2022-02-20 16:54:23,937 INFO L290 TraceCheckUtils]: 21: Hoare triple {915#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|) |ULTIMATE.start_dll_circular_create_#res#1.base|)) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_dll_circular_create_#res#1.offset| (_ bv0 32)) (= (select |#valid| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv1 1)) (= (_ bv0 1) (bvadd (select |#valid| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv0 32))) (_ bv1 1))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv0 32)))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (_ bv1 1) (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv0 1)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv0 32)) |ULTIMATE.start_dll_circular_create_#res#1.base|)) (not (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_create_#res#1.base|)) (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_dll_circular_create_#res#1.base|) (_ bv8 32))))} main_#t~ret18#1.base, main_#t~ret18#1.offset := dll_circular_create_#res#1.base, dll_circular_create_#res#1.offset;assume { :end_inline_dll_circular_create } true;call write~init~$Pointer$(main_#t~ret18#1.base, main_#t~ret18#1.offset, main_~#s~0#1.base, main_~#s~0#1.offset, 4bv32);havoc main_#t~ret18#1.base, main_#t~ret18#1.offset;assume { :begin_inline_dll_circular_insert } true;dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset, dll_circular_insert_#in~data#1, dll_circular_insert_#in~index#1 := main_~#s~0#1.base, main_~#s~0#1.offset, main_~data~0#1, ~bvsdiv32(main_~len~0#1, 2bv32);havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset, dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset, dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset, dll_circular_insert_#t~post12#1, dll_circular_insert_#t~mem13#1.base, dll_circular_insert_#t~mem13#1.offset, dll_circular_insert_#t~mem14#1.base, dll_circular_insert_#t~mem14#1.offset, dll_circular_insert_#t~mem15#1.base, dll_circular_insert_#t~mem15#1.offset, dll_circular_insert_#t~mem16#1.base, dll_circular_insert_#t~mem16#1.offset, dll_circular_insert_#t~mem17#1.base, dll_circular_insert_#t~mem17#1.offset, dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, dll_circular_insert_~data#1, dll_circular_insert_~index#1, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset;dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset := dll_circular_insert_#in~head#1.base, dll_circular_insert_#in~head#1.offset;dll_circular_insert_~data#1 := dll_circular_insert_#in~data#1;dll_circular_insert_~index#1 := dll_circular_insert_#in~index#1; {919#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (= |ULTIMATE.start_main_~#s~0#1.offset| |ULTIMATE.start_dll_circular_insert_~head#1.offset|) (= (bvadd (bvneg (select |#valid| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (_ bv1 1)) (_ bv0 1)) (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (bvneg (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv1 1)) (_ bv0 1)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (= (_ bv0 1) (bvadd (select |#valid| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) (_ bv1 1))))} is VALID [2022-02-20 16:54:23,938 INFO L272 TraceCheckUtils]: 22: Hoare triple {919#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (= |ULTIMATE.start_main_~#s~0#1.offset| |ULTIMATE.start_dll_circular_insert_~head#1.offset|) (= (bvadd (bvneg (select |#valid| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (_ bv1 1)) (_ bv0 1)) (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (bvneg (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv1 1)) (_ bv0 1)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (= (_ bv0 1) (bvadd (select |#valid| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) (_ bv1 1))))} call dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset := node_create(dll_circular_insert_~data#1); {923#(and (= |old(#valid)| |#valid|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#memory_int)| |#memory_int|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))) (= |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))} is VALID [2022-02-20 16:54:23,939 INFO L290 TraceCheckUtils]: 23: Hoare triple {923#(and (= |old(#valid)| |#valid|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#memory_int)| |#memory_int|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))) (= |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))} ~data#1 := #in~data#1;call #t~malloc3#1.base, #t~malloc3#1.offset := #Ultimate.allocOnHeap(12bv32);~temp~0#1.base, ~temp~0#1.offset := #t~malloc3#1.base, #t~malloc3#1.offset;havoc #t~malloc3#1.base, #t~malloc3#1.offset; {927#(and (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#memory_int)| |#memory_int|) (bvult |node_create_~temp~0#1.base| |#StackHeapBarrier|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))) (= |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))} is VALID [2022-02-20 16:54:23,940 INFO L290 TraceCheckUtils]: 24: Hoare triple {927#(and (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#memory_int)| |#memory_int|) (bvult |node_create_~temp~0#1.base| |#StackHeapBarrier|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))) (= |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))} assume !(0bv32 == ~temp~0#1.base && 0bv32 == ~temp~0#1.offset); {927#(and (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#memory_int)| |#memory_int|) (bvult |node_create_~temp~0#1.base| |#StackHeapBarrier|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))) (= |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))} is VALID [2022-02-20 16:54:23,990 WARN L290 TraceCheckUtils]: 25: Hoare triple {927#(and (= (_ bv0 1) (select |old(#valid)| |node_create_~temp~0#1.base|)) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#memory_int)| |#memory_int|) (bvult |node_create_~temp~0#1.base| |#StackHeapBarrier|) (not (= |#StackHeapBarrier| (_ bv4294967295 32))) (= |old(#memory_$Pointer$.base)| |#memory_$Pointer$.base|))} call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~temp~0#1.offset, 4bv32);call write~$Pointer$(0bv32, 0bv32, ~temp~0#1.base, ~bvadd32(4bv32, ~temp~0#1.offset), 4bv32);call write~intINTTYPE4(~data#1, ~temp~0#1.base, ~bvadd32(8bv32, ~temp~0#1.offset), 4bv32);#res#1.base, #res#1.offset := ~temp~0#1.base, ~temp~0#1.offset; {934#(and (exists ((v_ArrVal_443 (Array (_ BitVec 32) (_ BitVec 32)))) (= (store |old(#memory_$Pointer$.offset)| |node_create_#res#1.base| v_ArrVal_443) |#memory_$Pointer$.offset|)) (exists ((v_ArrVal_442 (Array (_ BitVec 32) (_ BitVec 32)))) (= |#memory_int| (store |old(#memory_int)| |node_create_#res#1.base| v_ArrVal_442))) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (bvult |node_create_#res#1.base| |#StackHeapBarrier|) (exists ((v_ArrVal_441 (Array (_ BitVec 32) (_ BitVec 32)))) (= (store |old(#memory_$Pointer$.base)| |node_create_#res#1.base| v_ArrVal_441) |#memory_$Pointer$.base|)) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} is UNKNOWN [2022-02-20 16:54:23,991 INFO L290 TraceCheckUtils]: 26: Hoare triple {934#(and (exists ((v_ArrVal_443 (Array (_ BitVec 32) (_ BitVec 32)))) (= (store |old(#memory_$Pointer$.offset)| |node_create_#res#1.base| v_ArrVal_443) |#memory_$Pointer$.offset|)) (exists ((v_ArrVal_442 (Array (_ BitVec 32) (_ BitVec 32)))) (= |#memory_int| (store |old(#memory_int)| |node_create_#res#1.base| v_ArrVal_442))) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (bvult |node_create_#res#1.base| |#StackHeapBarrier|) (exists ((v_ArrVal_441 (Array (_ BitVec 32) (_ BitVec 32)))) (= (store |old(#memory_$Pointer$.base)| |node_create_#res#1.base| v_ArrVal_441) |#memory_$Pointer$.base|)) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} assume true; {934#(and (exists ((v_ArrVal_443 (Array (_ BitVec 32) (_ BitVec 32)))) (= (store |old(#memory_$Pointer$.offset)| |node_create_#res#1.base| v_ArrVal_443) |#memory_$Pointer$.offset|)) (exists ((v_ArrVal_442 (Array (_ BitVec 32) (_ BitVec 32)))) (= |#memory_int| (store |old(#memory_int)| |node_create_#res#1.base| v_ArrVal_442))) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (bvult |node_create_#res#1.base| |#StackHeapBarrier|) (exists ((v_ArrVal_441 (Array (_ BitVec 32) (_ BitVec 32)))) (= (store |old(#memory_$Pointer$.base)| |node_create_#res#1.base| v_ArrVal_441) |#memory_$Pointer$.base|)) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} is VALID [2022-02-20 16:54:24,056 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {934#(and (exists ((v_ArrVal_443 (Array (_ BitVec 32) (_ BitVec 32)))) (= (store |old(#memory_$Pointer$.offset)| |node_create_#res#1.base| v_ArrVal_443) |#memory_$Pointer$.offset|)) (exists ((v_ArrVal_442 (Array (_ BitVec 32) (_ BitVec 32)))) (= |#memory_int| (store |old(#memory_int)| |node_create_#res#1.base| v_ArrVal_442))) (= (select |old(#valid)| |node_create_#res#1.base|) (_ bv0 1)) (bvult |node_create_#res#1.base| |#StackHeapBarrier|) (exists ((v_ArrVal_441 (Array (_ BitVec 32) (_ BitVec 32)))) (= (store |old(#memory_$Pointer$.base)| |node_create_#res#1.base| v_ArrVal_441) |#memory_$Pointer$.base|)) (not (= |#StackHeapBarrier| (_ bv4294967295 32))))} {919#(and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (= |ULTIMATE.start_main_~#s~0#1.offset| |ULTIMATE.start_dll_circular_insert_~head#1.offset|) (= (bvadd (bvneg (select |#valid| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (_ bv1 1)) (_ bv0 1)) (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (bvadd (bvneg (select |#valid| |ULTIMATE.start_main_~#s~0#1.base|)) (_ bv1 1)) (_ bv0 1)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (= (_ bv0 1) (bvadd (select |#valid| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) (_ bv1 1))))} #123#return; {941#(and (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (= |ULTIMATE.start_main_~#s~0#1.offset| |ULTIMATE.start_dll_circular_insert_~head#1.offset|) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base|)) (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) (exists ((|#StackHeapBarrier| (_ BitVec 32))) (and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (bvult |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base| |#StackHeapBarrier|))) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))))} is VALID [2022-02-20 16:54:24,092 INFO L290 TraceCheckUtils]: 28: Hoare triple {941#(and (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (= |ULTIMATE.start_main_~#s~0#1.offset| |ULTIMATE.start_dll_circular_insert_~head#1.offset|) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base|)) (= |ULTIMATE.start_main_~#s~0#1.base| |ULTIMATE.start_dll_circular_insert_~head#1.base|) (exists ((|#StackHeapBarrier| (_ BitVec 32))) (and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (bvult |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base| |#StackHeapBarrier|))) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_dll_circular_insert_#t~ret9#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))))} dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset := dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;havoc dll_circular_insert_#t~ret9#1.base, dll_circular_insert_#t~ret9#1.offset;dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset := 0bv32, 0bv32;call dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset := read~$Pointer$(dll_circular_insert_~head#1.base, dll_circular_insert_~head#1.offset, 4bv32);dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset := dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset;havoc dll_circular_insert_#t~mem10#1.base, dll_circular_insert_#t~mem10#1.offset; {945#(and (= |ULTIMATE.start_dll_circular_insert_~last~1#1.offset| (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_dll_circular_insert_~last~1#1.base|) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (exists ((|#StackHeapBarrier| (_ BitVec 32))) (and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (bvult |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |#StackHeapBarrier|))) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))))} is VALID [2022-02-20 16:54:24,117 INFO L290 TraceCheckUtils]: 29: Hoare triple {945#(and (= |ULTIMATE.start_dll_circular_insert_~last~1#1.offset| (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_dll_circular_insert_~last~1#1.base|) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (exists ((|#StackHeapBarrier| (_ BitVec 32))) (and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (bvult |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |#StackHeapBarrier|))) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))))} assume !!~bvsgt32(dll_circular_insert_~index#1, 0bv32);dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset := dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset;call dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset := read~$Pointer$(dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset, 4bv32);dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset := dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset;havoc dll_circular_insert_#t~mem11#1.base, dll_circular_insert_#t~mem11#1.offset;dll_circular_insert_#t~post12#1 := dll_circular_insert_~index#1;dll_circular_insert_~index#1 := ~bvsub32(dll_circular_insert_#t~post12#1, 1bv32);havoc dll_circular_insert_#t~post12#1; {949#(and (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (exists ((|#StackHeapBarrier| (_ BitVec 32))) (and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (bvult |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |#StackHeapBarrier|))) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset|) |ULTIMATE.start_dll_circular_insert_~last~1#1.base|))} is VALID [2022-02-20 16:54:24,146 INFO L290 TraceCheckUtils]: 30: Hoare triple {949#(and (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (exists ((|#StackHeapBarrier| (_ BitVec 32))) (and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (bvult |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |#StackHeapBarrier|))) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset|) |ULTIMATE.start_dll_circular_insert_~last~1#1.base|))} assume !~bvsgt32(dll_circular_insert_~index#1, 0bv32); {949#(and (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (exists ((|#StackHeapBarrier| (_ BitVec 32))) (and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (bvult |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |#StackHeapBarrier|))) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset|) |ULTIMATE.start_dll_circular_insert_~last~1#1.base|))} is VALID [2022-02-20 16:54:24,247 INFO L290 TraceCheckUtils]: 31: Hoare triple {949#(and (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|) (exists ((|ULTIMATE.start_dll_circular_create_~last~0#1.offset| (_ BitVec 32))) (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32))) |ULTIMATE.start_dll_circular_create_~last~0#1.offset|))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (exists ((|#StackHeapBarrier| (_ BitVec 32))) (and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (bvult |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| |#StackHeapBarrier|))) (not (= |ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (not (= (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (not (= |ULTIMATE.start_main_~#s~0#1.base| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv0 32)))) (= |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) |ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset|) |ULTIMATE.start_dll_circular_insert_~last~1#1.base|))} assume dll_circular_insert_~snd_to_last~0#1.base != 0bv32 || dll_circular_insert_~snd_to_last~0#1.offset != 0bv32;call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_insert_~snd_to_last~0#1.base, dll_circular_insert_~snd_to_last~0#1.offset, dll_circular_insert_~new_node~0#1.base, ~bvadd32(4bv32, dll_circular_insert_~new_node~0#1.offset), 4bv32);call write~$Pointer$(dll_circular_insert_~last~1#1.base, dll_circular_insert_~last~1#1.offset, dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, 4bv32);call write~$Pointer$(dll_circular_insert_~new_node~0#1.base, dll_circular_insert_~new_node~0#1.offset, dll_circular_insert_~last~1#1.base, ~bvadd32(4bv32, dll_circular_insert_~last~1#1.offset), 4bv32); {956#(and (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (bvadd (_ bv4 32) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))))) (exists ((|#StackHeapBarrier| (_ BitVec 32))) (and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (bvult (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) |#StackHeapBarrier|))))} is VALID [2022-02-20 16:54:24,248 INFO L290 TraceCheckUtils]: 32: Hoare triple {956#(and (= |ULTIMATE.start_main_~#s~0#1.offset| (_ bv0 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (_ bv0 32)) (= (select (select |#memory_int| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (_ bv8 32)) |ULTIMATE.start_main_~data~0#1|) (not (= (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))) (bvadd (_ bv4 32) (select (select |#memory_$Pointer$.offset| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|))))) (exists ((|#StackHeapBarrier| (_ BitVec 32))) (and (bvult |#StackHeapBarrier| |ULTIMATE.start_main_~#s~0#1.base|) (bvult (select (select |#memory_$Pointer$.base| (select (select |#memory_$Pointer$.base| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) (select (select |#memory_$Pointer$.offset| |ULTIMATE.start_main_~#s~0#1.base|) |ULTIMATE.start_main_~#s~0#1.offset|)) |#StackHeapBarrier|))))} assume { :end_inline_dll_circular_insert } true;call main_#t~mem19#1.base, main_#t~mem19#1.offset := read~$Pointer$(main_~#s~0#1.base, main_~#s~0#1.offset, 4bv32);main_~ptr~0#1.base, main_~ptr~0#1.offset := main_#t~mem19#1.base, main_#t~mem19#1.offset;havoc main_#t~mem19#1.base, main_#t~mem19#1.offset;main_~count~0#1 := 0bv32; {960#(and (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_main_~ptr~0#1.base|) (_ bv8 32))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= |ULTIMATE.start_main_~ptr~0#1.offset| (_ bv0 32)))} is VALID [2022-02-20 16:54:24,249 INFO L290 TraceCheckUtils]: 33: Hoare triple {960#(and (= |ULTIMATE.start_main_~data~0#1| (select (select |#memory_int| |ULTIMATE.start_main_~ptr~0#1.base|) (_ bv8 32))) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)) (= |ULTIMATE.start_main_~ptr~0#1.offset| (_ bv0 32)))} call main_#t~mem21#1 := read~intINTTYPE4(main_~ptr~0#1.base, ~bvadd32(8bv32, main_~ptr~0#1.offset), 4bv32); {964#(and (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_main_#t~mem21#1|) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)))} is VALID [2022-02-20 16:54:24,249 INFO L290 TraceCheckUtils]: 34: Hoare triple {964#(and (= |ULTIMATE.start_main_~data~0#1| |ULTIMATE.start_main_#t~mem21#1|) (= |ULTIMATE.start_main_~data~0#1| (_ bv1 32)))} assume main_~data~0#1 != main_#t~mem21#1;havoc main_#t~mem21#1; {839#false} is VALID [2022-02-20 16:54:24,249 INFO L290 TraceCheckUtils]: 35: Hoare triple {839#false} assume !false; {839#false} is VALID [2022-02-20 16:54:24,250 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 6 proven. 10 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2022-02-20 16:54:24,250 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:54:24,514 WARN L838 $PredicateComparison]: unable to prove that (forall ((v_ArrVal_453 (Array (_ BitVec 32) (_ BitVec 32))) (v_ArrVal_464 (Array (_ BitVec 32) (_ BitVec 32))) (|ULTIMATE.start_dll_circular_insert_~last~1#1.offset| (_ BitVec 32)) (v_ArrVal_465 (Array (_ BitVec 32) (_ BitVec 32))) (v_ArrVal_467 (Array (_ BitVec 32) (_ BitVec 32))) (v_ArrVal_447 (_ BitVec 32)) (|ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset| (_ BitVec 32)) (v_ArrVal_448 (Array (_ BitVec 32) (_ BitVec 32)))) (= (select (select (store (store (store |c_#memory_int| |c_ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| (store (select |c_#memory_int| |c_ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|) |c_ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| v_ArrVal_447)) |c_ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| v_ArrVal_465) |c_ULTIMATE.start_dll_circular_insert_~last~1#1.base| v_ArrVal_448) (select (select (store (store (store |c_#memory_$Pointer$.base| |c_ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| (store (select |c_#memory_$Pointer$.base| |c_ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|) |c_ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| |c_ULTIMATE.start_dll_circular_insert_~new_node~0#1.base|)) |c_ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| v_ArrVal_453) |c_ULTIMATE.start_dll_circular_insert_~last~1#1.base| v_ArrVal_464) |c_ULTIMATE.start_main_~#s~0#1.base|) |c_ULTIMATE.start_main_~#s~0#1.offset|)) (bvadd (_ bv8 32) (select (select (store (let ((.cse0 (store |c_#memory_$Pointer$.offset| |c_ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base| (store (select |c_#memory_$Pointer$.offset| |c_ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.base|) |c_ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset| |ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset|)))) (store .cse0 |c_ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (store (store (select .cse0 |c_ULTIMATE.start_dll_circular_insert_~new_node~0#1.base|) (bvadd (_ bv4 32) |ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset|) |c_ULTIMATE.start_dll_circular_insert_~snd_to_last~0#1.offset|) |ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset| |ULTIMATE.start_dll_circular_insert_~last~1#1.offset|))) |c_ULTIMATE.start_dll_circular_insert_~last~1#1.base| v_ArrVal_467) |c_ULTIMATE.start_main_~#s~0#1.base|) |c_ULTIMATE.start_main_~#s~0#1.offset|))) |c_ULTIMATE.start_main_~data~0#1|)) is different from false [2022-02-20 16:54:24,673 WARN L838 $PredicateComparison]: unable to prove that (forall ((v_ArrVal_453 (Array (_ BitVec 32) (_ BitVec 32))) (v_ArrVal_464 (Array (_ BitVec 32) (_ BitVec 32))) (v_ArrVal_465 (Array (_ BitVec 32) (_ BitVec 32))) (v_ArrVal_467 (Array (_ BitVec 32) (_ BitVec 32))) (v_ArrVal_447 (_ BitVec 32)) (|ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset| (_ BitVec 32)) (v_ArrVal_448 (Array (_ BitVec 32) (_ BitVec 32))) (|v_ULTIMATE.start_dll_circular_insert_~last~1#1.offset_8| (_ BitVec 32))) (= |c_ULTIMATE.start_main_~data~0#1| (let ((.cse1 (select |c_#memory_$Pointer$.base| |c_ULTIMATE.start_dll_circular_insert_~last~1#1.base|))) (let ((.cse0 (select .cse1 |c_ULTIMATE.start_dll_circular_insert_~last~1#1.offset|))) (select (select (store (store (store |c_#memory_int| |c_ULTIMATE.start_dll_circular_insert_~last~1#1.base| (store (select |c_#memory_int| |c_ULTIMATE.start_dll_circular_insert_~last~1#1.base|) |c_ULTIMATE.start_dll_circular_insert_~last~1#1.offset| v_ArrVal_447)) |c_ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| v_ArrVal_465) .cse0 v_ArrVal_448) (select (select (store (store (store |c_#memory_$Pointer$.base| |c_ULTIMATE.start_dll_circular_insert_~last~1#1.base| (store .cse1 |c_ULTIMATE.start_dll_circular_insert_~last~1#1.offset| |c_ULTIMATE.start_dll_circular_insert_~new_node~0#1.base|)) |c_ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| v_ArrVal_453) .cse0 v_ArrVal_464) |c_ULTIMATE.start_main_~#s~0#1.base|) |c_ULTIMATE.start_main_~#s~0#1.offset|)) (bvadd (_ bv8 32) (select (select (store (let ((.cse2 (store |c_#memory_$Pointer$.offset| |c_ULTIMATE.start_dll_circular_insert_~last~1#1.base| (store (select |c_#memory_$Pointer$.offset| |c_ULTIMATE.start_dll_circular_insert_~last~1#1.base|) |c_ULTIMATE.start_dll_circular_insert_~last~1#1.offset| |ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset|)))) (store .cse2 |c_ULTIMATE.start_dll_circular_insert_~new_node~0#1.base| (store (store (select .cse2 |c_ULTIMATE.start_dll_circular_insert_~new_node~0#1.base|) (bvadd (_ bv4 32) |ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset|) |c_ULTIMATE.start_dll_circular_insert_~last~1#1.offset|) |ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset| |v_ULTIMATE.start_dll_circular_insert_~last~1#1.offset_8|))) .cse0 v_ArrVal_467) |c_ULTIMATE.start_main_~#s~0#1.base|) |c_ULTIMATE.start_main_~#s~0#1.offset|))))))) is different from false [2022-02-20 16:54:24,774 WARN L838 $PredicateComparison]: unable to prove that (forall ((v_ArrVal_453 (Array (_ BitVec 32) (_ BitVec 32))) (v_ArrVal_464 (Array (_ BitVec 32) (_ BitVec 32))) (v_ArrVal_465 (Array (_ BitVec 32) (_ BitVec 32))) (v_ArrVal_467 (Array (_ BitVec 32) (_ BitVec 32))) (v_ArrVal_447 (_ BitVec 32)) (|ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset| (_ BitVec 32)) (v_ArrVal_448 (Array (_ BitVec 32) (_ BitVec 32))) (|v_ULTIMATE.start_dll_circular_insert_~last~1#1.offset_8| (_ BitVec 32))) (= |c_ULTIMATE.start_main_~data~0#1| (let ((.cse0 (select (select |c_#memory_$Pointer$.base| |c_ULTIMATE.start_dll_circular_insert_~head#1.base|) |c_ULTIMATE.start_dll_circular_insert_~head#1.offset|))) (let ((.cse3 (select |c_#memory_$Pointer$.base| .cse0)) (.cse1 (select (select |c_#memory_$Pointer$.offset| |c_ULTIMATE.start_dll_circular_insert_~head#1.base|) |c_ULTIMATE.start_dll_circular_insert_~head#1.offset|))) (let ((.cse2 (select .cse3 .cse1))) (select (select (store (store (store |c_#memory_int| .cse0 (store (select |c_#memory_int| .cse0) .cse1 v_ArrVal_447)) |c_ULTIMATE.start_dll_circular_insert_#t~ret9#1.base| v_ArrVal_465) .cse2 v_ArrVal_448) (select (select (store (store (store |c_#memory_$Pointer$.base| .cse0 (store .cse3 .cse1 |c_ULTIMATE.start_dll_circular_insert_#t~ret9#1.base|)) |c_ULTIMATE.start_dll_circular_insert_#t~ret9#1.base| v_ArrVal_453) .cse2 v_ArrVal_464) |c_ULTIMATE.start_main_~#s~0#1.base|) |c_ULTIMATE.start_main_~#s~0#1.offset|)) (bvadd (select (select (store (let ((.cse4 (store |c_#memory_$Pointer$.offset| .cse0 (store (select |c_#memory_$Pointer$.offset| .cse0) .cse1 |ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset|)))) (store .cse4 |c_ULTIMATE.start_dll_circular_insert_#t~ret9#1.base| (store (store (select .cse4 |c_ULTIMATE.start_dll_circular_insert_#t~ret9#1.base|) (bvadd (_ bv4 32) |ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset|) .cse1) |ULTIMATE.start_dll_circular_insert_~new_node~0#1.offset| |v_ULTIMATE.start_dll_circular_insert_~last~1#1.offset_8|))) .cse2 v_ArrVal_467) |c_ULTIMATE.start_main_~#s~0#1.base|) |c_ULTIMATE.start_main_~#s~0#1.offset|) (_ bv8 32)))))))) is different from false [2022-02-20 16:54:26,210 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:54:26,211 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1297435905] [2022-02-20 16:54:26,211 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1297435905] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:54:26,211 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleCvc4 [117791766] [2022-02-20 16:54:26,211 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:54:26,211 INFO L173 SolverBuilder]: Constructing external solver with command: cvc4 --incremental --print-success --lang smt [2022-02-20 16:54:26,211 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4 [2022-02-20 16:54:26,213 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4 --incremental --print-success --lang smt (exit command is (exit), workingDir is null) [2022-02-20 16:54:26,213 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4 --incremental --print-success --lang smt (6)] Waiting until timeout for monitored process [2022-02-20 16:54:26,892 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:26,904 INFO L263 TraceCheckSpWp]: Trace formula consists of 290 conjuncts, 88 conjunts are in the unsatisfiable core [2022-02-20 16:54:26,953 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:54:26,956 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:54:27,207 INFO L390 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 [2022-02-20 16:54:27,819 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 6 [2022-02-20 16:54:28,124 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 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 11 treesize of output 7 [2022-02-20 16:54:28,303 INFO L356 Elim1Store]: treesize reduction 15, result has 46.4 percent of original size [2022-02-20 16:54:28,303 INFO L390 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 2 new quantified variables, introduced 2 case distinctions, treesize of input 20 treesize of output 27 [2022-02-20 16:54:28,512 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 18 [2022-02-20 16:54:28,526 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2022-02-20 16:54:28,744 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 16 [2022-02-20 16:54:28,752 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 16 [2022-02-20 16:54:29,170 WARN L325 FreeRefinementEngine]: Global settings require throwing the following exception [2022-02-20 16:54:29,183 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (5)] Forceful destruction successful, exit code 0 [2022-02-20 16:54:29,379 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4 --incremental --print-success --lang smt (6)] Forceful destruction successful, exit code 0 [2022-02-20 16:54:29,577 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3,6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4 --incremental --print-success --lang smt [2022-02-20 16:54:29,578 FATAL L? ?]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.AssertionError: var is still there: |v_#memory_$Pointer$.base_59| at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.arrays.Elim1Store.elim1(Elim1Store.java:285) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.arrays.ElimStorePlain.applyComplexEliminationRules(ElimStorePlain.java:427) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminate(DualJunctionSaa.java:184) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminateOne3(DualJunctionSaa.java:166) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminateOne2(DualJunctionSaa.java:154) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminateOne1(DualJunctionSaa.java:142) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminateOne0(DualJunctionSaa.java:126) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminateOne(DualJunctionSaa.java:110) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryExhaustivelyToEliminate(DualJunctionSaa.java:95) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.DualJunctionSaa.tryToEliminate(DualJunctionSaa.java:90) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.tryToEliminateOne(QuantifierPusher.java:904) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.applyNewEliminationTechniquesExhaustively(QuantifierPusher.java:865) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.applyDualJunctionEliminationTechniques(QuantifierPusher.java:783) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.tryToPushOverDualFiniteConnective2(QuantifierPusher.java:425) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.tryToPushOverDualFiniteConnective(QuantifierPusher.java:355) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.convert(QuantifierPushTermWalker.java:172) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.convert(QuantifierPushTermWalker.java:1) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermContextTransformationEngine$ApplicationTermTask.doStep(TermContextTransformationEngine.java:169) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermContextTransformationEngine.transform(TermContextTransformationEngine.java:77) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermContextTransformationEngine.transform(TermContextTransformationEngine.java:61) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.eliminate(QuantifierPushTermWalker.java:261) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.eliminate(QuantifierPushTermWalker.java:247) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.PartialQuantifierElimination.eliminate(PartialQuantifierElimination.java:92) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer$QuantifierEliminationPostprocessor.postprocess(IterativePredicateTransformer.java:238) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer.applyPostprocessors(IterativePredicateTransformer.java:420) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer.computeStrongestPostconditionSequence(IterativePredicateTransformer.java:199) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.computeInterpolantsUsingUnsatCore(TraceCheckSpWp.java:299) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.computeInterpolants(TraceCheckSpWp.java:185) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.(TraceCheckSpWp.java:163) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleSpWp.construct(IpTcStrategyModuleSpWp.java:108) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleSpWp.construct(IpTcStrategyModuleSpWp.java:1) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.getOrConstruct(IpTcStrategyModuleBase.java:100) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.getInterpolantComputationStatus(IpTcStrategyModuleBase.java:76) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.AutomatonFreeRefinementEngine.tryExecuteInterpolantGenerator(AutomatonFreeRefinementEngine.java:273) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.AutomatonFreeRefinementEngine.generateProof(AutomatonFreeRefinementEngine.java:155) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.AutomatonFreeRefinementEngine.executeStrategy(AutomatonFreeRefinementEngine.java:145) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.AutomatonFreeRefinementEngine.(AutomatonFreeRefinementEngine.java:93) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceAbstractionRefinementEngine.(TraceAbstractionRefinementEngine.java:79) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.BasicCegarLoop.isCounterexampleFeasible(BasicCegarLoop.java:610) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterate(AbstractCegarLoop.java:413) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.startCegar(AbstractCegarLoop.java:348) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.runCegar(AbstractCegarLoop.java:330) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.CegarLoopUtils.getCegarLoopResult(CegarLoopUtils.java:56) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.executeCegarLoop(TraceAbstractionStarter.java:414) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.analyseProgram(TraceAbstractionStarter.java:304) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.analyseSequentialProgram(TraceAbstractionStarter.java:264) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:177) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:156) 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:320) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) [2022-02-20 16:54:29,583 INFO L158 Benchmark]: Toolchain (without parser) took 14781.25ms. Allocated memory was 50.3MB in the beginning and 157.3MB in the end (delta: 107.0MB). Free memory was 26.7MB in the beginning and 73.6MB in the end (delta: -47.0MB). Peak memory consumption was 60.5MB. Max. memory is 16.1GB. [2022-02-20 16:54:29,583 INFO L158 Benchmark]: CDTParser took 0.14ms. Allocated memory is still 50.3MB. Free memory was 33.0MB in the beginning and 33.0MB in the end (delta: 32.9kB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 16:54:29,584 INFO L158 Benchmark]: CACSL2BoogieTranslator took 431.97ms. Allocated memory was 50.3MB in the beginning and 60.8MB in the end (delta: 10.5MB). Free memory was 26.5MB in the beginning and 33.9MB in the end (delta: -7.4MB). Peak memory consumption was 7.4MB. Max. memory is 16.1GB. [2022-02-20 16:54:29,586 INFO L158 Benchmark]: Boogie Procedure Inliner took 55.35ms. Allocated memory is still 60.8MB. Free memory was 33.9MB in the beginning and 31.2MB in the end (delta: 2.7MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:54:29,586 INFO L158 Benchmark]: Boogie Preprocessor took 59.97ms. Allocated memory is still 60.8MB. Free memory was 31.2MB in the beginning and 40.9MB in the end (delta: -9.7MB). Peak memory consumption was 6.4MB. Max. memory is 16.1GB. [2022-02-20 16:54:29,587 INFO L158 Benchmark]: RCFGBuilder took 582.18ms. Allocated memory is still 60.8MB. Free memory was 40.7MB in the beginning and 30.4MB in the end (delta: 10.3MB). Peak memory consumption was 14.7MB. Max. memory is 16.1GB. [2022-02-20 16:54:29,587 INFO L158 Benchmark]: TraceAbstraction took 13638.61ms. Allocated memory was 60.8MB in the beginning and 157.3MB in the end (delta: 96.5MB). Free memory was 29.9MB in the beginning and 73.6MB in the end (delta: -43.7MB). Peak memory consumption was 52.5MB. Max. memory is 16.1GB. [2022-02-20 16:54:29,590 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.14ms. Allocated memory is still 50.3MB. Free memory was 33.0MB in the beginning and 33.0MB in the end (delta: 32.9kB). There was no memory consumed. Max. memory is 16.1GB. * CACSL2BoogieTranslator took 431.97ms. Allocated memory was 50.3MB in the beginning and 60.8MB in the end (delta: 10.5MB). Free memory was 26.5MB in the beginning and 33.9MB in the end (delta: -7.4MB). Peak memory consumption was 7.4MB. Max. memory is 16.1GB. * Boogie Procedure Inliner took 55.35ms. Allocated memory is still 60.8MB. Free memory was 33.9MB in the beginning and 31.2MB in the end (delta: 2.7MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * Boogie Preprocessor took 59.97ms. Allocated memory is still 60.8MB. Free memory was 31.2MB in the beginning and 40.9MB in the end (delta: -9.7MB). Peak memory consumption was 6.4MB. Max. memory is 16.1GB. * RCFGBuilder took 582.18ms. Allocated memory is still 60.8MB. Free memory was 40.7MB in the beginning and 30.4MB in the end (delta: 10.3MB). Peak memory consumption was 14.7MB. Max. memory is 16.1GB. * TraceAbstraction took 13638.61ms. Allocated memory was 60.8MB in the beginning and 157.3MB in the end (delta: 96.5MB). Free memory was 29.9MB in the beginning and 73.6MB in the end (delta: -43.7MB). Peak memory consumption was 52.5MB. Max. memory is 16.1GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - ExceptionOrErrorResult: AssertionError: var is still there: |v_#memory_$Pointer$.base_59| de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: AssertionError: var is still there: |v_#memory_$Pointer$.base_59|: de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.arrays.Elim1Store.elim1(Elim1Store.java:285) RESULT: Ultimate could not prove your program: Toolchain returned no result. [2022-02-20 16:54:29,623 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 0 Received shutdown request... --- End real Ultimate output --- Execution finished normally Writing output log to file Ultimate.log Result: ERROR: ExceptionOrErrorResult: AssertionError: var is still there: |v_#memory_$Pointer$.base_59|