./Ultimate.py --spec ../../sv-benchmarks/c/properties/unreach-call.prp --file ../../sv-benchmarks/c/heap-manipulation/sll_to_dll_rev_false-unreach-call_false-valid-memcleanup.i --full-output --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version aa418289 Calling Ultimate with: java -Dosgi.configuration.area=/tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/config/AutomizerReach.xml -i ../../sv-benchmarks/c/heap-manipulation/sll_to_dll_rev_false-unreach-call_false-valid-memcleanup.i -s /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/config/svcomp-Reach-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(__VERIFIER_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 65263b67fd81174d35f819c28bc33cb1f3e6621f ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. Execution finished normally Writing output log to file Ultimate.log Writing human readable error path to file UltimateCounterExample.errorpath Result: FALSE --- Real Ultimate output --- This is Ultimate 0.1.23-aa41828 [2018-11-23 15:36:26,890 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 15:36:26,891 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 15:36:26,900 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 15:36:26,901 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 15:36:26,901 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 15:36:26,902 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 15:36:26,904 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 15:36:26,905 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 15:36:26,906 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 15:36:26,906 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 15:36:26,907 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 15:36:26,907 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 15:36:26,909 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 15:36:26,910 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 15:36:26,910 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 15:36:26,911 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 15:36:26,913 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 15:36:26,915 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 15:36:26,916 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 15:36:26,917 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 15:36:26,918 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 15:36:26,920 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 15:36:26,920 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 15:36:26,921 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 15:36:26,921 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 15:36:26,922 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 15:36:26,923 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 15:36:26,923 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 15:36:26,925 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 15:36:26,925 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 15:36:26,926 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 15:36:26,926 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 15:36:26,926 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 15:36:26,927 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 15:36:26,928 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 15:36:26,928 INFO L98 SettingsManager]: Beginning loading settings from /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/config/svcomp-Reach-32bit-Automizer_Default.epf [2018-11-23 15:36:26,938 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 15:36:26,938 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 15:36:26,939 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 15:36:26,939 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 15:36:26,939 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 15:36:26,940 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 15:36:26,940 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 15:36:26,940 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 15:36:26,940 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 15:36:26,940 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 15:36:26,940 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 15:36:26,941 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 15:36:26,941 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 15:36:26,941 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 15:36:26,941 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 15:36:26,941 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 15:36:26,941 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 15:36:26,941 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 15:36:26,942 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 15:36:26,942 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 15:36:26,942 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 15:36:26,942 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 15:36:26,942 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 15:36:26,942 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 15:36:26,943 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 15:36:26,943 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 15:36:26,943 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 15:36:26,943 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-23 15:36:26,943 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 15:36:26,943 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 15:36:26,944 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true 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 -> /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer 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(__VERIFIER_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 -> 65263b67fd81174d35f819c28bc33cb1f3e6621f [2018-11-23 15:36:26,971 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 15:36:26,981 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 15:36:26,984 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 15:36:26,985 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 15:36:26,985 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 15:36:26,986 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/../../sv-benchmarks/c/heap-manipulation/sll_to_dll_rev_false-unreach-call_false-valid-memcleanup.i [2018-11-23 15:36:27,031 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/data/5008d5d14/1d5833114a96461391a9df9fd849ff74/FLAG672ede57c [2018-11-23 15:36:27,428 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 15:36:27,429 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/sv-benchmarks/c/heap-manipulation/sll_to_dll_rev_false-unreach-call_false-valid-memcleanup.i [2018-11-23 15:36:27,435 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/data/5008d5d14/1d5833114a96461391a9df9fd849ff74/FLAG672ede57c [2018-11-23 15:36:27,801 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/data/5008d5d14/1d5833114a96461391a9df9fd849ff74 [2018-11-23 15:36:27,803 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 15:36:27,804 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 15:36:27,804 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 15:36:27,805 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 15:36:27,808 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 15:36:27,808 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 03:36:27" (1/1) ... [2018-11-23 15:36:27,811 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@789a4df and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:27, skipping insertion in model container [2018-11-23 15:36:27,811 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 03:36:27" (1/1) ... [2018-11-23 15:36:27,817 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 15:36:27,848 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 15:36:28,044 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 15:36:28,050 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 15:36:28,130 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 15:36:28,155 INFO L195 MainTranslator]: Completed translation [2018-11-23 15:36:28,155 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28 WrapperNode [2018-11-23 15:36:28,155 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 15:36:28,156 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 15:36:28,156 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 15:36:28,156 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 15:36:28,161 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28" (1/1) ... [2018-11-23 15:36:28,173 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28" (1/1) ... [2018-11-23 15:36:28,179 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 15:36:28,179 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 15:36:28,179 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 15:36:28,180 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 15:36:28,185 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28" (1/1) ... [2018-11-23 15:36:28,186 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28" (1/1) ... [2018-11-23 15:36:28,188 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28" (1/1) ... [2018-11-23 15:36:28,189 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28" (1/1) ... [2018-11-23 15:36:28,198 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28" (1/1) ... [2018-11-23 15:36:28,204 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28" (1/1) ... [2018-11-23 15:36:28,206 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28" (1/1) ... [2018-11-23 15:36:28,210 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 15:36:28,210 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 15:36:28,210 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 15:36:28,211 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 15:36:28,211 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 15:36:28,259 INFO L130 BoogieDeclarations]: Found specification of procedure remove_fw_link [2018-11-23 15:36:28,259 INFO L138 BoogieDeclarations]: Found implementation of procedure remove_fw_link [2018-11-23 15:36:28,259 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 15:36:28,259 INFO L130 BoogieDeclarations]: Found specification of procedure alloc_node [2018-11-23 15:36:28,259 INFO L138 BoogieDeclarations]: Found implementation of procedure alloc_node [2018-11-23 15:36:28,259 INFO L130 BoogieDeclarations]: Found specification of procedure fail [2018-11-23 15:36:28,259 INFO L138 BoogieDeclarations]: Found implementation of procedure fail [2018-11-23 15:36:28,260 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 15:36:28,260 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 15:36:28,260 INFO L130 BoogieDeclarations]: Found specification of procedure init_back_link [2018-11-23 15:36:28,260 INFO L138 BoogieDeclarations]: Found implementation of procedure init_back_link [2018-11-23 15:36:28,260 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 15:36:28,260 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 15:36:28,260 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2018-11-23 15:36:28,260 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2018-11-23 15:36:28,260 INFO L130 BoogieDeclarations]: Found specification of procedure reverse_dll [2018-11-23 15:36:28,261 INFO L138 BoogieDeclarations]: Found implementation of procedure reverse_dll [2018-11-23 15:36:28,261 INFO L130 BoogieDeclarations]: Found specification of procedure check_seq_prev [2018-11-23 15:36:28,261 INFO L138 BoogieDeclarations]: Found implementation of procedure check_seq_prev [2018-11-23 15:36:28,261 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-23 15:36:28,261 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2018-11-23 15:36:28,261 INFO L130 BoogieDeclarations]: Found specification of procedure create_sll [2018-11-23 15:36:28,261 INFO L138 BoogieDeclarations]: Found implementation of procedure create_sll [2018-11-23 15:36:28,261 INFO L130 BoogieDeclarations]: Found specification of procedure chain_node [2018-11-23 15:36:28,261 INFO L138 BoogieDeclarations]: Found implementation of procedure chain_node [2018-11-23 15:36:28,262 INFO L130 BoogieDeclarations]: Found specification of procedure check_seq_next [2018-11-23 15:36:28,262 INFO L138 BoogieDeclarations]: Found implementation of procedure check_seq_next [2018-11-23 15:36:28,262 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 15:36:28,262 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 15:36:28,667 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 15:36:28,668 INFO L280 CfgBuilder]: Removed 33 assue(true) statements. [2018-11-23 15:36:28,668 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 03:36:28 BoogieIcfgContainer [2018-11-23 15:36:28,668 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 15:36:28,669 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 15:36:28,669 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 15:36:28,671 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 15:36:28,672 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 03:36:27" (1/3) ... [2018-11-23 15:36:28,673 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@2ed4cf13 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 03:36:28, skipping insertion in model container [2018-11-23 15:36:28,673 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:36:28" (2/3) ... [2018-11-23 15:36:28,673 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@2ed4cf13 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 03:36:28, skipping insertion in model container [2018-11-23 15:36:28,673 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 03:36:28" (3/3) ... [2018-11-23 15:36:28,674 INFO L112 eAbstractionObserver]: Analyzing ICFG sll_to_dll_rev_false-unreach-call_false-valid-memcleanup.i [2018-11-23 15:36:28,680 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 15:36:28,686 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 15:36:28,696 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 15:36:28,716 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 15:36:28,717 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 15:36:28,717 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 15:36:28,717 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 15:36:28,717 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 15:36:28,717 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 15:36:28,717 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 15:36:28,717 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 15:36:28,717 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 15:36:28,730 INFO L276 IsEmpty]: Start isEmpty. Operand 117 states. [2018-11-23 15:36:28,734 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 25 [2018-11-23 15:36:28,734 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 15:36:28,734 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 15:36:28,736 INFO L423 AbstractCegarLoop]: === Iteration 1 === [failErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 15:36:28,739 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 15:36:28,739 INFO L82 PathProgramCache]: Analyzing trace with hash -1131221550, now seen corresponding path program 1 times [2018-11-23 15:36:28,740 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 15:36:28,741 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 15:36:28,781 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 15:36:28,781 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 15:36:28,781 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 15:36:28,811 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 15:36:28,839 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 15:36:28,840 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 15:36:28,841 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-23 15:36:28,844 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-23 15:36:28,855 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-23 15:36:28,856 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 15:36:28,857 INFO L87 Difference]: Start difference. First operand 117 states. Second operand 2 states. [2018-11-23 15:36:28,886 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 15:36:28,886 INFO L93 Difference]: Finished difference Result 224 states and 366 transitions. [2018-11-23 15:36:28,886 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-23 15:36:28,887 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 24 [2018-11-23 15:36:28,887 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 15:36:28,896 INFO L225 Difference]: With dead ends: 224 [2018-11-23 15:36:28,896 INFO L226 Difference]: Without dead ends: 108 [2018-11-23 15:36:28,900 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 2 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 15:36:28,915 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 108 states. [2018-11-23 15:36:28,932 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 108 to 108. [2018-11-23 15:36:28,933 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 108 states. [2018-11-23 15:36:28,934 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 108 states to 108 states and 128 transitions. [2018-11-23 15:36:28,935 INFO L78 Accepts]: Start accepts. Automaton has 108 states and 128 transitions. Word has length 24 [2018-11-23 15:36:28,935 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 15:36:28,935 INFO L480 AbstractCegarLoop]: Abstraction has 108 states and 128 transitions. [2018-11-23 15:36:28,935 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-23 15:36:28,936 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 128 transitions. [2018-11-23 15:36:28,937 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2018-11-23 15:36:28,937 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 15:36:28,937 INFO L402 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 15:36:28,937 INFO L423 AbstractCegarLoop]: === Iteration 2 === [failErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 15:36:28,937 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 15:36:28,938 INFO L82 PathProgramCache]: Analyzing trace with hash 1707042986, now seen corresponding path program 1 times [2018-11-23 15:36:28,938 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 15:36:28,938 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 15:36:28,939 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 15:36:28,939 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 15:36:28,939 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 15:36:28,990 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 15:36:29,818 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 10 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 15:36:29,818 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 15:36:29,818 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [24] imperfect sequences [] total 24 [2018-11-23 15:36:29,819 INFO L459 AbstractCegarLoop]: Interpolant automaton has 24 states [2018-11-23 15:36:29,820 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 24 interpolants. [2018-11-23 15:36:29,820 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=55, Invalid=497, Unknown=0, NotChecked=0, Total=552 [2018-11-23 15:36:29,821 INFO L87 Difference]: Start difference. First operand 108 states and 128 transitions. Second operand 24 states. [2018-11-23 15:36:31,140 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 15:36:31,140 INFO L93 Difference]: Finished difference Result 154 states and 189 transitions. [2018-11-23 15:36:31,140 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2018-11-23 15:36:31,141 INFO L78 Accepts]: Start accepts. Automaton has 24 states. Word has length 49 [2018-11-23 15:36:31,141 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 15:36:31,144 INFO L225 Difference]: With dead ends: 154 [2018-11-23 15:36:31,144 INFO L226 Difference]: Without dead ends: 151 [2018-11-23 15:36:31,146 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 40 GetRequests, 5 SyntacticMatches, 1 SemanticMatches, 34 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 185 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=119, Invalid=1141, Unknown=0, NotChecked=0, Total=1260 [2018-11-23 15:36:31,146 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 151 states. [2018-11-23 15:36:31,161 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 151 to 120. [2018-11-23 15:36:31,161 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 120 states. [2018-11-23 15:36:31,162 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 120 states to 120 states and 142 transitions. [2018-11-23 15:36:31,162 INFO L78 Accepts]: Start accepts. Automaton has 120 states and 142 transitions. Word has length 49 [2018-11-23 15:36:31,163 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 15:36:31,163 INFO L480 AbstractCegarLoop]: Abstraction has 120 states and 142 transitions. [2018-11-23 15:36:31,163 INFO L481 AbstractCegarLoop]: Interpolant automaton has 24 states. [2018-11-23 15:36:31,163 INFO L276 IsEmpty]: Start isEmpty. Operand 120 states and 142 transitions. [2018-11-23 15:36:31,164 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 52 [2018-11-23 15:36:31,164 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 15:36:31,164 INFO L402 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 15:36:31,165 INFO L423 AbstractCegarLoop]: === Iteration 3 === [failErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 15:36:31,165 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 15:36:31,165 INFO L82 PathProgramCache]: Analyzing trace with hash -211454188, now seen corresponding path program 1 times [2018-11-23 15:36:31,165 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 15:36:31,165 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 15:36:31,166 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 15:36:31,166 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 15:36:31,167 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 15:36:31,188 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 15:36:31,804 WARN L180 SmtUtils]: Spent 103.00 ms on a formula simplification. DAG size of input: 47 DAG size of output: 34 [2018-11-23 15:36:31,946 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 3 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 15:36:31,946 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 15:36:31,946 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 15:36:31,955 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 15:36:31,995 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 15:36:32,005 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 15:36:32,060 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:36:32,065 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 27 [2018-11-23 15:36:32,069 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 15 [2018-11-23 15:36:32,070 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,079 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,084 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,084 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:21, output treesize:18 [2018-11-23 15:36:32,323 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 3 new quantified variables, introduced 3 case distinctions, treesize of input 35 treesize of output 39 [2018-11-23 15:36:32,328 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 29 [2018-11-23 15:36:32,329 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,358 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 27 [2018-11-23 15:36:32,359 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,386 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 22 [2018-11-23 15:36:32,389 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 7 [2018-11-23 15:36:32,390 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,392 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,419 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 26 treesize of output 34 [2018-11-23 15:36:32,424 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 2 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 23 treesize of output 26 [2018-11-23 15:36:32,425 INFO L267 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,444 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 2 case distinctions, treesize of input 19 treesize of output 25 [2018-11-23 15:36:32,445 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 2 xjuncts. [2018-11-23 15:36:32,452 INFO L267 ElimStorePlain]: Start of recursive call 7: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:36:32,459 INFO L267 ElimStorePlain]: Start of recursive call 2: 2 dim-1 vars, 3 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,463 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,464 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:51, output treesize:28 [2018-11-23 15:36:32,566 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 49 treesize of output 55 [2018-11-23 15:36:32,570 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 50 treesize of output 49 [2018-11-23 15:36:32,571 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,606 INFO L267 ElimStorePlain]: Start of recursive call 2: 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,615 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,616 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:60, output treesize:56 [2018-11-23 15:36:32,701 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 7 case distinctions, treesize of input 60 treesize of output 79 [2018-11-23 15:36:32,716 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 62 treesize of output 63 [2018-11-23 15:36:32,717 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,783 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 57 treesize of output 56 [2018-11-23 15:36:32,784 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,810 INFO L267 ElimStorePlain]: Start of recursive call 2: 4 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:36:32,819 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 15:36:32,819 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 2 variables, input treesize:68, output treesize:64 [2018-11-23 15:37:03,699 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:03,733 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 4 select indices, 4 select index equivalence classes, 1 disjoint index pairs (out of 6 index pairs), introduced 4 new quantified variables, introduced 9 case distinctions, treesize of input 87 treesize of output 121 [2018-11-23 15:37:03,745 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:03,752 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 96 treesize of output 110 [2018-11-23 15:37:03,761 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:03,763 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:03,769 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 106 treesize of output 126 [2018-11-23 15:37:03,773 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 122 treesize of output 114 [2018-11-23 15:37:03,774 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:03,829 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 90 treesize of output 86 [2018-11-23 15:37:03,830 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:03,869 INFO L267 ElimStorePlain]: Start of recursive call 4: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:37:03,931 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 88 treesize of output 90 [2018-11-23 15:37:03,937 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 19 [2018-11-23 15:37:03,937 INFO L267 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:03,952 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:04,006 INFO L267 ElimStorePlain]: Start of recursive call 3: 2 dim-1 vars, End of recursive call: and 3 xjuncts. [2018-11-23 15:37:05,503 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 95 treesize of output 97 [2018-11-23 15:37:05,505 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2018-11-23 15:37:05,508 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 19 [2018-11-23 15:37:05,509 INFO L267 ElimStorePlain]: Start of recursive call 11: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:05,514 INFO L267 ElimStorePlain]: Start of recursive call 10: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:05,528 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:06,966 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:06,981 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 4 case distinctions, treesize of input 89 treesize of output 99 [2018-11-23 15:37:06,985 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 79 treesize of output 81 [2018-11-23 15:37:06,991 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 19 [2018-11-23 15:37:06,992 INFO L267 ElimStorePlain]: Start of recursive call 14: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:07,007 INFO L267 ElimStorePlain]: Start of recursive call 13: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:07,080 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:07,081 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:07,087 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 85 treesize of output 105 [2018-11-23 15:37:07,090 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 101 treesize of output 93 [2018-11-23 15:37:07,091 INFO L267 ElimStorePlain]: Start of recursive call 16: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:07,134 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 83 treesize of output 77 [2018-11-23 15:37:07,134 INFO L267 ElimStorePlain]: Start of recursive call 17: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:07,172 INFO L267 ElimStorePlain]: Start of recursive call 15: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:37:07,247 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:07,248 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:07,250 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:07,260 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 4 case distinctions, treesize of input 91 treesize of output 119 [2018-11-23 15:37:07,265 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 105 treesize of output 97 [2018-11-23 15:37:07,265 INFO L267 ElimStorePlain]: Start of recursive call 19: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:07,365 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 93 treesize of output 109 [2018-11-23 15:37:07,365 INFO L267 ElimStorePlain]: Start of recursive call 20: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:07,442 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 89 treesize of output 93 [2018-11-23 15:37:07,443 INFO L267 ElimStorePlain]: Start of recursive call 21: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:07,522 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 83 treesize of output 77 [2018-11-23 15:37:07,522 INFO L267 ElimStorePlain]: Start of recursive call 22: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:07,589 INFO L267 ElimStorePlain]: Start of recursive call 18: 4 dim-1 vars, End of recursive call: and 4 xjuncts. [2018-11-23 15:37:07,687 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:07,689 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:07,694 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 85 treesize of output 105 [2018-11-23 15:37:07,697 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 101 treesize of output 93 [2018-11-23 15:37:07,698 INFO L267 ElimStorePlain]: Start of recursive call 24: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:07,740 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 81 treesize of output 77 [2018-11-23 15:37:07,741 INFO L267 ElimStorePlain]: Start of recursive call 25: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:07,789 INFO L267 ElimStorePlain]: Start of recursive call 23: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:37:07,877 INFO L267 ElimStorePlain]: Start of recursive call 12: 4 dim-1 vars, End of recursive call: and 5 xjuncts. [2018-11-23 15:37:09,737 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:09,743 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 92 treesize of output 106 [2018-11-23 15:37:09,746 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 96 treesize of output 98 [2018-11-23 15:37:09,755 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 19 [2018-11-23 15:37:09,755 INFO L267 ElimStorePlain]: Start of recursive call 28: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:09,769 INFO L267 ElimStorePlain]: Start of recursive call 27: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:09,805 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:09,807 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:09,813 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 94 treesize of output 114 [2018-11-23 15:37:09,816 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 104 treesize of output 98 [2018-11-23 15:37:09,816 INFO L267 ElimStorePlain]: Start of recursive call 30: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:09,870 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 96 treesize of output 102 [2018-11-23 15:37:09,870 INFO L267 ElimStorePlain]: Start of recursive call 31: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:09,907 INFO L267 ElimStorePlain]: Start of recursive call 29: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:37:09,944 INFO L267 ElimStorePlain]: Start of recursive call 26: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:37:11,992 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:11,994 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:11,995 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:11,995 INFO L478 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 93 treesize of output 97 [2018-11-23 15:37:11,998 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 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 80 treesize of output 81 [2018-11-23 15:37:11,998 INFO L267 ElimStorePlain]: Start of recursive call 33: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:12,010 INFO L267 ElimStorePlain]: Start of recursive call 32: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:12,012 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:12,014 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:12,015 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:12,016 INFO L478 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 77 treesize of output 85 [2018-11-23 15:37:12,018 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 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 62 treesize of output 59 [2018-11-23 15:37:12,019 INFO L267 ElimStorePlain]: Start of recursive call 35: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:12,031 INFO L267 ElimStorePlain]: Start of recursive call 34: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:12,033 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:12,034 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:12,035 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:12,035 INFO L478 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 85 treesize of output 91 [2018-11-23 15:37:12,038 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 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 71 treesize of output 70 [2018-11-23 15:37:12,038 INFO L267 ElimStorePlain]: Start of recursive call 37: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:12,054 INFO L267 ElimStorePlain]: Start of recursive call 36: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:12,057 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:12,058 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:12,059 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:12,060 INFO L478 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 85 treesize of output 91 [2018-11-23 15:37:12,063 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 71 treesize of output 70 [2018-11-23 15:37:12,063 INFO L267 ElimStorePlain]: Start of recursive call 39: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:12,075 INFO L267 ElimStorePlain]: Start of recursive call 38: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:13,618 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:13,624 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:13,628 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:13,644 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 3 new quantified variables, introduced 7 case distinctions, treesize of input 95 treesize of output 129 [2018-11-23 15:37:13,660 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 5 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 104 treesize of output 111 [2018-11-23 15:37:13,661 INFO L267 ElimStorePlain]: Start of recursive call 41: End of recursive call: and 2 xjuncts. [2018-11-23 15:37:13,887 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:13,887 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 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 84 treesize of output 92 [2018-11-23 15:37:13,887 INFO L267 ElimStorePlain]: Start of recursive call 42: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:13,980 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:13,985 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 81 treesize of output 95 [2018-11-23 15:37:13,986 INFO L267 ElimStorePlain]: Start of recursive call 43: End of recursive call: and 2 xjuncts. [2018-11-23 15:37:14,080 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:14,090 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 2 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 4 case distinctions, treesize of input 74 treesize of output 94 [2018-11-23 15:37:14,090 INFO L267 ElimStorePlain]: Start of recursive call 44: End of recursive call: and 4 xjuncts. [2018-11-23 15:37:14,175 INFO L267 ElimStorePlain]: Start of recursive call 40: 4 dim-1 vars, End of recursive call: and 5 xjuncts. [2018-11-23 15:37:15,418 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:15,422 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:15,424 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:15,435 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 2 new quantified variables, introduced 4 case distinctions, treesize of input 92 treesize of output 107 [2018-11-23 15:37:15,440 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 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 100 treesize of output 101 [2018-11-23 15:37:15,440 INFO L267 ElimStorePlain]: Start of recursive call 46: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:15,490 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:15,505 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 2 stores, 3 select indices, 3 select index equivalence classes, 2 disjoint index pairs (out of 3 index pairs), introduced 4 new quantified variables, introduced 8 case distinctions, treesize of input 74 treesize of output 103 [2018-11-23 15:37:15,510 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 63 treesize of output 65 [2018-11-23 15:37:15,513 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 15 [2018-11-23 15:37:15,513 INFO L267 ElimStorePlain]: Start of recursive call 49: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:15,530 INFO L267 ElimStorePlain]: Start of recursive call 48: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:15,602 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 73 treesize of output 91 [2018-11-23 15:37:15,605 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 87 treesize of output 89 [2018-11-23 15:37:15,605 INFO L267 ElimStorePlain]: Start of recursive call 51: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:15,641 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 77 treesize of output 73 [2018-11-23 15:37:15,641 INFO L267 ElimStorePlain]: Start of recursive call 52: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:15,681 INFO L267 ElimStorePlain]: Start of recursive call 50: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:37:15,783 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 73 treesize of output 91 [2018-11-23 15:37:15,787 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 81 treesize of output 77 [2018-11-23 15:37:15,787 INFO L267 ElimStorePlain]: Start of recursive call 54: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:15,826 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 83 treesize of output 89 [2018-11-23 15:37:15,826 INFO L267 ElimStorePlain]: Start of recursive call 55: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:15,864 INFO L267 ElimStorePlain]: Start of recursive call 53: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:37:15,978 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 4 case distinctions, treesize of input 86 treesize of output 116 [2018-11-23 15:37:15,982 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 102 treesize of output 104 [2018-11-23 15:37:15,982 INFO L267 ElimStorePlain]: Start of recursive call 57: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:16,063 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 100 treesize of output 116 [2018-11-23 15:37:16,063 INFO L267 ElimStorePlain]: Start of recursive call 58: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:16,142 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 94 treesize of output 100 [2018-11-23 15:37:16,142 INFO L267 ElimStorePlain]: Start of recursive call 59: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:16,209 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 77 treesize of output 73 [2018-11-23 15:37:16,210 INFO L267 ElimStorePlain]: Start of recursive call 60: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:16,269 INFO L267 ElimStorePlain]: Start of recursive call 56: 4 dim-1 vars, End of recursive call: and 4 xjuncts. [2018-11-23 15:37:16,397 INFO L267 ElimStorePlain]: Start of recursive call 47: 1 dim-0 vars, 4 dim-1 vars, End of recursive call: and 9 xjuncts. [2018-11-23 15:37:16,548 INFO L267 ElimStorePlain]: Start of recursive call 45: 2 dim-1 vars, End of recursive call: and 10 xjuncts. [2018-11-23 15:37:18,028 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:18,032 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:18,033 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:18,045 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 2 new quantified variables, introduced 4 case distinctions, treesize of input 82 treesize of output 103 [2018-11-23 15:37:18,049 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 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 92 treesize of output 91 [2018-11-23 15:37:18,050 INFO L267 ElimStorePlain]: Start of recursive call 62: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:18,104 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:18,113 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 70 treesize of output 82 [2018-11-23 15:37:18,114 INFO L267 ElimStorePlain]: Start of recursive call 63: End of recursive call: and 2 xjuncts. [2018-11-23 15:37:18,161 INFO L267 ElimStorePlain]: Start of recursive call 61: 2 dim-1 vars, End of recursive call: and 3 xjuncts. [2018-11-23 15:37:18,166 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:18,171 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:18,172 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:18,184 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 2 new quantified variables, introduced 4 case distinctions, treesize of input 90 treesize of output 109 [2018-11-23 15:37:18,188 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 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 98 treesize of output 99 [2018-11-23 15:37:18,188 INFO L267 ElimStorePlain]: Start of recursive call 65: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:18,230 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:18,236 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 76 treesize of output 90 [2018-11-23 15:37:18,236 INFO L267 ElimStorePlain]: Start of recursive call 66: End of recursive call: and 2 xjuncts. [2018-11-23 15:37:18,272 INFO L267 ElimStorePlain]: Start of recursive call 64: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:37:19,229 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:19,237 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:19,242 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:19,260 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 3 new quantified variables, introduced 9 case distinctions, treesize of input 89 treesize of output 121 [2018-11-23 15:37:19,274 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 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 101 treesize of output 102 [2018-11-23 15:37:19,274 INFO L267 ElimStorePlain]: Start of recursive call 68: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:19,465 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:19,475 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 2 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 4 case distinctions, treesize of input 77 treesize of output 106 [2018-11-23 15:37:19,477 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 81 treesize of output 83 [2018-11-23 15:37:19,480 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 19 [2018-11-23 15:37:19,481 INFO L267 ElimStorePlain]: Start of recursive call 71: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:19,496 INFO L267 ElimStorePlain]: Start of recursive call 70: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:19,528 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:19,530 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:19,538 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 90 treesize of output 110 [2018-11-23 15:37:19,542 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 106 treesize of output 98 [2018-11-23 15:37:19,542 INFO L267 ElimStorePlain]: Start of recursive call 73: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:19,584 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 86 treesize of output 82 [2018-11-23 15:37:19,585 INFO L267 ElimStorePlain]: Start of recursive call 74: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:19,617 INFO L267 ElimStorePlain]: Start of recursive call 72: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:37:19,660 INFO L267 ElimStorePlain]: Start of recursive call 69: 2 dim-1 vars, End of recursive call: and 3 xjuncts. [2018-11-23 15:37:19,799 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:19,817 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 2 stores, 3 select indices, 3 select index equivalence classes, 2 disjoint index pairs (out of 3 index pairs), introduced 4 new quantified variables, introduced 8 case distinctions, treesize of input 74 treesize of output 103 [2018-11-23 15:37:19,828 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 79 treesize of output 99 [2018-11-23 15:37:19,832 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 95 treesize of output 97 [2018-11-23 15:37:19,832 INFO L267 ElimStorePlain]: Start of recursive call 77: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:19,877 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 77 treesize of output 73 [2018-11-23 15:37:19,877 INFO L267 ElimStorePlain]: Start of recursive call 78: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:19,909 INFO L267 ElimStorePlain]: Start of recursive call 76: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:37:20,003 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:20,004 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:20,010 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 81 treesize of output 101 [2018-11-23 15:37:20,012 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 91 treesize of output 77 [2018-11-23 15:37:20,013 INFO L267 ElimStorePlain]: Start of recursive call 80: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:20,070 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 83 treesize of output 89 [2018-11-23 15:37:20,071 INFO L267 ElimStorePlain]: Start of recursive call 81: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:20,106 INFO L267 ElimStorePlain]: Start of recursive call 79: 2 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 15:37:20,212 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 59 treesize of output 61 [2018-11-23 15:37:20,215 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 15 [2018-11-23 15:37:20,215 INFO L267 ElimStorePlain]: Start of recursive call 83: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:20,228 INFO L267 ElimStorePlain]: Start of recursive call 82: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:20,350 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 4 case distinctions, treesize of input 88 treesize of output 116 [2018-11-23 15:37:20,355 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 108 treesize of output 116 [2018-11-23 15:37:20,355 INFO L267 ElimStorePlain]: Start of recursive call 85: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:20,456 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 94 treesize of output 100 [2018-11-23 15:37:20,457 INFO L267 ElimStorePlain]: Start of recursive call 86: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:20,529 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 77 treesize of output 73 [2018-11-23 15:37:20,529 INFO L267 ElimStorePlain]: Start of recursive call 87: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:20,596 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 94 treesize of output 100 [2018-11-23 15:37:20,596 INFO L267 ElimStorePlain]: Start of recursive call 88: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:20,662 INFO L267 ElimStorePlain]: Start of recursive call 84: 4 dim-1 vars, End of recursive call: and 4 xjuncts. [2018-11-23 15:37:20,797 INFO L267 ElimStorePlain]: Start of recursive call 75: 1 dim-0 vars, 4 dim-1 vars, End of recursive call: and 9 xjuncts. [2018-11-23 15:37:21,049 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:21,054 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 75 treesize of output 89 [2018-11-23 15:37:21,054 INFO L267 ElimStorePlain]: Start of recursive call 89: End of recursive call: and 2 xjuncts. [2018-11-23 15:37:21,307 INFO L267 ElimStorePlain]: Start of recursive call 67: 4 dim-1 vars, End of recursive call: and 15 xjuncts. [2018-11-23 15:37:21,914 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:21,919 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:21,920 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:21,929 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 2 new quantified variables, introduced 4 case distinctions, treesize of input 82 treesize of output 103 [2018-11-23 15:37:21,932 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 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 92 treesize of output 91 [2018-11-23 15:37:21,932 INFO L267 ElimStorePlain]: Start of recursive call 91: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:21,971 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:21,976 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 70 treesize of output 82 [2018-11-23 15:37:21,976 INFO L267 ElimStorePlain]: Start of recursive call 92: End of recursive call: and 2 xjuncts. [2018-11-23 15:37:22,014 INFO L267 ElimStorePlain]: Start of recursive call 90: 2 dim-1 vars, End of recursive call: and 3 xjuncts. [2018-11-23 15:37:22,415 INFO L267 ElimStorePlain]: Start of recursive call 2: 4 dim-1 vars, 9 dim-2 vars, End of recursive call: and 9 xjuncts. [2018-11-23 15:37:22,535 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-2 vars, End of recursive call: 7 dim-0 vars, and 9 xjuncts. [2018-11-23 15:37:22,535 INFO L202 ElimStorePlain]: Needed 92 recursive calls to eliminate 4 variables, input treesize:132, output treesize:614 [2018-11-23 15:37:22,884 WARN L180 SmtUtils]: Spent 190.00 ms on a formula simplification. DAG size of input: 157 DAG size of output: 115 [2018-11-23 15:37:22,950 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:22,950 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:22,951 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:22,951 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:22,952 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:22,952 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 8 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 44 treesize of output 83 [2018-11-23 15:37:22,978 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:22,979 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:22,980 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:22,980 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:22,981 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:22,981 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 34 treesize of output 73 [2018-11-23 15:37:22,982 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:22,994 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:23,007 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2018-11-23 15:37:23,007 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 11 variables, input treesize:437, output treesize:109 [2018-11-23 15:37:23,076 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:23,079 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:23,080 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:23,081 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 15:37:23,085 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 4 select indices, 4 select index equivalence classes, 11 disjoint index pairs (out of 6 index pairs), introduced 5 new quantified variables, introduced 0 case distinctions, treesize of input 105 treesize of output 100 [2018-11-23 15:37:23,088 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 47 treesize of output 40 [2018-11-23 15:37:23,088 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:23,106 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 5 [2018-11-23 15:37:23,107 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:23,119 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 27 treesize of output 19 [2018-11-23 15:37:23,120 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:23,128 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 5 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 17 [2018-11-23 15:37:23,128 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2018-11-23 15:37:23,133 INFO L267 ElimStorePlain]: Start of recursive call 2: 4 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:23,140 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 15:37:23,140 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 5 variables, input treesize:113, output treesize:4 [2018-11-23 15:37:23,173 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 3 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 15:37:23,188 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 15:37:23,189 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [25, 25] total 44 [2018-11-23 15:37:23,189 INFO L459 AbstractCegarLoop]: Interpolant automaton has 44 states [2018-11-23 15:37:23,189 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 44 interpolants. [2018-11-23 15:37:23,190 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=130, Invalid=1747, Unknown=15, NotChecked=0, Total=1892 [2018-11-23 15:37:23,190 INFO L87 Difference]: Start difference. First operand 120 states and 142 transitions. Second operand 44 states. [2018-11-23 15:37:41,296 WARN L180 SmtUtils]: Spent 2.03 s on a formula simplification. DAG size of input: 39 DAG size of output: 37 [2018-11-23 15:37:55,611 WARN L180 SmtUtils]: Spent 240.00 ms on a formula simplification. DAG size of input: 149 DAG size of output: 142 [2018-11-23 15:38:12,736 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 15:38:12,736 INFO L93 Difference]: Finished difference Result 205 states and 262 transitions. [2018-11-23 15:38:12,736 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2018-11-23 15:38:12,736 INFO L78 Accepts]: Start accepts. Automaton has 44 states. Word has length 51 [2018-11-23 15:38:12,736 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 15:38:12,738 INFO L225 Difference]: With dead ends: 205 [2018-11-23 15:38:12,738 INFO L226 Difference]: Without dead ends: 202 [2018-11-23 15:38:12,740 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 96 GetRequests, 34 SyntacticMatches, 1 SemanticMatches, 61 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 788 ImplicationChecksByTransitivity, 39.4s TimeCoverageRelationStatistics Valid=285, Invalid=3604, Unknown=17, NotChecked=0, Total=3906 [2018-11-23 15:38:12,741 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 202 states. [2018-11-23 15:38:12,759 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 202 to 120. [2018-11-23 15:38:12,759 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 120 states. [2018-11-23 15:38:12,760 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 120 states to 120 states and 141 transitions. [2018-11-23 15:38:12,760 INFO L78 Accepts]: Start accepts. Automaton has 120 states and 141 transitions. Word has length 51 [2018-11-23 15:38:12,761 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 15:38:12,761 INFO L480 AbstractCegarLoop]: Abstraction has 120 states and 141 transitions. [2018-11-23 15:38:12,761 INFO L481 AbstractCegarLoop]: Interpolant automaton has 44 states. [2018-11-23 15:38:12,761 INFO L276 IsEmpty]: Start isEmpty. Operand 120 states and 141 transitions. [2018-11-23 15:38:12,762 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 56 [2018-11-23 15:38:12,762 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 15:38:12,762 INFO L402 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 15:38:12,762 INFO L423 AbstractCegarLoop]: === Iteration 4 === [failErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 15:38:12,763 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 15:38:12,763 INFO L82 PathProgramCache]: Analyzing trace with hash -571101056, now seen corresponding path program 1 times [2018-11-23 15:38:12,763 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 15:38:12,763 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 15:38:12,764 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 15:38:12,764 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 15:38:12,764 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 15:38:12,793 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 15:38:12,818 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 15:38:12,838 INFO L469 BasicCegarLoop]: Counterexample might be feasible ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] CALL call ULTIMATE.init(); VAL [|#NULL.base|=15, |#NULL.offset|=9, |old(#NULL.base)|=15, |old(#NULL.offset)|=9] [?] #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; VAL [|#NULL.base|=0, |#NULL.offset|=0, |old(#NULL.base)|=15, |old(#NULL.offset)|=9] [?] assume true; VAL [|#NULL.base|=0, |#NULL.offset|=0, |old(#NULL.base)|=15, |old(#NULL.offset)|=9] [?] RET #404#return; VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] CALL call #t~ret37 := main(); VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] call ~#p1~0.base, ~#p1~0.offset := #Ultimate.alloc(4);call ~#p2~0.base, ~#p2~0.offset := #Ultimate.alloc(4); VAL [|#NULL.base|=0, |#NULL.offset|=0, |main_~#p1~0.base|=10, |main_~#p1~0.offset|=0, |main_~#p2~0.base|=12, |main_~#p2~0.offset|=0] [?] CALL call #t~ret19.base, #t~ret19.offset := create_sll(~#p1~0.base, ~#p1~0.offset, ~#p2~0.base, ~#p2~0.offset); VAL [|#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0] [?] ~pp1.base, ~pp1.offset := #in~pp1.base, #in~pp1.offset;~pp2.base, ~pp2.offset := #in~pp2.base, #in~pp2.offset;call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4); VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [|#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [alloc_node_~ptr~0.base=14, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#t~malloc2.base|=14, |alloc_node_#t~malloc2.offset|=0] [?] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [alloc_node_~ptr~0.base=14, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#t~malloc2.base|=14, |alloc_node_#t~malloc2.offset|=0] [?] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4);call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4);#res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [alloc_node_~ptr~0.base=14, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#res.base|=14, |alloc_node_#res.offset|=0, |alloc_node_#t~malloc2.base|=14, |alloc_node_#t~malloc2.offset|=0] [?] assume true; VAL [alloc_node_~ptr~0.base=14, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#res.base|=14, |alloc_node_#res.offset|=0, |alloc_node_#t~malloc2.base|=14, |alloc_node_#t~malloc2.offset|=0] [?] RET #402#return; VAL [chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0, |chain_node_#t~ret3.base|=14, |chain_node_#t~ret3.offset|=0] [?] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4);call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4);havoc #t~mem4.base, #t~mem4.offset;call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [chain_node_~node~0.base=14, chain_node_~node~0.offset=0, chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] assume true; VAL [chain_node_~node~0.base=14, chain_node_~node~0.offset=0, chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] RET #384#return; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_#t~nondet5|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume !(0 != #t~nondet5);havoc #t~nondet5; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(#t~mem6.base, #t~mem6.offset, ~pp2.base, ~pp2.offset, 4);havoc #t~mem6.base, #t~mem6.offset; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_#t~nondet7|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume !(0 != #t~nondet7);havoc #t~nondet7; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(#t~mem8.base, #t~mem8.offset, ~pp1.base, ~pp1.offset, 4);havoc #t~mem8.base, #t~mem8.offset; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [|#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [alloc_node_~ptr~0.base=11, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#t~malloc2.base|=11, |alloc_node_#t~malloc2.offset|=0] [?] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [alloc_node_~ptr~0.base=11, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#t~malloc2.base|=11, |alloc_node_#t~malloc2.offset|=0] [?] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4);call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4);#res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [alloc_node_~ptr~0.base=11, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#res.base|=11, |alloc_node_#res.offset|=0, |alloc_node_#t~malloc2.base|=11, |alloc_node_#t~malloc2.offset|=0] [?] assume true; VAL [alloc_node_~ptr~0.base=11, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#res.base|=11, |alloc_node_#res.offset|=0, |alloc_node_#t~malloc2.base|=11, |alloc_node_#t~malloc2.offset|=0] [?] RET #402#return; VAL [chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0, |chain_node_#t~ret3.base|=11, |chain_node_#t~ret3.offset|=0] [?] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4);call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4);havoc #t~mem4.base, #t~mem4.offset;call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [chain_node_~node~0.base=11, chain_node_~node~0.offset=0, chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] assume true; VAL [chain_node_~node~0.base=11, chain_node_~node~0.offset=0, chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] RET #388#return; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_#t~nondet9|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume !(0 != #t~nondet9);havoc #t~nondet9; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] call #t~mem10.base, #t~mem10.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);#res.base, #res.offset := #t~mem10.base, #t~mem10.offset;havoc #t~mem10.base, #t~mem10.offset;call ULTIMATE.dealloc(~#list~0.base, ~#list~0.offset);havoc ~#list~0.base, ~#list~0.offset; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_#res.base|=11, |create_sll_#res.offset|=0] [?] assume true; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_#res.base|=11, |create_sll_#res.offset|=0] [?] RET #360#return; VAL [|#NULL.base|=0, |#NULL.offset|=0, |main_#t~ret19.base|=11, |main_#t~ret19.offset|=0, |main_~#p1~0.base|=10, |main_~#p1~0.offset|=0, |main_~#p2~0.base|=12, |main_~#p2~0.offset|=0] [?] ~list~1.base, ~list~1.offset := #t~ret19.base, #t~ret19.offset;havoc #t~ret19.base, #t~ret19.offset; VAL [main_~list~1.base=11, main_~list~1.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |main_~#p1~0.base|=10, |main_~#p1~0.offset|=0, |main_~#p2~0.base|=12, |main_~#p2~0.offset|=0] [?] goto; VAL [main_~list~1.base=11, main_~list~1.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |main_~#p1~0.base|=10, |main_~#p1~0.offset|=0, |main_~#p2~0.base|=12, |main_~#p2~0.offset|=0] [?] call #t~mem20.base, #t~mem20.offset := read~$Pointer$(~#p1~0.base, ~#p1~0.offset, 4);call #t~mem21.base, #t~mem21.offset := read~$Pointer$(~#p2~0.base, ~#p2~0.offset, 4); VAL [main_~list~1.base=11, main_~list~1.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |main_#t~mem20.base|=14, |main_#t~mem20.offset|=0, |main_#t~mem21.base|=14, |main_#t~mem21.offset|=0, |main_~#p1~0.base|=10, |main_~#p1~0.offset|=0, |main_~#p2~0.base|=12, |main_~#p2~0.offset|=0] [?] CALL call check_seq_next(#t~mem20.base, #t~mem20.offset, #t~mem21.base, #t~mem21.offset); VAL [|#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] ~beg.base, ~beg.offset := #in~beg.base, #in~beg.offset;~end.base, ~end.offset := #in~end.base, #in~end.offset; VAL [check_seq_next_~beg.base=14, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] assume !(~beg.base == 0 && ~beg.offset == 0); VAL [check_seq_next_~beg.base=14, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] goto; VAL [check_seq_next_~beg.base=14, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] assume !(~end.base == 0 && ~end.offset == 0); VAL [check_seq_next_~beg.base=14, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] goto; VAL [check_seq_next_~beg.base=14, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] call #t~mem15.base, #t~mem15.offset := read~$Pointer$(~beg.base, ~beg.offset, 4);~beg.base, ~beg.offset := #t~mem15.base, #t~mem15.offset;havoc #t~mem15.base, #t~mem15.offset; VAL [check_seq_next_~beg.base=0, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] assume !!(~end.base != ~beg.base || ~end.offset != ~beg.offset); VAL [check_seq_next_~beg.base=0, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] assume ~beg.base == 0 && ~beg.offset == 0; VAL [check_seq_next_~beg.base=0, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] CALL call fail(); VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] assume !false; VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] CALL call ULTIMATE.init(); VAL [#NULL.base=15, #NULL.offset=9, old(#NULL.base)=15, old(#NULL.offset)=9] [?] #NULL.base, #NULL.offset := 0, 0; [?] #valid := #valid[0 := 0]; VAL [#NULL.base=0, #NULL.offset=0, old(#NULL.base)=15, old(#NULL.offset)=9] [?] ensures true; VAL [#NULL.base=0, #NULL.offset=0, old(#NULL.base)=15, old(#NULL.offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL.base=0, #NULL.offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL.base=0, #NULL.offset=0] [L628] call ~#p1~0.base, ~#p1~0.offset := #Ultimate.alloc(4); [L628] call ~#p2~0.base, ~#p2~0.offset := #Ultimate.alloc(4); VAL [#NULL.base=0, #NULL.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0] [L629] CALL call #t~ret19.base, #t~ret19.offset := create_sll(~#p1~0.base, ~#p1~0.offset, ~#p2~0.base, ~#p2~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0] [L575-L589] ~pp1.base, ~pp1.offset := #in~pp1.base, #in~pp1.offset; [L575-L589] ~pp2.base, ~pp2.offset := #in~pp2.base, #in~pp2.offset; [L577] call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4); [L577] call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L579] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0] [L569-L574] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#NULL.base=0, #NULL.offset=0] [L562] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8); [L562] ~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L563-L564] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L565] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4); [L566] call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4); [L567] #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [#NULL.base=0, #NULL.offset=0, #res.base=14, #res.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L560-L568] ensures true; VAL [#NULL.base=0, #NULL.offset=0, #res.base=14, #res.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L571] RET call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, #t~ret3.base=14, #t~ret3.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset; [L571] havoc #t~ret3.base, #t~ret3.offset; [L572] call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4); [L572] call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4); [L572] havoc #t~mem4.base, #t~mem4.offset; [L573] call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=14, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L569-L574] ensures true; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=14, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L579] RET call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet5=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L578-L580] assume !(0 != #t~nondet5); [L580] havoc #t~nondet5; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L581] call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L581] call write~$Pointer$(#t~mem6.base, #t~mem6.offset, ~pp2.base, ~pp2.offset, 4); [L581] havoc #t~mem6.base, #t~mem6.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet7=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L582-L583] assume !(0 != #t~nondet7); [L582] havoc #t~nondet7; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L584] call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L584] call write~$Pointer$(#t~mem8.base, #t~mem8.offset, ~pp1.base, ~pp1.offset, 4); [L584] havoc #t~mem8.base, #t~mem8.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L586] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0] [L569-L574] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#NULL.base=0, #NULL.offset=0] [L562] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8); [L562] ~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L563-L564] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L565] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4); [L566] call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4); [L567] #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [#NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L560-L568] ensures true; VAL [#NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L571] RET call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, #t~ret3.base=11, #t~ret3.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset; [L571] havoc #t~ret3.base, #t~ret3.offset; [L572] call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4); [L572] call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4); [L572] havoc #t~mem4.base, #t~mem4.offset; [L573] call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=11, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L569-L574] ensures true; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=11, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L586] RET call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet9=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L585-L587] assume !(0 != #t~nondet9); [L587] havoc #t~nondet9; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L588] call #t~mem10.base, #t~mem10.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L588] #res.base, #res.offset := #t~mem10.base, #t~mem10.offset; [L588] havoc #t~mem10.base, #t~mem10.offset; [L577] call ULTIMATE.dealloc(~#list~0.base, ~#list~0.offset); [L588] havoc ~#list~0.base, ~#list~0.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L575-L589] ensures true; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L629] RET call #t~ret19.base, #t~ret19.offset := create_sll(~#p1~0.base, ~#p1~0.offset, ~#p2~0.base, ~#p2~0.offset); VAL [#NULL.base=0, #NULL.offset=0, #t~ret19.base=11, #t~ret19.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0] [L629] ~list~1.base, ~list~1.offset := #t~ret19.base, #t~ret19.offset; [L629] havoc #t~ret19.base, #t~ret19.offset; VAL [#NULL.base=0, #NULL.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0, ~list~1.base=11, ~list~1.offset=0] [L631] call #t~mem20.base, #t~mem20.offset := read~$Pointer$(~#p1~0.base, ~#p1~0.offset, 4); [L631] call #t~mem21.base, #t~mem21.offset := read~$Pointer$(~#p2~0.base, ~#p2~0.offset, 4); VAL [#NULL.base=0, #NULL.offset=0, #t~mem20.base=14, #t~mem20.offset=0, #t~mem21.base=14, #t~mem21.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0, ~list~1.base=11, ~list~1.offset=0] [L631] CALL call check_seq_next(#t~mem20.base, #t~mem20.offset, #t~mem21.base, #t~mem21.offset); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0] [L614-L619] ~beg.base, ~beg.offset := #in~beg.base, #in~beg.offset; [L614-L619] ~end.base, ~end.offset := #in~end.base, #in~end.offset; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L615] assume !(~beg.base == 0 && ~beg.offset == 0); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L616] assume !(~end.base == 0 && ~end.offset == 0); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L617] call #t~mem15.base, #t~mem15.offset := read~$Pointer$(~beg.base, ~beg.offset, 4); [L617] ~beg.base, ~beg.offset := #t~mem15.base, #t~mem15.offset; [L617] havoc #t~mem15.base, #t~mem15.offset; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L617-L618] assume !!(~end.base != ~beg.base || ~end.offset != ~beg.offset); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L618] assume ~beg.base == 0 && ~beg.offset == 0; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L618] CALL call fail(); VAL [#NULL.base=0, #NULL.offset=0] [L554] assert false; VAL [#NULL.base=0, #NULL.offset=0] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL.base=15, #NULL.offset=9, old(#NULL.base)=15, old(#NULL.offset)=9] [?] #NULL.base, #NULL.offset := 0, 0; [?] #valid := #valid[0 := 0]; VAL [#NULL.base=0, #NULL.offset=0, old(#NULL.base)=15, old(#NULL.offset)=9] [?] ensures true; VAL [#NULL.base=0, #NULL.offset=0, old(#NULL.base)=15, old(#NULL.offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL.base=0, #NULL.offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL.base=0, #NULL.offset=0] [L628] call ~#p1~0.base, ~#p1~0.offset := #Ultimate.alloc(4); [L628] call ~#p2~0.base, ~#p2~0.offset := #Ultimate.alloc(4); VAL [#NULL.base=0, #NULL.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0] [L629] CALL call #t~ret19.base, #t~ret19.offset := create_sll(~#p1~0.base, ~#p1~0.offset, ~#p2~0.base, ~#p2~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0] [L575-L589] ~pp1.base, ~pp1.offset := #in~pp1.base, #in~pp1.offset; [L575-L589] ~pp2.base, ~pp2.offset := #in~pp2.base, #in~pp2.offset; [L577] call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4); [L577] call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L579] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0] [L569-L574] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#NULL.base=0, #NULL.offset=0] [L562] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8); [L562] ~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L563-L564] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L565] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4); [L566] call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4); [L567] #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [#NULL.base=0, #NULL.offset=0, #res.base=14, #res.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L560-L568] ensures true; VAL [#NULL.base=0, #NULL.offset=0, #res.base=14, #res.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L571] RET call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, #t~ret3.base=14, #t~ret3.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset; [L571] havoc #t~ret3.base, #t~ret3.offset; [L572] call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4); [L572] call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4); [L572] havoc #t~mem4.base, #t~mem4.offset; [L573] call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=14, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L569-L574] ensures true; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=14, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L579] RET call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet5=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L578-L580] assume !(0 != #t~nondet5); [L580] havoc #t~nondet5; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L581] call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L581] call write~$Pointer$(#t~mem6.base, #t~mem6.offset, ~pp2.base, ~pp2.offset, 4); [L581] havoc #t~mem6.base, #t~mem6.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet7=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L582-L583] assume !(0 != #t~nondet7); [L582] havoc #t~nondet7; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L584] call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L584] call write~$Pointer$(#t~mem8.base, #t~mem8.offset, ~pp1.base, ~pp1.offset, 4); [L584] havoc #t~mem8.base, #t~mem8.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L586] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0] [L569-L574] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#NULL.base=0, #NULL.offset=0] [L562] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8); [L562] ~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L563-L564] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L565] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4); [L566] call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4); [L567] #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [#NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L560-L568] ensures true; VAL [#NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L571] RET call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, #t~ret3.base=11, #t~ret3.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset; [L571] havoc #t~ret3.base, #t~ret3.offset; [L572] call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4); [L572] call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4); [L572] havoc #t~mem4.base, #t~mem4.offset; [L573] call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=11, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L569-L574] ensures true; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=11, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L586] RET call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet9=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L585-L587] assume !(0 != #t~nondet9); [L587] havoc #t~nondet9; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L588] call #t~mem10.base, #t~mem10.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L588] #res.base, #res.offset := #t~mem10.base, #t~mem10.offset; [L588] havoc #t~mem10.base, #t~mem10.offset; [L577] call ULTIMATE.dealloc(~#list~0.base, ~#list~0.offset); [L588] havoc ~#list~0.base, ~#list~0.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L575-L589] ensures true; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L629] RET call #t~ret19.base, #t~ret19.offset := create_sll(~#p1~0.base, ~#p1~0.offset, ~#p2~0.base, ~#p2~0.offset); VAL [#NULL.base=0, #NULL.offset=0, #t~ret19.base=11, #t~ret19.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0] [L629] ~list~1.base, ~list~1.offset := #t~ret19.base, #t~ret19.offset; [L629] havoc #t~ret19.base, #t~ret19.offset; VAL [#NULL.base=0, #NULL.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0, ~list~1.base=11, ~list~1.offset=0] [L631] call #t~mem20.base, #t~mem20.offset := read~$Pointer$(~#p1~0.base, ~#p1~0.offset, 4); [L631] call #t~mem21.base, #t~mem21.offset := read~$Pointer$(~#p2~0.base, ~#p2~0.offset, 4); VAL [#NULL.base=0, #NULL.offset=0, #t~mem20.base=14, #t~mem20.offset=0, #t~mem21.base=14, #t~mem21.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0, ~list~1.base=11, ~list~1.offset=0] [L631] CALL call check_seq_next(#t~mem20.base, #t~mem20.offset, #t~mem21.base, #t~mem21.offset); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0] [L614-L619] ~beg.base, ~beg.offset := #in~beg.base, #in~beg.offset; [L614-L619] ~end.base, ~end.offset := #in~end.base, #in~end.offset; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L615] assume !(~beg.base == 0 && ~beg.offset == 0); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L616] assume !(~end.base == 0 && ~end.offset == 0); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L617] call #t~mem15.base, #t~mem15.offset := read~$Pointer$(~beg.base, ~beg.offset, 4); [L617] ~beg.base, ~beg.offset := #t~mem15.base, #t~mem15.offset; [L617] havoc #t~mem15.base, #t~mem15.offset; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L617-L618] assume !!(~end.base != ~beg.base || ~end.offset != ~beg.offset); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L618] assume ~beg.base == 0 && ~beg.offset == 0; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L618] CALL call fail(); VAL [#NULL.base=0, #NULL.offset=0] [L554] assert false; VAL [#NULL.base=0, #NULL.offset=0] [?] CALL call ULTIMATE.init(); VAL [#NULL!base=15, #NULL!offset=9, old(#NULL!base)=15, old(#NULL!offset)=9] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; VAL [#NULL!base=0, #NULL!offset=0, old(#NULL!base)=15, old(#NULL!offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0, #NULL!offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL!base=0, #NULL!offset=0] [L628] FCALL call ~#p1~0 := #Ultimate.alloc(4); [L628] FCALL call ~#p2~0 := #Ultimate.alloc(4); VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] CALL call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0] [L575-L589] ~pp1 := #in~pp1; [L575-L589] ~pp2 := #in~pp2; [L577] FCALL call ~#list~0 := #Ultimate.alloc(4); [L577] FCALL call write~init~$Pointer$({ base: 0, offset: 0 }, ~#list~0, 4); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L579] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=14, #res!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=14, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=14, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L579] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet5=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L578-L580] COND TRUE !(0 != #t~nondet5) [L580] havoc #t~nondet5; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L581] FCALL call #t~mem6 := read~$Pointer$(~#list~0, 4); [L581] FCALL call write~$Pointer$(#t~mem6, ~pp2, 4); [L581] havoc #t~mem6; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet7=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582-L583] COND TRUE !(0 != #t~nondet7) [L582] havoc #t~nondet7; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L584] FCALL call #t~mem8 := read~$Pointer$(~#list~0, 4); [L584] FCALL call write~$Pointer$(#t~mem8, ~pp1, 4); [L584] havoc #t~mem8; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L586] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=11, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=11, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L586] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet9=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L585-L587] COND TRUE !(0 != #t~nondet9) [L587] havoc #t~nondet9; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L588] FCALL call #t~mem10 := read~$Pointer$(~#list~0, 4); [L588] #res := #t~mem10; [L588] havoc #t~mem10; [L577] FCALL call ULTIMATE.dealloc(~#list~0); [L588] havoc ~#list~0; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L629] RET call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#NULL!base=0, #NULL!offset=0, #t~ret19!base=11, #t~ret19!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] ~list~1 := #t~ret19; [L629] havoc #t~ret19; VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] FCALL call #t~mem20 := read~$Pointer$(~#p1~0, 4); [L631] FCALL call #t~mem21 := read~$Pointer$(~#p2~0, 4); VAL [#NULL!base=0, #NULL!offset=0, #t~mem20!base=14, #t~mem20!offset=0, #t~mem21!base=14, #t~mem21!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] CALL call check_seq_next(#t~mem20, #t~mem21); VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0] [L614-L619] ~beg := #in~beg; [L614-L619] ~end := #in~end; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L615] COND FALSE !(~beg == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L616] COND FALSE !(~end == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617] FCALL call #t~mem15 := read~$Pointer$({ base: ~beg!base, offset: ~beg!offset }, 4); [L617] ~beg := #t~mem15; [L617] havoc #t~mem15; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617-L618] COND FALSE !(!(~end != ~beg)) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] COND TRUE ~beg == { base: 0, offset: 0 } VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] CALL call fail(); VAL [#NULL!base=0, #NULL!offset=0] [L554] assert false; VAL [#NULL!base=0, #NULL!offset=0] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL!base=15, #NULL!offset=9, old(#NULL!base)=15, old(#NULL!offset)=9] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; VAL [#NULL!base=0, #NULL!offset=0, old(#NULL!base)=15, old(#NULL!offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0, #NULL!offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL!base=0, #NULL!offset=0] [L628] FCALL call ~#p1~0 := #Ultimate.alloc(4); [L628] FCALL call ~#p2~0 := #Ultimate.alloc(4); VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] CALL call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0] [L575-L589] ~pp1 := #in~pp1; [L575-L589] ~pp2 := #in~pp2; [L577] FCALL call ~#list~0 := #Ultimate.alloc(4); [L577] FCALL call write~init~$Pointer$({ base: 0, offset: 0 }, ~#list~0, 4); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L579] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=14, #res!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=14, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=14, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L579] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet5=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L578-L580] COND TRUE !(0 != #t~nondet5) [L580] havoc #t~nondet5; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L581] FCALL call #t~mem6 := read~$Pointer$(~#list~0, 4); [L581] FCALL call write~$Pointer$(#t~mem6, ~pp2, 4); [L581] havoc #t~mem6; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet7=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582-L583] COND TRUE !(0 != #t~nondet7) [L582] havoc #t~nondet7; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L584] FCALL call #t~mem8 := read~$Pointer$(~#list~0, 4); [L584] FCALL call write~$Pointer$(#t~mem8, ~pp1, 4); [L584] havoc #t~mem8; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L586] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=11, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=11, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L586] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet9=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L585-L587] COND TRUE !(0 != #t~nondet9) [L587] havoc #t~nondet9; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L588] FCALL call #t~mem10 := read~$Pointer$(~#list~0, 4); [L588] #res := #t~mem10; [L588] havoc #t~mem10; [L577] FCALL call ULTIMATE.dealloc(~#list~0); [L588] havoc ~#list~0; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L629] RET call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#NULL!base=0, #NULL!offset=0, #t~ret19!base=11, #t~ret19!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] ~list~1 := #t~ret19; [L629] havoc #t~ret19; VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] FCALL call #t~mem20 := read~$Pointer$(~#p1~0, 4); [L631] FCALL call #t~mem21 := read~$Pointer$(~#p2~0, 4); VAL [#NULL!base=0, #NULL!offset=0, #t~mem20!base=14, #t~mem20!offset=0, #t~mem21!base=14, #t~mem21!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] CALL call check_seq_next(#t~mem20, #t~mem21); VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0] [L614-L619] ~beg := #in~beg; [L614-L619] ~end := #in~end; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L615] COND FALSE !(~beg == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L616] COND FALSE !(~end == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617] FCALL call #t~mem15 := read~$Pointer$({ base: ~beg!base, offset: ~beg!offset }, 4); [L617] ~beg := #t~mem15; [L617] havoc #t~mem15; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617-L618] COND FALSE !(!(~end != ~beg)) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] COND TRUE ~beg == { base: 0, offset: 0 } VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] CALL call fail(); VAL [#NULL!base=0, #NULL!offset=0] [L554] assert false; VAL [#NULL!base=0, #NULL!offset=0] [?] CALL call ULTIMATE.init(); VAL [#NULL!base=15, #NULL!offset=9, old(#NULL!base)=15, old(#NULL!offset)=9] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; VAL [#NULL!base=0, #NULL!offset=0, old(#NULL!base)=15, old(#NULL!offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0, #NULL!offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL!base=0, #NULL!offset=0] [L628] FCALL call ~#p1~0 := #Ultimate.alloc(4); [L628] FCALL call ~#p2~0 := #Ultimate.alloc(4); VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] CALL call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0] [L575-L589] ~pp1 := #in~pp1; [L575-L589] ~pp2 := #in~pp2; [L577] FCALL call ~#list~0 := #Ultimate.alloc(4); [L577] FCALL call write~init~$Pointer$({ base: 0, offset: 0 }, ~#list~0, 4); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L579] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=14, #res!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=14, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=14, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L579] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet5=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L578-L580] COND TRUE !(0 != #t~nondet5) [L580] havoc #t~nondet5; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L581] FCALL call #t~mem6 := read~$Pointer$(~#list~0, 4); [L581] FCALL call write~$Pointer$(#t~mem6, ~pp2, 4); [L581] havoc #t~mem6; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet7=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582-L583] COND TRUE !(0 != #t~nondet7) [L582] havoc #t~nondet7; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L584] FCALL call #t~mem8 := read~$Pointer$(~#list~0, 4); [L584] FCALL call write~$Pointer$(#t~mem8, ~pp1, 4); [L584] havoc #t~mem8; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L586] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=11, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=11, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L586] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet9=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L585-L587] COND TRUE !(0 != #t~nondet9) [L587] havoc #t~nondet9; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L588] FCALL call #t~mem10 := read~$Pointer$(~#list~0, 4); [L588] #res := #t~mem10; [L588] havoc #t~mem10; [L577] FCALL call ULTIMATE.dealloc(~#list~0); [L588] havoc ~#list~0; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L629] RET call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#NULL!base=0, #NULL!offset=0, #t~ret19!base=11, #t~ret19!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] ~list~1 := #t~ret19; [L629] havoc #t~ret19; VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] FCALL call #t~mem20 := read~$Pointer$(~#p1~0, 4); [L631] FCALL call #t~mem21 := read~$Pointer$(~#p2~0, 4); VAL [#NULL!base=0, #NULL!offset=0, #t~mem20!base=14, #t~mem20!offset=0, #t~mem21!base=14, #t~mem21!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] CALL call check_seq_next(#t~mem20, #t~mem21); VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0] [L614-L619] ~beg := #in~beg; [L614-L619] ~end := #in~end; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L615] COND FALSE !(~beg == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L616] COND FALSE !(~end == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617] FCALL call #t~mem15 := read~$Pointer$({ base: ~beg!base, offset: ~beg!offset }, 4); [L617] ~beg := #t~mem15; [L617] havoc #t~mem15; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617-L618] COND FALSE !(!(~end != ~beg)) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] COND TRUE ~beg == { base: 0, offset: 0 } VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] CALL call fail(); VAL [#NULL!base=0, #NULL!offset=0] [L554] assert false; VAL [#NULL!base=0, #NULL!offset=0] ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL!base=15, #NULL!offset=9, old(#NULL!base)=15, old(#NULL!offset)=9] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; VAL [#NULL!base=0, #NULL!offset=0, old(#NULL!base)=15, old(#NULL!offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0, #NULL!offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL!base=0, #NULL!offset=0] [L628] FCALL call ~#p1~0 := #Ultimate.alloc(4); [L628] FCALL call ~#p2~0 := #Ultimate.alloc(4); VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] CALL call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0] [L575-L589] ~pp1 := #in~pp1; [L575-L589] ~pp2 := #in~pp2; [L577] FCALL call ~#list~0 := #Ultimate.alloc(4); [L577] FCALL call write~init~$Pointer$({ base: 0, offset: 0 }, ~#list~0, 4); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L579] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=14, #res!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=14, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=14, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L579] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet5=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L578-L580] COND TRUE !(0 != #t~nondet5) [L580] havoc #t~nondet5; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L581] FCALL call #t~mem6 := read~$Pointer$(~#list~0, 4); [L581] FCALL call write~$Pointer$(#t~mem6, ~pp2, 4); [L581] havoc #t~mem6; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet7=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582-L583] COND TRUE !(0 != #t~nondet7) [L582] havoc #t~nondet7; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L584] FCALL call #t~mem8 := read~$Pointer$(~#list~0, 4); [L584] FCALL call write~$Pointer$(#t~mem8, ~pp1, 4); [L584] havoc #t~mem8; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L586] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=11, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=11, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L586] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet9=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L585-L587] COND TRUE !(0 != #t~nondet9) [L587] havoc #t~nondet9; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L588] FCALL call #t~mem10 := read~$Pointer$(~#list~0, 4); [L588] #res := #t~mem10; [L588] havoc #t~mem10; [L577] FCALL call ULTIMATE.dealloc(~#list~0); [L588] havoc ~#list~0; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L629] RET call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#NULL!base=0, #NULL!offset=0, #t~ret19!base=11, #t~ret19!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] ~list~1 := #t~ret19; [L629] havoc #t~ret19; VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] FCALL call #t~mem20 := read~$Pointer$(~#p1~0, 4); [L631] FCALL call #t~mem21 := read~$Pointer$(~#p2~0, 4); VAL [#NULL!base=0, #NULL!offset=0, #t~mem20!base=14, #t~mem20!offset=0, #t~mem21!base=14, #t~mem21!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] CALL call check_seq_next(#t~mem20, #t~mem21); VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0] [L614-L619] ~beg := #in~beg; [L614-L619] ~end := #in~end; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L615] COND FALSE !(~beg == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L616] COND FALSE !(~end == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617] FCALL call #t~mem15 := read~$Pointer$({ base: ~beg!base, offset: ~beg!offset }, 4); [L617] ~beg := #t~mem15; [L617] havoc #t~mem15; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617-L618] COND FALSE !(!(~end != ~beg)) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] COND TRUE ~beg == { base: 0, offset: 0 } VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] CALL call fail(); VAL [#NULL!base=0, #NULL!offset=0] [L554] assert false; VAL [#NULL!base=0, #NULL!offset=0] [L628] const struct node *p1, *p2; VAL [p1={10:0}, p2={12:0}] [L629] CALL, EXPR create_sll(&p1, &p2) VAL [pp1={10:0}, pp2={12:0}] [L577] struct node *list = ((void *)0); VAL [list={13:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L579] CALL chain_node(&list) VAL [ppnode={13:0}] [L571] CALL, EXPR alloc_node() [L562] struct node *ptr = malloc(sizeof *ptr); VAL [malloc(sizeof *ptr)={14:0}, ptr={14:0}] [L563] COND FALSE !(!ptr) VAL [malloc(sizeof *ptr)={14:0}, ptr={14:0}] [L565] ptr->next = ((void *)0) [L566] ptr->prev = ((void *)0) [L567] return ptr; VAL [\result={14:0}, malloc(sizeof *ptr)={14:0}, ptr={14:0}] [L571] RET, EXPR alloc_node() VAL [alloc_node()={14:0}, ppnode={13:0}, ppnode={13:0}] [L571] struct node *node = alloc_node(); [L572] EXPR \read(**ppnode) [L572] node->next = *ppnode [L573] *ppnode = node VAL [node={14:0}, ppnode={13:0}, ppnode={13:0}] [L579] RET chain_node(&list) VAL [list={13:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L580] COND FALSE !(__VERIFIER_nondet_int()) [L581] EXPR \read(*list) [L581] *pp2 = list [L582] COND FALSE !(__VERIFIER_nondet_int()) [L584] EXPR \read(*list) [L584] *pp1 = list [L586] CALL chain_node(&list) VAL [ppnode={13:0}] [L571] CALL, EXPR alloc_node() [L562] struct node *ptr = malloc(sizeof *ptr); VAL [malloc(sizeof *ptr)={11:0}, ptr={11:0}] [L563] COND FALSE !(!ptr) VAL [malloc(sizeof *ptr)={11:0}, ptr={11:0}] [L565] ptr->next = ((void *)0) [L566] ptr->prev = ((void *)0) [L567] return ptr; VAL [\result={11:0}, malloc(sizeof *ptr)={11:0}, ptr={11:0}] [L571] RET, EXPR alloc_node() VAL [alloc_node()={11:0}, ppnode={13:0}, ppnode={13:0}] [L571] struct node *node = alloc_node(); [L572] EXPR \read(**ppnode) [L572] node->next = *ppnode [L573] *ppnode = node VAL [node={11:0}, ppnode={13:0}, ppnode={13:0}] [L586] RET chain_node(&list) VAL [list={13:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L587] COND FALSE !(__VERIFIER_nondet_int()) [L588] EXPR \read(*list) [L588] return list; [L577] struct node *list = ((void *)0); [L588] return list; VAL [\result={11:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L629] RET, EXPR create_sll(&p1, &p2) VAL [create_sll(&p1, &p2)={11:0}, p1={10:0}, p2={12:0}] [L629] struct node *list = create_sll(&p1, &p2); [L631] EXPR \read(*p1) [L631] EXPR \read(*p2) VAL [\read(*p1)={14:0}, \read(*p2)={14:0}, list={11:0}, p1={10:0}, p2={12:0}] [L631] CALL check_seq_next(p1, p2) VAL [beg={14:0}, end={14:0}] [L615] COND FALSE !(!(beg)) VAL [beg={14:0}, beg={14:0}, end={14:0}, end={14:0}] [L616] COND FALSE !(!(end)) VAL [beg={14:0}, beg={14:0}, end={14:0}, end={14:0}] [L617] EXPR beg->next [L617] beg = beg->next [L617] COND TRUE end != beg VAL [beg={0:0}, beg={14:0}, end={14:0}, end={14:0}] [L618] COND TRUE !(beg) VAL [beg={14:0}, beg={0:0}, end={14:0}, end={14:0}] [L618] CALL fail() [L554] __VERIFIER_error() ----- [2018-11-23 15:38:12,937 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 23.11 03:38:12 BoogieIcfgContainer [2018-11-23 15:38:12,937 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2018-11-23 15:38:12,937 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2018-11-23 15:38:12,943 INFO L271 PluginConnector]: Initializing Witness Printer... [2018-11-23 15:38:12,943 INFO L276 PluginConnector]: Witness Printer initialized [2018-11-23 15:38:12,944 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 03:36:28" (3/4) ... [2018-11-23 15:38:12,946 INFO L138 WitnessPrinter]: Generating witness for reachability counterexample ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] CALL call ULTIMATE.init(); VAL [|#NULL.base|=15, |#NULL.offset|=9, |old(#NULL.base)|=15, |old(#NULL.offset)|=9] [?] #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; VAL [|#NULL.base|=0, |#NULL.offset|=0, |old(#NULL.base)|=15, |old(#NULL.offset)|=9] [?] assume true; VAL [|#NULL.base|=0, |#NULL.offset|=0, |old(#NULL.base)|=15, |old(#NULL.offset)|=9] [?] RET #404#return; VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] CALL call #t~ret37 := main(); VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] call ~#p1~0.base, ~#p1~0.offset := #Ultimate.alloc(4);call ~#p2~0.base, ~#p2~0.offset := #Ultimate.alloc(4); VAL [|#NULL.base|=0, |#NULL.offset|=0, |main_~#p1~0.base|=10, |main_~#p1~0.offset|=0, |main_~#p2~0.base|=12, |main_~#p2~0.offset|=0] [?] CALL call #t~ret19.base, #t~ret19.offset := create_sll(~#p1~0.base, ~#p1~0.offset, ~#p2~0.base, ~#p2~0.offset); VAL [|#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0] [?] ~pp1.base, ~pp1.offset := #in~pp1.base, #in~pp1.offset;~pp2.base, ~pp2.offset := #in~pp2.base, #in~pp2.offset;call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4);call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4); VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [|#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [alloc_node_~ptr~0.base=14, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#t~malloc2.base|=14, |alloc_node_#t~malloc2.offset|=0] [?] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [alloc_node_~ptr~0.base=14, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#t~malloc2.base|=14, |alloc_node_#t~malloc2.offset|=0] [?] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4);call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4);#res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [alloc_node_~ptr~0.base=14, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#res.base|=14, |alloc_node_#res.offset|=0, |alloc_node_#t~malloc2.base|=14, |alloc_node_#t~malloc2.offset|=0] [?] assume true; VAL [alloc_node_~ptr~0.base=14, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#res.base|=14, |alloc_node_#res.offset|=0, |alloc_node_#t~malloc2.base|=14, |alloc_node_#t~malloc2.offset|=0] [?] RET #402#return; VAL [chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0, |chain_node_#t~ret3.base|=14, |chain_node_#t~ret3.offset|=0] [?] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4);call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4);havoc #t~mem4.base, #t~mem4.offset;call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [chain_node_~node~0.base=14, chain_node_~node~0.offset=0, chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] assume true; VAL [chain_node_~node~0.base=14, chain_node_~node~0.offset=0, chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] RET #384#return; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_#t~nondet5|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume !(0 != #t~nondet5);havoc #t~nondet5; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(#t~mem6.base, #t~mem6.offset, ~pp2.base, ~pp2.offset, 4);havoc #t~mem6.base, #t~mem6.offset; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_#t~nondet7|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume !(0 != #t~nondet7);havoc #t~nondet7; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);call write~$Pointer$(#t~mem8.base, #t~mem8.offset, ~pp1.base, ~pp1.offset, 4);havoc #t~mem8.base, #t~mem8.offset; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [|#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8);~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [alloc_node_~ptr~0.base=11, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#t~malloc2.base|=11, |alloc_node_#t~malloc2.offset|=0] [?] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [alloc_node_~ptr~0.base=11, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#t~malloc2.base|=11, |alloc_node_#t~malloc2.offset|=0] [?] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4);call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4);#res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [alloc_node_~ptr~0.base=11, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#res.base|=11, |alloc_node_#res.offset|=0, |alloc_node_#t~malloc2.base|=11, |alloc_node_#t~malloc2.offset|=0] [?] assume true; VAL [alloc_node_~ptr~0.base=11, alloc_node_~ptr~0.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |alloc_node_#res.base|=11, |alloc_node_#res.offset|=0, |alloc_node_#t~malloc2.base|=11, |alloc_node_#t~malloc2.offset|=0] [?] RET #402#return; VAL [chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0, |chain_node_#t~ret3.base|=11, |chain_node_#t~ret3.offset|=0] [?] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset;havoc #t~ret3.base, #t~ret3.offset;call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4);call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4);havoc #t~mem4.base, #t~mem4.offset;call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [chain_node_~node~0.base=11, chain_node_~node~0.offset=0, chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] assume true; VAL [chain_node_~node~0.base=11, chain_node_~node~0.offset=0, chain_node_~ppnode.base=13, chain_node_~ppnode.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |chain_node_#in~ppnode.base|=13, |chain_node_#in~ppnode.offset|=0] [?] RET #388#return; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_#t~nondet9|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] assume !(0 != #t~nondet9);havoc #t~nondet9; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_~#list~0.base|=13, |create_sll_~#list~0.offset|=0] [?] call #t~mem10.base, #t~mem10.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4);#res.base, #res.offset := #t~mem10.base, #t~mem10.offset;havoc #t~mem10.base, #t~mem10.offset;call ULTIMATE.dealloc(~#list~0.base, ~#list~0.offset);havoc ~#list~0.base, ~#list~0.offset; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_#res.base|=11, |create_sll_#res.offset|=0] [?] assume true; VAL [create_sll_~pp1.base=10, create_sll_~pp1.offset=0, create_sll_~pp2.base=12, create_sll_~pp2.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |create_sll_#in~pp1.base|=10, |create_sll_#in~pp1.offset|=0, |create_sll_#in~pp2.base|=12, |create_sll_#in~pp2.offset|=0, |create_sll_#res.base|=11, |create_sll_#res.offset|=0] [?] RET #360#return; VAL [|#NULL.base|=0, |#NULL.offset|=0, |main_#t~ret19.base|=11, |main_#t~ret19.offset|=0, |main_~#p1~0.base|=10, |main_~#p1~0.offset|=0, |main_~#p2~0.base|=12, |main_~#p2~0.offset|=0] [?] ~list~1.base, ~list~1.offset := #t~ret19.base, #t~ret19.offset;havoc #t~ret19.base, #t~ret19.offset; VAL [main_~list~1.base=11, main_~list~1.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |main_~#p1~0.base|=10, |main_~#p1~0.offset|=0, |main_~#p2~0.base|=12, |main_~#p2~0.offset|=0] [?] goto; VAL [main_~list~1.base=11, main_~list~1.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |main_~#p1~0.base|=10, |main_~#p1~0.offset|=0, |main_~#p2~0.base|=12, |main_~#p2~0.offset|=0] [?] call #t~mem20.base, #t~mem20.offset := read~$Pointer$(~#p1~0.base, ~#p1~0.offset, 4);call #t~mem21.base, #t~mem21.offset := read~$Pointer$(~#p2~0.base, ~#p2~0.offset, 4); VAL [main_~list~1.base=11, main_~list~1.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |main_#t~mem20.base|=14, |main_#t~mem20.offset|=0, |main_#t~mem21.base|=14, |main_#t~mem21.offset|=0, |main_~#p1~0.base|=10, |main_~#p1~0.offset|=0, |main_~#p2~0.base|=12, |main_~#p2~0.offset|=0] [?] CALL call check_seq_next(#t~mem20.base, #t~mem20.offset, #t~mem21.base, #t~mem21.offset); VAL [|#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] ~beg.base, ~beg.offset := #in~beg.base, #in~beg.offset;~end.base, ~end.offset := #in~end.base, #in~end.offset; VAL [check_seq_next_~beg.base=14, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] assume !(~beg.base == 0 && ~beg.offset == 0); VAL [check_seq_next_~beg.base=14, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] goto; VAL [check_seq_next_~beg.base=14, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] assume !(~end.base == 0 && ~end.offset == 0); VAL [check_seq_next_~beg.base=14, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] goto; VAL [check_seq_next_~beg.base=14, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] call #t~mem15.base, #t~mem15.offset := read~$Pointer$(~beg.base, ~beg.offset, 4);~beg.base, ~beg.offset := #t~mem15.base, #t~mem15.offset;havoc #t~mem15.base, #t~mem15.offset; VAL [check_seq_next_~beg.base=0, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] assume !!(~end.base != ~beg.base || ~end.offset != ~beg.offset); VAL [check_seq_next_~beg.base=0, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] assume ~beg.base == 0 && ~beg.offset == 0; VAL [check_seq_next_~beg.base=0, check_seq_next_~beg.offset=0, check_seq_next_~end.base=14, check_seq_next_~end.offset=0, |#NULL.base|=0, |#NULL.offset|=0, |check_seq_next_#in~beg.base|=14, |check_seq_next_#in~beg.offset|=0, |check_seq_next_#in~end.base|=14, |check_seq_next_#in~end.offset|=0] [?] CALL call fail(); VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] assume !false; VAL [|#NULL.base|=0, |#NULL.offset|=0] [?] CALL call ULTIMATE.init(); VAL [#NULL.base=15, #NULL.offset=9, old(#NULL.base)=15, old(#NULL.offset)=9] [?] #NULL.base, #NULL.offset := 0, 0; [?] #valid := #valid[0 := 0]; VAL [#NULL.base=0, #NULL.offset=0, old(#NULL.base)=15, old(#NULL.offset)=9] [?] ensures true; VAL [#NULL.base=0, #NULL.offset=0, old(#NULL.base)=15, old(#NULL.offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL.base=0, #NULL.offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL.base=0, #NULL.offset=0] [L628] call ~#p1~0.base, ~#p1~0.offset := #Ultimate.alloc(4); [L628] call ~#p2~0.base, ~#p2~0.offset := #Ultimate.alloc(4); VAL [#NULL.base=0, #NULL.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0] [L629] CALL call #t~ret19.base, #t~ret19.offset := create_sll(~#p1~0.base, ~#p1~0.offset, ~#p2~0.base, ~#p2~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0] [L575-L589] ~pp1.base, ~pp1.offset := #in~pp1.base, #in~pp1.offset; [L575-L589] ~pp2.base, ~pp2.offset := #in~pp2.base, #in~pp2.offset; [L577] call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4); [L577] call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L579] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0] [L569-L574] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#NULL.base=0, #NULL.offset=0] [L562] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8); [L562] ~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L563-L564] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L565] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4); [L566] call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4); [L567] #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [#NULL.base=0, #NULL.offset=0, #res.base=14, #res.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L560-L568] ensures true; VAL [#NULL.base=0, #NULL.offset=0, #res.base=14, #res.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L571] RET call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, #t~ret3.base=14, #t~ret3.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset; [L571] havoc #t~ret3.base, #t~ret3.offset; [L572] call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4); [L572] call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4); [L572] havoc #t~mem4.base, #t~mem4.offset; [L573] call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=14, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L569-L574] ensures true; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=14, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L579] RET call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet5=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L578-L580] assume !(0 != #t~nondet5); [L580] havoc #t~nondet5; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L581] call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L581] call write~$Pointer$(#t~mem6.base, #t~mem6.offset, ~pp2.base, ~pp2.offset, 4); [L581] havoc #t~mem6.base, #t~mem6.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet7=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L582-L583] assume !(0 != #t~nondet7); [L582] havoc #t~nondet7; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L584] call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L584] call write~$Pointer$(#t~mem8.base, #t~mem8.offset, ~pp1.base, ~pp1.offset, 4); [L584] havoc #t~mem8.base, #t~mem8.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L586] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0] [L569-L574] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#NULL.base=0, #NULL.offset=0] [L562] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8); [L562] ~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L563-L564] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L565] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4); [L566] call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4); [L567] #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [#NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L560-L568] ensures true; VAL [#NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L571] RET call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, #t~ret3.base=11, #t~ret3.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset; [L571] havoc #t~ret3.base, #t~ret3.offset; [L572] call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4); [L572] call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4); [L572] havoc #t~mem4.base, #t~mem4.offset; [L573] call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=11, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L569-L574] ensures true; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=11, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L586] RET call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet9=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L585-L587] assume !(0 != #t~nondet9); [L587] havoc #t~nondet9; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L588] call #t~mem10.base, #t~mem10.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L588] #res.base, #res.offset := #t~mem10.base, #t~mem10.offset; [L588] havoc #t~mem10.base, #t~mem10.offset; [L577] call ULTIMATE.dealloc(~#list~0.base, ~#list~0.offset); [L588] havoc ~#list~0.base, ~#list~0.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L575-L589] ensures true; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L629] RET call #t~ret19.base, #t~ret19.offset := create_sll(~#p1~0.base, ~#p1~0.offset, ~#p2~0.base, ~#p2~0.offset); VAL [#NULL.base=0, #NULL.offset=0, #t~ret19.base=11, #t~ret19.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0] [L629] ~list~1.base, ~list~1.offset := #t~ret19.base, #t~ret19.offset; [L629] havoc #t~ret19.base, #t~ret19.offset; VAL [#NULL.base=0, #NULL.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0, ~list~1.base=11, ~list~1.offset=0] [L631] call #t~mem20.base, #t~mem20.offset := read~$Pointer$(~#p1~0.base, ~#p1~0.offset, 4); [L631] call #t~mem21.base, #t~mem21.offset := read~$Pointer$(~#p2~0.base, ~#p2~0.offset, 4); VAL [#NULL.base=0, #NULL.offset=0, #t~mem20.base=14, #t~mem20.offset=0, #t~mem21.base=14, #t~mem21.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0, ~list~1.base=11, ~list~1.offset=0] [L631] CALL call check_seq_next(#t~mem20.base, #t~mem20.offset, #t~mem21.base, #t~mem21.offset); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0] [L614-L619] ~beg.base, ~beg.offset := #in~beg.base, #in~beg.offset; [L614-L619] ~end.base, ~end.offset := #in~end.base, #in~end.offset; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L615] assume !(~beg.base == 0 && ~beg.offset == 0); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L616] assume !(~end.base == 0 && ~end.offset == 0); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L617] call #t~mem15.base, #t~mem15.offset := read~$Pointer$(~beg.base, ~beg.offset, 4); [L617] ~beg.base, ~beg.offset := #t~mem15.base, #t~mem15.offset; [L617] havoc #t~mem15.base, #t~mem15.offset; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L617-L618] assume !!(~end.base != ~beg.base || ~end.offset != ~beg.offset); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L618] assume ~beg.base == 0 && ~beg.offset == 0; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L618] CALL call fail(); VAL [#NULL.base=0, #NULL.offset=0] [L554] assert false; VAL [#NULL.base=0, #NULL.offset=0] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL.base=15, #NULL.offset=9, old(#NULL.base)=15, old(#NULL.offset)=9] [?] #NULL.base, #NULL.offset := 0, 0; [?] #valid := #valid[0 := 0]; VAL [#NULL.base=0, #NULL.offset=0, old(#NULL.base)=15, old(#NULL.offset)=9] [?] ensures true; VAL [#NULL.base=0, #NULL.offset=0, old(#NULL.base)=15, old(#NULL.offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL.base=0, #NULL.offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL.base=0, #NULL.offset=0] [L628] call ~#p1~0.base, ~#p1~0.offset := #Ultimate.alloc(4); [L628] call ~#p2~0.base, ~#p2~0.offset := #Ultimate.alloc(4); VAL [#NULL.base=0, #NULL.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0] [L629] CALL call #t~ret19.base, #t~ret19.offset := create_sll(~#p1~0.base, ~#p1~0.offset, ~#p2~0.base, ~#p2~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0] [L575-L589] ~pp1.base, ~pp1.offset := #in~pp1.base, #in~pp1.offset; [L575-L589] ~pp2.base, ~pp2.offset := #in~pp2.base, #in~pp2.offset; [L577] call ~#list~0.base, ~#list~0.offset := #Ultimate.alloc(4); [L577] call write~init~$Pointer$(0, 0, ~#list~0.base, ~#list~0.offset, 4); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L579] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0] [L569-L574] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#NULL.base=0, #NULL.offset=0] [L562] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8); [L562] ~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L563-L564] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L565] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4); [L566] call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4); [L567] #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [#NULL.base=0, #NULL.offset=0, #res.base=14, #res.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L560-L568] ensures true; VAL [#NULL.base=0, #NULL.offset=0, #res.base=14, #res.offset=0, #t~malloc2.base=14, #t~malloc2.offset=0, ~ptr~0.base=14, ~ptr~0.offset=0] [L571] RET call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, #t~ret3.base=14, #t~ret3.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset; [L571] havoc #t~ret3.base, #t~ret3.offset; [L572] call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4); [L572] call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4); [L572] havoc #t~mem4.base, #t~mem4.offset; [L573] call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=14, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L569-L574] ensures true; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=14, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L579] RET call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet5=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L578-L580] assume !(0 != #t~nondet5); [L580] havoc #t~nondet5; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L581] call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L581] call write~$Pointer$(#t~mem6.base, #t~mem6.offset, ~pp2.base, ~pp2.offset, 4); [L581] havoc #t~mem6.base, #t~mem6.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet7=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L582-L583] assume !(0 != #t~nondet7); [L582] havoc #t~nondet7; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L584] call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L584] call write~$Pointer$(#t~mem8.base, #t~mem8.offset, ~pp1.base, ~pp1.offset, 4); [L584] havoc #t~mem8.base, #t~mem8.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L586] CALL call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0] [L569-L574] ~ppnode.base, ~ppnode.offset := #in~ppnode.base, #in~ppnode.offset; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] CALL call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#NULL.base=0, #NULL.offset=0] [L562] call #t~malloc2.base, #t~malloc2.offset := #Ultimate.alloc(8); [L562] ~ptr~0.base, ~ptr~0.offset := #t~malloc2.base, #t~malloc2.offset; VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L563-L564] assume !(~ptr~0.base == 0 && ~ptr~0.offset == 0); VAL [#NULL.base=0, #NULL.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L565] call write~$Pointer$(0, 0, ~ptr~0.base, ~ptr~0.offset, 4); [L566] call write~$Pointer$(0, 0, ~ptr~0.base, 4 + ~ptr~0.offset, 4); [L567] #res.base, #res.offset := ~ptr~0.base, ~ptr~0.offset; VAL [#NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L560-L568] ensures true; VAL [#NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, #t~malloc2.base=11, #t~malloc2.offset=0, ~ptr~0.base=11, ~ptr~0.offset=0] [L571] RET call #t~ret3.base, #t~ret3.offset := alloc_node(); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, #t~ret3.base=11, #t~ret3.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L571] ~node~0.base, ~node~0.offset := #t~ret3.base, #t~ret3.offset; [L571] havoc #t~ret3.base, #t~ret3.offset; [L572] call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~ppnode.base, ~ppnode.offset, 4); [L572] call write~$Pointer$(#t~mem4.base, #t~mem4.offset, ~node~0.base, ~node~0.offset, 4); [L572] havoc #t~mem4.base, #t~mem4.offset; [L573] call write~$Pointer$(~node~0.base, ~node~0.offset, ~ppnode.base, ~ppnode.offset, 4); VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=11, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L569-L574] ensures true; VAL [#in~ppnode.base=13, #in~ppnode.offset=0, #NULL.base=0, #NULL.offset=0, ~node~0.base=11, ~node~0.offset=0, ~ppnode.base=13, ~ppnode.offset=0] [L586] RET call chain_node(~#list~0.base, ~#list~0.offset); VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #t~nondet9=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L585-L587] assume !(0 != #t~nondet9); [L587] havoc #t~nondet9; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, ~#list~0.base=13, ~#list~0.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L588] call #t~mem10.base, #t~mem10.offset := read~$Pointer$(~#list~0.base, ~#list~0.offset, 4); [L588] #res.base, #res.offset := #t~mem10.base, #t~mem10.offset; [L588] havoc #t~mem10.base, #t~mem10.offset; [L577] call ULTIMATE.dealloc(~#list~0.base, ~#list~0.offset); [L588] havoc ~#list~0.base, ~#list~0.offset; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L575-L589] ensures true; VAL [#in~pp1.base=10, #in~pp1.offset=0, #in~pp2.base=12, #in~pp2.offset=0, #NULL.base=0, #NULL.offset=0, #res.base=11, #res.offset=0, ~pp1.base=10, ~pp1.offset=0, ~pp2.base=12, ~pp2.offset=0] [L629] RET call #t~ret19.base, #t~ret19.offset := create_sll(~#p1~0.base, ~#p1~0.offset, ~#p2~0.base, ~#p2~0.offset); VAL [#NULL.base=0, #NULL.offset=0, #t~ret19.base=11, #t~ret19.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0] [L629] ~list~1.base, ~list~1.offset := #t~ret19.base, #t~ret19.offset; [L629] havoc #t~ret19.base, #t~ret19.offset; VAL [#NULL.base=0, #NULL.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0, ~list~1.base=11, ~list~1.offset=0] [L631] call #t~mem20.base, #t~mem20.offset := read~$Pointer$(~#p1~0.base, ~#p1~0.offset, 4); [L631] call #t~mem21.base, #t~mem21.offset := read~$Pointer$(~#p2~0.base, ~#p2~0.offset, 4); VAL [#NULL.base=0, #NULL.offset=0, #t~mem20.base=14, #t~mem20.offset=0, #t~mem21.base=14, #t~mem21.offset=0, ~#p1~0.base=10, ~#p1~0.offset=0, ~#p2~0.base=12, ~#p2~0.offset=0, ~list~1.base=11, ~list~1.offset=0] [L631] CALL call check_seq_next(#t~mem20.base, #t~mem20.offset, #t~mem21.base, #t~mem21.offset); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0] [L614-L619] ~beg.base, ~beg.offset := #in~beg.base, #in~beg.offset; [L614-L619] ~end.base, ~end.offset := #in~end.base, #in~end.offset; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L615] assume !(~beg.base == 0 && ~beg.offset == 0); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L616] assume !(~end.base == 0 && ~end.offset == 0); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=14, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L617] call #t~mem15.base, #t~mem15.offset := read~$Pointer$(~beg.base, ~beg.offset, 4); [L617] ~beg.base, ~beg.offset := #t~mem15.base, #t~mem15.offset; [L617] havoc #t~mem15.base, #t~mem15.offset; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L617-L618] assume !!(~end.base != ~beg.base || ~end.offset != ~beg.offset); VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L618] assume ~beg.base == 0 && ~beg.offset == 0; VAL [#in~beg.base=14, #in~beg.offset=0, #in~end.base=14, #in~end.offset=0, #NULL.base=0, #NULL.offset=0, ~beg.base=0, ~beg.offset=0, ~end.base=14, ~end.offset=0] [L618] CALL call fail(); VAL [#NULL.base=0, #NULL.offset=0] [L554] assert false; VAL [#NULL.base=0, #NULL.offset=0] [?] CALL call ULTIMATE.init(); VAL [#NULL!base=15, #NULL!offset=9, old(#NULL!base)=15, old(#NULL!offset)=9] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; VAL [#NULL!base=0, #NULL!offset=0, old(#NULL!base)=15, old(#NULL!offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0, #NULL!offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL!base=0, #NULL!offset=0] [L628] FCALL call ~#p1~0 := #Ultimate.alloc(4); [L628] FCALL call ~#p2~0 := #Ultimate.alloc(4); VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] CALL call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0] [L575-L589] ~pp1 := #in~pp1; [L575-L589] ~pp2 := #in~pp2; [L577] FCALL call ~#list~0 := #Ultimate.alloc(4); [L577] FCALL call write~init~$Pointer$({ base: 0, offset: 0 }, ~#list~0, 4); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L579] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=14, #res!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=14, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=14, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L579] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet5=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L578-L580] COND TRUE !(0 != #t~nondet5) [L580] havoc #t~nondet5; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L581] FCALL call #t~mem6 := read~$Pointer$(~#list~0, 4); [L581] FCALL call write~$Pointer$(#t~mem6, ~pp2, 4); [L581] havoc #t~mem6; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet7=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582-L583] COND TRUE !(0 != #t~nondet7) [L582] havoc #t~nondet7; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L584] FCALL call #t~mem8 := read~$Pointer$(~#list~0, 4); [L584] FCALL call write~$Pointer$(#t~mem8, ~pp1, 4); [L584] havoc #t~mem8; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L586] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=11, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=11, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L586] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet9=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L585-L587] COND TRUE !(0 != #t~nondet9) [L587] havoc #t~nondet9; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L588] FCALL call #t~mem10 := read~$Pointer$(~#list~0, 4); [L588] #res := #t~mem10; [L588] havoc #t~mem10; [L577] FCALL call ULTIMATE.dealloc(~#list~0); [L588] havoc ~#list~0; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L629] RET call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#NULL!base=0, #NULL!offset=0, #t~ret19!base=11, #t~ret19!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] ~list~1 := #t~ret19; [L629] havoc #t~ret19; VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] FCALL call #t~mem20 := read~$Pointer$(~#p1~0, 4); [L631] FCALL call #t~mem21 := read~$Pointer$(~#p2~0, 4); VAL [#NULL!base=0, #NULL!offset=0, #t~mem20!base=14, #t~mem20!offset=0, #t~mem21!base=14, #t~mem21!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] CALL call check_seq_next(#t~mem20, #t~mem21); VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0] [L614-L619] ~beg := #in~beg; [L614-L619] ~end := #in~end; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L615] COND FALSE !(~beg == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L616] COND FALSE !(~end == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617] FCALL call #t~mem15 := read~$Pointer$({ base: ~beg!base, offset: ~beg!offset }, 4); [L617] ~beg := #t~mem15; [L617] havoc #t~mem15; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617-L618] COND FALSE !(!(~end != ~beg)) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] COND TRUE ~beg == { base: 0, offset: 0 } VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] CALL call fail(); VAL [#NULL!base=0, #NULL!offset=0] [L554] assert false; VAL [#NULL!base=0, #NULL!offset=0] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL!base=15, #NULL!offset=9, old(#NULL!base)=15, old(#NULL!offset)=9] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; VAL [#NULL!base=0, #NULL!offset=0, old(#NULL!base)=15, old(#NULL!offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0, #NULL!offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL!base=0, #NULL!offset=0] [L628] FCALL call ~#p1~0 := #Ultimate.alloc(4); [L628] FCALL call ~#p2~0 := #Ultimate.alloc(4); VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] CALL call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0] [L575-L589] ~pp1 := #in~pp1; [L575-L589] ~pp2 := #in~pp2; [L577] FCALL call ~#list~0 := #Ultimate.alloc(4); [L577] FCALL call write~init~$Pointer$({ base: 0, offset: 0 }, ~#list~0, 4); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L579] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=14, #res!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=14, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=14, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L579] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet5=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L578-L580] COND TRUE !(0 != #t~nondet5) [L580] havoc #t~nondet5; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L581] FCALL call #t~mem6 := read~$Pointer$(~#list~0, 4); [L581] FCALL call write~$Pointer$(#t~mem6, ~pp2, 4); [L581] havoc #t~mem6; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet7=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582-L583] COND TRUE !(0 != #t~nondet7) [L582] havoc #t~nondet7; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L584] FCALL call #t~mem8 := read~$Pointer$(~#list~0, 4); [L584] FCALL call write~$Pointer$(#t~mem8, ~pp1, 4); [L584] havoc #t~mem8; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L586] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=11, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=11, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L586] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet9=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L585-L587] COND TRUE !(0 != #t~nondet9) [L587] havoc #t~nondet9; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L588] FCALL call #t~mem10 := read~$Pointer$(~#list~0, 4); [L588] #res := #t~mem10; [L588] havoc #t~mem10; [L577] FCALL call ULTIMATE.dealloc(~#list~0); [L588] havoc ~#list~0; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L629] RET call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#NULL!base=0, #NULL!offset=0, #t~ret19!base=11, #t~ret19!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] ~list~1 := #t~ret19; [L629] havoc #t~ret19; VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] FCALL call #t~mem20 := read~$Pointer$(~#p1~0, 4); [L631] FCALL call #t~mem21 := read~$Pointer$(~#p2~0, 4); VAL [#NULL!base=0, #NULL!offset=0, #t~mem20!base=14, #t~mem20!offset=0, #t~mem21!base=14, #t~mem21!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] CALL call check_seq_next(#t~mem20, #t~mem21); VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0] [L614-L619] ~beg := #in~beg; [L614-L619] ~end := #in~end; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L615] COND FALSE !(~beg == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L616] COND FALSE !(~end == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617] FCALL call #t~mem15 := read~$Pointer$({ base: ~beg!base, offset: ~beg!offset }, 4); [L617] ~beg := #t~mem15; [L617] havoc #t~mem15; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617-L618] COND FALSE !(!(~end != ~beg)) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] COND TRUE ~beg == { base: 0, offset: 0 } VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] CALL call fail(); VAL [#NULL!base=0, #NULL!offset=0] [L554] assert false; VAL [#NULL!base=0, #NULL!offset=0] [?] CALL call ULTIMATE.init(); VAL [#NULL!base=15, #NULL!offset=9, old(#NULL!base)=15, old(#NULL!offset)=9] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; VAL [#NULL!base=0, #NULL!offset=0, old(#NULL!base)=15, old(#NULL!offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0, #NULL!offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL!base=0, #NULL!offset=0] [L628] FCALL call ~#p1~0 := #Ultimate.alloc(4); [L628] FCALL call ~#p2~0 := #Ultimate.alloc(4); VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] CALL call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0] [L575-L589] ~pp1 := #in~pp1; [L575-L589] ~pp2 := #in~pp2; [L577] FCALL call ~#list~0 := #Ultimate.alloc(4); [L577] FCALL call write~init~$Pointer$({ base: 0, offset: 0 }, ~#list~0, 4); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L579] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=14, #res!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=14, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=14, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L579] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet5=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L578-L580] COND TRUE !(0 != #t~nondet5) [L580] havoc #t~nondet5; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L581] FCALL call #t~mem6 := read~$Pointer$(~#list~0, 4); [L581] FCALL call write~$Pointer$(#t~mem6, ~pp2, 4); [L581] havoc #t~mem6; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet7=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582-L583] COND TRUE !(0 != #t~nondet7) [L582] havoc #t~nondet7; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L584] FCALL call #t~mem8 := read~$Pointer$(~#list~0, 4); [L584] FCALL call write~$Pointer$(#t~mem8, ~pp1, 4); [L584] havoc #t~mem8; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L586] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=11, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=11, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L586] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet9=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L585-L587] COND TRUE !(0 != #t~nondet9) [L587] havoc #t~nondet9; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L588] FCALL call #t~mem10 := read~$Pointer$(~#list~0, 4); [L588] #res := #t~mem10; [L588] havoc #t~mem10; [L577] FCALL call ULTIMATE.dealloc(~#list~0); [L588] havoc ~#list~0; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L629] RET call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#NULL!base=0, #NULL!offset=0, #t~ret19!base=11, #t~ret19!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] ~list~1 := #t~ret19; [L629] havoc #t~ret19; VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] FCALL call #t~mem20 := read~$Pointer$(~#p1~0, 4); [L631] FCALL call #t~mem21 := read~$Pointer$(~#p2~0, 4); VAL [#NULL!base=0, #NULL!offset=0, #t~mem20!base=14, #t~mem20!offset=0, #t~mem21!base=14, #t~mem21!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] CALL call check_seq_next(#t~mem20, #t~mem21); VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0] [L614-L619] ~beg := #in~beg; [L614-L619] ~end := #in~end; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L615] COND FALSE !(~beg == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L616] COND FALSE !(~end == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617] FCALL call #t~mem15 := read~$Pointer$({ base: ~beg!base, offset: ~beg!offset }, 4); [L617] ~beg := #t~mem15; [L617] havoc #t~mem15; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617-L618] COND FALSE !(!(~end != ~beg)) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] COND TRUE ~beg == { base: 0, offset: 0 } VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] CALL call fail(); VAL [#NULL!base=0, #NULL!offset=0] [L554] assert false; VAL [#NULL!base=0, #NULL!offset=0] ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL!base=15, #NULL!offset=9, old(#NULL!base)=15, old(#NULL!offset)=9] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; VAL [#NULL!base=0, #NULL!offset=0, old(#NULL!base)=15, old(#NULL!offset)=9] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0, #NULL!offset=0] [?] CALL call #t~ret37 := main(); VAL [#NULL!base=0, #NULL!offset=0] [L628] FCALL call ~#p1~0 := #Ultimate.alloc(4); [L628] FCALL call ~#p2~0 := #Ultimate.alloc(4); VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] CALL call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0] [L575-L589] ~pp1 := #in~pp1; [L575-L589] ~pp2 := #in~pp2; [L577] FCALL call ~#list~0 := #Ultimate.alloc(4); [L577] FCALL call write~init~$Pointer$({ base: 0, offset: 0 }, ~#list~0, 4); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L579] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=14, #res!offset=0, #t~malloc2!base=14, #t~malloc2!offset=0, ~ptr~0!base=14, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=14, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=14, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L579] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L580] assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet5=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L578-L580] COND TRUE !(0 != #t~nondet5) [L580] havoc #t~nondet5; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L581] FCALL call #t~mem6 := read~$Pointer$(~#list~0, 4); [L581] FCALL call write~$Pointer$(#t~mem6, ~pp2, 4); [L581] havoc #t~mem6; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582] assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet7=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L582-L583] COND TRUE !(0 != #t~nondet7) [L582] havoc #t~nondet7; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L584] FCALL call #t~mem8 := read~$Pointer$(~#list~0, 4); [L584] FCALL call write~$Pointer$(#t~mem8, ~pp1, 4); [L584] havoc #t~mem8; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L586] CALL call chain_node(~#list~0); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0] [L569-L574] ~ppnode := #in~ppnode; VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] CALL call #t~ret3 := alloc_node(); VAL [#NULL!base=0, #NULL!offset=0] [L562] FCALL call #t~malloc2 := #Ultimate.alloc(8); [L562] ~ptr~0 := #t~malloc2; VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L563] COND FALSE !(~ptr~0 == { base: 0, offset: 0 }) VAL [#NULL!base=0, #NULL!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L565] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: ~ptr~0!offset }, 4); [L566] FCALL call write~$Pointer$({ base: 0, offset: 0 }, { base: ~ptr~0!base, offset: 4 + ~ptr~0!offset }, 4); [L567] #res := ~ptr~0; VAL [#NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, #t~malloc2!base=11, #t~malloc2!offset=0, ~ptr~0!base=11, ~ptr~0!offset=0] [L571] RET call #t~ret3 := alloc_node(); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, #t~ret3!base=11, #t~ret3!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L571] ~node~0 := #t~ret3; [L571] havoc #t~ret3; [L572] FCALL call #t~mem4 := read~$Pointer$(~ppnode, 4); [L572] FCALL call write~$Pointer$(#t~mem4, { base: ~node~0!base, offset: ~node~0!offset }, 4); [L572] havoc #t~mem4; [L573] FCALL call write~$Pointer$(~node~0, ~ppnode, 4); VAL [#in~ppnode!base=13, #in~ppnode!offset=0, #NULL!base=0, #NULL!offset=0, ~node~0!base=11, ~node~0!offset=0, ~ppnode!base=13, ~ppnode!offset=0] [L586] RET call chain_node(~#list~0); VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L587] assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #t~nondet9=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L585-L587] COND TRUE !(0 != #t~nondet9) [L587] havoc #t~nondet9; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, ~#list~0!base=13, ~#list~0!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L588] FCALL call #t~mem10 := read~$Pointer$(~#list~0, 4); [L588] #res := #t~mem10; [L588] havoc #t~mem10; [L577] FCALL call ULTIMATE.dealloc(~#list~0); [L588] havoc ~#list~0; VAL [#in~pp1!base=10, #in~pp1!offset=0, #in~pp2!base=12, #in~pp2!offset=0, #NULL!base=0, #NULL!offset=0, #res!base=11, #res!offset=0, ~pp1!base=10, ~pp1!offset=0, ~pp2!base=12, ~pp2!offset=0] [L629] RET call #t~ret19 := create_sll(~#p1~0, ~#p2~0); VAL [#NULL!base=0, #NULL!offset=0, #t~ret19!base=11, #t~ret19!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0] [L629] ~list~1 := #t~ret19; [L629] havoc #t~ret19; VAL [#NULL!base=0, #NULL!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] FCALL call #t~mem20 := read~$Pointer$(~#p1~0, 4); [L631] FCALL call #t~mem21 := read~$Pointer$(~#p2~0, 4); VAL [#NULL!base=0, #NULL!offset=0, #t~mem20!base=14, #t~mem20!offset=0, #t~mem21!base=14, #t~mem21!offset=0, ~#p1~0!base=10, ~#p1~0!offset=0, ~#p2~0!base=12, ~#p2~0!offset=0, ~list~1!base=11, ~list~1!offset=0] [L631] CALL call check_seq_next(#t~mem20, #t~mem21); VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0] [L614-L619] ~beg := #in~beg; [L614-L619] ~end := #in~end; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L615] COND FALSE !(~beg == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L616] COND FALSE !(~end == { base: 0, offset: 0 }) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=14, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617] FCALL call #t~mem15 := read~$Pointer$({ base: ~beg!base, offset: ~beg!offset }, 4); [L617] ~beg := #t~mem15; [L617] havoc #t~mem15; VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L617-L618] COND FALSE !(!(~end != ~beg)) VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] COND TRUE ~beg == { base: 0, offset: 0 } VAL [#in~beg!base=14, #in~beg!offset=0, #in~end!base=14, #in~end!offset=0, #NULL!base=0, #NULL!offset=0, ~beg!base=0, ~beg!offset=0, ~end!base=14, ~end!offset=0] [L618] CALL call fail(); VAL [#NULL!base=0, #NULL!offset=0] [L554] assert false; VAL [#NULL!base=0, #NULL!offset=0] [L628] const struct node *p1, *p2; VAL [p1={10:0}, p2={12:0}] [L629] CALL, EXPR create_sll(&p1, &p2) VAL [pp1={10:0}, pp2={12:0}] [L577] struct node *list = ((void *)0); VAL [list={13:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L579] CALL chain_node(&list) VAL [ppnode={13:0}] [L571] CALL, EXPR alloc_node() [L562] struct node *ptr = malloc(sizeof *ptr); VAL [malloc(sizeof *ptr)={14:0}, ptr={14:0}] [L563] COND FALSE !(!ptr) VAL [malloc(sizeof *ptr)={14:0}, ptr={14:0}] [L565] ptr->next = ((void *)0) [L566] ptr->prev = ((void *)0) [L567] return ptr; VAL [\result={14:0}, malloc(sizeof *ptr)={14:0}, ptr={14:0}] [L571] RET, EXPR alloc_node() VAL [alloc_node()={14:0}, ppnode={13:0}, ppnode={13:0}] [L571] struct node *node = alloc_node(); [L572] EXPR \read(**ppnode) [L572] node->next = *ppnode [L573] *ppnode = node VAL [node={14:0}, ppnode={13:0}, ppnode={13:0}] [L579] RET chain_node(&list) VAL [list={13:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L580] COND FALSE !(__VERIFIER_nondet_int()) [L581] EXPR \read(*list) [L581] *pp2 = list [L582] COND FALSE !(__VERIFIER_nondet_int()) [L584] EXPR \read(*list) [L584] *pp1 = list [L586] CALL chain_node(&list) VAL [ppnode={13:0}] [L571] CALL, EXPR alloc_node() [L562] struct node *ptr = malloc(sizeof *ptr); VAL [malloc(sizeof *ptr)={11:0}, ptr={11:0}] [L563] COND FALSE !(!ptr) VAL [malloc(sizeof *ptr)={11:0}, ptr={11:0}] [L565] ptr->next = ((void *)0) [L566] ptr->prev = ((void *)0) [L567] return ptr; VAL [\result={11:0}, malloc(sizeof *ptr)={11:0}, ptr={11:0}] [L571] RET, EXPR alloc_node() VAL [alloc_node()={11:0}, ppnode={13:0}, ppnode={13:0}] [L571] struct node *node = alloc_node(); [L572] EXPR \read(**ppnode) [L572] node->next = *ppnode [L573] *ppnode = node VAL [node={11:0}, ppnode={13:0}, ppnode={13:0}] [L586] RET chain_node(&list) VAL [list={13:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L587] COND FALSE !(__VERIFIER_nondet_int()) [L588] EXPR \read(*list) [L588] return list; [L577] struct node *list = ((void *)0); [L588] return list; VAL [\result={11:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L629] RET, EXPR create_sll(&p1, &p2) VAL [create_sll(&p1, &p2)={11:0}, p1={10:0}, p2={12:0}] [L629] struct node *list = create_sll(&p1, &p2); [L631] EXPR \read(*p1) [L631] EXPR \read(*p2) VAL [\read(*p1)={14:0}, \read(*p2)={14:0}, list={11:0}, p1={10:0}, p2={12:0}] [L631] CALL check_seq_next(p1, p2) VAL [beg={14:0}, end={14:0}] [L615] COND FALSE !(!(beg)) VAL [beg={14:0}, beg={14:0}, end={14:0}, end={14:0}] [L616] COND FALSE !(!(end)) VAL [beg={14:0}, beg={14:0}, end={14:0}, end={14:0}] [L617] EXPR beg->next [L617] beg = beg->next [L617] COND TRUE end != beg VAL [beg={0:0}, beg={14:0}, end={14:0}, end={14:0}] [L618] COND TRUE !(beg) VAL [beg={0:0}, beg={14:0}, end={14:0}, end={14:0}] [L618] CALL fail() [L554] __VERIFIER_error() ----- [2018-11-23 15:38:13,235 INFO L145 WitnessManager]: Wrote witness to /tmp/vcloud-vcloud-master/worker/working_dir_7e25c06d-4499-4040-9312-460411dac323/bin-2019/uautomizer/witness.graphml [2018-11-23 15:38:13,235 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2018-11-23 15:38:13,235 INFO L168 Benchmark]: Toolchain (without parser) took 105432.07 ms. Allocated memory was 1.0 GB in the beginning and 1.4 GB in the end (delta: 388.5 MB). Free memory was 956.4 MB in the beginning and 1.0 GB in the end (delta: -74.4 MB). Peak memory consumption was 314.1 MB. Max. memory is 11.5 GB. [2018-11-23 15:38:13,236 INFO L168 Benchmark]: CDTParser took 0.15 ms. Allocated memory is still 1.0 GB. Free memory is still 982.8 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 15:38:13,236 INFO L168 Benchmark]: CACSL2BoogieTranslator took 350.99 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 146.8 MB). Free memory was 956.4 MB in the beginning and 1.1 GB in the end (delta: -174.1 MB). Peak memory consumption was 38.4 MB. Max. memory is 11.5 GB. [2018-11-23 15:38:13,236 INFO L168 Benchmark]: Boogie Procedure Inliner took 23.59 ms. Allocated memory is still 1.2 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 15:38:13,236 INFO L168 Benchmark]: Boogie Preprocessor took 30.75 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 6.6 MB). Peak memory consumption was 6.6 MB. Max. memory is 11.5 GB. [2018-11-23 15:38:13,236 INFO L168 Benchmark]: RCFGBuilder took 457.98 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 39.0 MB). Peak memory consumption was 39.0 MB. Max. memory is 11.5 GB. [2018-11-23 15:38:13,236 INFO L168 Benchmark]: TraceAbstraction took 104267.96 ms. Allocated memory was 1.2 GB in the beginning and 1.4 GB in the end (delta: 241.7 MB). Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 42.7 MB). Peak memory consumption was 284.3 MB. Max. memory is 11.5 GB. [2018-11-23 15:38:13,237 INFO L168 Benchmark]: Witness Printer took 297.71 ms. Allocated memory is still 1.4 GB. Free memory was 1.0 GB in the beginning and 1.0 GB in the end (delta: 11.4 MB). Peak memory consumption was 11.4 MB. Max. memory is 11.5 GB. [2018-11-23 15:38:13,237 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.15 ms. Allocated memory is still 1.0 GB. Free memory is still 982.8 MB. There was no memory consumed. Max. memory is 11.5 GB. * CACSL2BoogieTranslator took 350.99 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 146.8 MB). Free memory was 956.4 MB in the beginning and 1.1 GB in the end (delta: -174.1 MB). Peak memory consumption was 38.4 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 23.59 ms. Allocated memory is still 1.2 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. * Boogie Preprocessor took 30.75 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 6.6 MB). Peak memory consumption was 6.6 MB. Max. memory is 11.5 GB. * RCFGBuilder took 457.98 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 39.0 MB). Peak memory consumption was 39.0 MB. Max. memory is 11.5 GB. * TraceAbstraction took 104267.96 ms. Allocated memory was 1.2 GB in the beginning and 1.4 GB in the end (delta: 241.7 MB). Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 42.7 MB). Peak memory consumption was 284.3 MB. Max. memory is 11.5 GB. * Witness Printer took 297.71 ms. Allocated memory is still 1.4 GB. Free memory was 1.0 GB in the beginning and 1.0 GB in the end (delta: 11.4 MB). Peak memory consumption was 11.4 MB. Max. memory is 11.5 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - CounterExampleResult [Line: 554]: a call of __VERIFIER_error() is reachable a call of __VERIFIER_error() is reachable We found a FailurePath: [L628] const struct node *p1, *p2; VAL [p1={10:0}, p2={12:0}] [L629] CALL, EXPR create_sll(&p1, &p2) VAL [pp1={10:0}, pp2={12:0}] [L577] struct node *list = ((void *)0); VAL [list={13:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L579] CALL chain_node(&list) VAL [ppnode={13:0}] [L571] CALL, EXPR alloc_node() [L562] struct node *ptr = malloc(sizeof *ptr); VAL [malloc(sizeof *ptr)={14:0}, ptr={14:0}] [L563] COND FALSE !(!ptr) VAL [malloc(sizeof *ptr)={14:0}, ptr={14:0}] [L565] ptr->next = ((void *)0) [L566] ptr->prev = ((void *)0) [L567] return ptr; VAL [\result={14:0}, malloc(sizeof *ptr)={14:0}, ptr={14:0}] [L571] RET, EXPR alloc_node() VAL [alloc_node()={14:0}, ppnode={13:0}, ppnode={13:0}] [L571] struct node *node = alloc_node(); [L572] EXPR \read(**ppnode) [L572] node->next = *ppnode [L573] *ppnode = node VAL [node={14:0}, ppnode={13:0}, ppnode={13:0}] [L579] RET chain_node(&list) VAL [list={13:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L580] COND FALSE !(__VERIFIER_nondet_int()) [L581] EXPR \read(*list) [L581] *pp2 = list [L582] COND FALSE !(__VERIFIER_nondet_int()) [L584] EXPR \read(*list) [L584] *pp1 = list [L586] CALL chain_node(&list) VAL [ppnode={13:0}] [L571] CALL, EXPR alloc_node() [L562] struct node *ptr = malloc(sizeof *ptr); VAL [malloc(sizeof *ptr)={11:0}, ptr={11:0}] [L563] COND FALSE !(!ptr) VAL [malloc(sizeof *ptr)={11:0}, ptr={11:0}] [L565] ptr->next = ((void *)0) [L566] ptr->prev = ((void *)0) [L567] return ptr; VAL [\result={11:0}, malloc(sizeof *ptr)={11:0}, ptr={11:0}] [L571] RET, EXPR alloc_node() VAL [alloc_node()={11:0}, ppnode={13:0}, ppnode={13:0}] [L571] struct node *node = alloc_node(); [L572] EXPR \read(**ppnode) [L572] node->next = *ppnode [L573] *ppnode = node VAL [node={11:0}, ppnode={13:0}, ppnode={13:0}] [L586] RET chain_node(&list) VAL [list={13:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L587] COND FALSE !(__VERIFIER_nondet_int()) [L588] EXPR \read(*list) [L588] return list; [L577] struct node *list = ((void *)0); [L588] return list; VAL [\result={11:0}, pp1={10:0}, pp1={10:0}, pp2={12:0}, pp2={12:0}] [L629] RET, EXPR create_sll(&p1, &p2) VAL [create_sll(&p1, &p2)={11:0}, p1={10:0}, p2={12:0}] [L629] struct node *list = create_sll(&p1, &p2); [L631] EXPR \read(*p1) [L631] EXPR \read(*p2) VAL [\read(*p1)={14:0}, \read(*p2)={14:0}, list={11:0}, p1={10:0}, p2={12:0}] [L631] CALL check_seq_next(p1, p2) VAL [beg={14:0}, end={14:0}] [L615] COND FALSE !(!(beg)) VAL [beg={14:0}, beg={14:0}, end={14:0}, end={14:0}] [L616] COND FALSE !(!(end)) VAL [beg={14:0}, beg={14:0}, end={14:0}, end={14:0}] [L617] EXPR beg->next [L617] beg = beg->next [L617] COND TRUE end != beg VAL [beg={0:0}, beg={14:0}, end={14:0}, end={14:0}] [L618] COND TRUE !(beg) VAL [beg={14:0}, beg={0:0}, end={14:0}, end={14:0}] [L618] CALL fail() [L554] __VERIFIER_error() - StatisticsResult: Ultimate Automizer benchmark data CFG has 12 procedures, 117 locations, 1 error locations. UNSAFE Result, 104.2s OverallTime, 4 OverallIterations, 2 TraceHistogramMax, 50.9s AutomataDifference, 0.0s DeadEndRemovalTime, 0.0s HoareAnnotationTime, HoareTripleCheckerStatistics: 328 SDtfs, 369 SDslu, 1787 SDs, 0 SdLazy, 5338 SolverSat, 206 SolverUnsat, 20 SolverUnknown, 0 SolverNotchecked, 42.4s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 138 GetRequests, 41 SyntacticMatches, 2 SemanticMatches, 95 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 973 ImplicationChecksByTransitivity, 40.4s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=120occurred in iteration=2, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s AbstIntTime, 0 AbstIntIterations, 0 AbstIntStrong, NaN AbsIntWeakeningRatio, NaN AbsIntAvgWeakeningVarsNumRemoved, NaN AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: 0.0s AutomataMinimizationTime, 3 MinimizatonAttempts, 113 StatesRemovedByMinimization, 2 NontrivialMinimizations, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TraceCheckStatistics: 0.0s SsaConstructionTime, 0.1s SatisfiabilityAnalysisTime, 52.7s InterpolantComputationTime, 230 NumberOfCodeBlocks, 230 NumberOfCodeBlocksAsserted, 5 NumberOfCheckSat, 171 ConstructedInterpolants, 11 QuantifiedInterpolants, 309521 SizeOfPredicates, 27 NumberOfNonLiveVariables, 255 ConjunctsInSsa, 101 ConjunctsInUnsatCore, 4 InterpolantComputations, 2 PerfectInterpolantSequences, 16/30 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be incorrect! Received shutdown request...