./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/verifythis/tree_del_iter.c --full-output -ea --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version 03d7b7b3 Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/verifythis/tree_del_iter.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash cce1bb7a06b9dd56fbf663e182ffe801720ee05ee19a126a08070f1616bc4afe --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 17:10:36,707 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 17:10:36,709 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 17:10:36,743 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 17:10:36,744 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 17:10:36,746 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 17:10:36,747 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 17:10:36,749 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 17:10:36,750 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 17:10:36,753 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 17:10:36,754 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 17:10:36,755 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 17:10:36,755 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 17:10:36,757 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 17:10:36,758 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 17:10:36,760 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 17:10:36,761 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 17:10:36,762 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 17:10:36,763 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 17:10:36,768 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 17:10:36,768 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 17:10:36,769 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 17:10:36,770 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 17:10:36,771 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 17:10:36,775 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 17:10:36,776 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 17:10:36,776 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 17:10:36,777 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 17:10:36,777 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 17:10:36,778 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 17:10:36,779 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 17:10:36,779 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 17:10:36,781 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 17:10:36,781 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 17:10:36,782 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 17:10:36,782 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 17:10:36,783 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 17:10:36,783 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 17:10:36,783 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 17:10:36,784 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 17:10:36,784 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 17:10:36,785 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf [2022-02-20 17:10:36,808 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 17:10:36,809 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 17:10:36,809 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 17:10:36,809 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 17:10:36,810 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 17:10:36,810 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 17:10:36,810 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 17:10:36,811 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 17:10:36,811 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 17:10:36,811 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 17:10:36,812 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 17:10:36,812 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-02-20 17:10:36,812 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 17:10:36,812 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 17:10:36,812 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 17:10:36,813 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 17:10:36,813 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 17:10:36,813 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 17:10:36,813 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 17:10:36,813 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 17:10:36,813 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 17:10:36,814 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 17:10:36,814 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 17:10:36,814 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 17:10:36,814 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 17:10:36,814 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 17:10:36,814 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 17:10:36,815 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 17:10:36,815 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-02-20 17:10:36,815 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-02-20 17:10:36,815 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 17:10:36,815 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 17:10:36,816 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 17:10:36,816 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> cce1bb7a06b9dd56fbf663e182ffe801720ee05ee19a126a08070f1616bc4afe [2022-02-20 17:10:37,028 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 17:10:37,052 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 17:10:37,054 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 17:10:37,055 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 17:10:37,056 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 17:10:37,057 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/verifythis/tree_del_iter.c [2022-02-20 17:10:37,116 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/05f1e6bb9/1a97700f9308452dae6178e8f635297b/FLAGedd0119c7 [2022-02-20 17:10:37,508 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 17:10:37,508 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/tree_del_iter.c [2022-02-20 17:10:37,515 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/05f1e6bb9/1a97700f9308452dae6178e8f635297b/FLAGedd0119c7 [2022-02-20 17:10:37,910 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/05f1e6bb9/1a97700f9308452dae6178e8f635297b [2022-02-20 17:10:37,913 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 17:10:37,914 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 17:10:37,915 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 17:10:37,915 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 17:10:37,917 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 17:10:37,918 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 05:10:37" (1/1) ... [2022-02-20 17:10:37,919 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@3ce7d2ee and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:37, skipping insertion in model container [2022-02-20 17:10:37,919 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 05:10:37" (1/1) ... [2022-02-20 17:10:37,924 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 17:10:37,938 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 17:10:38,065 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/tree_del_iter.c[586,599] [2022-02-20 17:10:38,090 WARN L1545 CHandler]: Possible shadowing of function min [2022-02-20 17:10:38,106 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 17:10:38,119 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 17:10:38,130 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/tree_del_iter.c[586,599] [2022-02-20 17:10:38,146 WARN L1545 CHandler]: Possible shadowing of function min [2022-02-20 17:10:38,159 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 17:10:38,173 INFO L208 MainTranslator]: Completed translation [2022-02-20 17:10:38,173 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38 WrapperNode [2022-02-20 17:10:38,173 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 17:10:38,174 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 17:10:38,174 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 17:10:38,174 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 17:10:38,179 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38" (1/1) ... [2022-02-20 17:10:38,195 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38" (1/1) ... [2022-02-20 17:10:38,224 INFO L137 Inliner]: procedures = 29, calls = 64, calls flagged for inlining = 5, calls inlined = 5, statements flattened = 115 [2022-02-20 17:10:38,224 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 17:10:38,225 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 17:10:38,225 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 17:10:38,225 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 17:10:38,230 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38" (1/1) ... [2022-02-20 17:10:38,231 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38" (1/1) ... [2022-02-20 17:10:38,243 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38" (1/1) ... [2022-02-20 17:10:38,244 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38" (1/1) ... [2022-02-20 17:10:38,256 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38" (1/1) ... [2022-02-20 17:10:38,266 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38" (1/1) ... [2022-02-20 17:10:38,280 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38" (1/1) ... [2022-02-20 17:10:38,283 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 17:10:38,283 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 17:10:38,284 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 17:10:38,284 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 17:10:38,285 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38" (1/1) ... [2022-02-20 17:10:38,291 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 17:10:38,300 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 17:10:38,322 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 17:10:38,345 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 17:10:38,362 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 17:10:38,362 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2022-02-20 17:10:38,362 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2022-02-20 17:10:38,362 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-02-20 17:10:38,362 INFO L130 BoogieDeclarations]: Found specification of procedure min [2022-02-20 17:10:38,363 INFO L138 BoogieDeclarations]: Found implementation of procedure min [2022-02-20 17:10:38,363 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-02-20 17:10:38,363 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.meminit [2022-02-20 17:10:38,363 INFO L138 BoogieDeclarations]: Found implementation of procedure #Ultimate.meminit [2022-02-20 17:10:38,363 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2022-02-20 17:10:38,363 INFO L130 BoogieDeclarations]: Found specification of procedure nondet_tree [2022-02-20 17:10:38,363 INFO L138 BoogieDeclarations]: Found implementation of procedure nondet_tree [2022-02-20 17:10:38,363 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-02-20 17:10:38,364 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2022-02-20 17:10:38,364 INFO L130 BoogieDeclarations]: Found specification of procedure size [2022-02-20 17:10:38,364 INFO L138 BoogieDeclarations]: Found implementation of procedure size [2022-02-20 17:10:38,364 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 17:10:38,364 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 17:10:38,364 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-02-20 17:10:38,364 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-02-20 17:10:38,364 INFO L130 BoogieDeclarations]: Found specification of procedure tree_inorder [2022-02-20 17:10:38,365 INFO L138 BoogieDeclarations]: Found implementation of procedure tree_inorder [2022-02-20 17:10:38,365 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-02-20 17:10:38,430 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 17:10:38,431 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 17:10:38,711 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 17:10:38,716 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 17:10:38,716 INFO L299 CfgBuilder]: Removed 3 assume(true) statements. [2022-02-20 17:10:38,717 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 05:10:38 BoogieIcfgContainer [2022-02-20 17:10:38,717 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 17:10:38,718 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 17:10:38,718 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 17:10:38,721 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 17:10:38,721 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 05:10:37" (1/3) ... [2022-02-20 17:10:38,721 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@20eadd69 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 05:10:38, skipping insertion in model container [2022-02-20 17:10:38,721 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:38" (2/3) ... [2022-02-20 17:10:38,722 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@20eadd69 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 05:10:38, skipping insertion in model container [2022-02-20 17:10:38,722 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 05:10:38" (3/3) ... [2022-02-20 17:10:38,722 INFO L111 eAbstractionObserver]: Analyzing ICFG tree_del_iter.c [2022-02-20 17:10:38,725 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 17:10:38,726 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 17:10:38,751 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 17:10:38,755 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 17:10:38,755 INFO L340 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-02-20 17:10:38,776 INFO L276 IsEmpty]: Start isEmpty. Operand has 83 states, 55 states have (on average 1.290909090909091) internal successors, (71), 56 states have internal predecessors, (71), 20 states have call successors, (20), 6 states have call predecessors, (20), 6 states have return successors, (20), 20 states have call predecessors, (20), 20 states have call successors, (20) [2022-02-20 17:10:38,780 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2022-02-20 17:10:38,781 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 17:10:38,781 INFO L514 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 17:10:38,781 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 17:10:38,786 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 17:10:38,787 INFO L85 PathProgramCache]: Analyzing trace with hash 1252310823, now seen corresponding path program 1 times [2022-02-20 17:10:38,792 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 17:10:38,793 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [45277895] [2022-02-20 17:10:38,793 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:38,794 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 17:10:38,884 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:38,952 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 17:10:38,955 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:38,964 INFO L290 TraceCheckUtils]: 0: Hoare triple {108#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {86#true} is VALID [2022-02-20 17:10:38,964 INFO L290 TraceCheckUtils]: 1: Hoare triple {86#true} assume true; {86#true} is VALID [2022-02-20 17:10:38,965 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {86#true} {86#true} #159#return; {86#true} is VALID [2022-02-20 17:10:38,965 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 7 [2022-02-20 17:10:38,967 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:38,970 INFO L290 TraceCheckUtils]: 0: Hoare triple {86#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {86#true} is VALID [2022-02-20 17:10:38,970 INFO L290 TraceCheckUtils]: 1: Hoare triple {86#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {86#true} is VALID [2022-02-20 17:10:38,970 INFO L290 TraceCheckUtils]: 2: Hoare triple {86#true} assume true; {86#true} is VALID [2022-02-20 17:10:38,970 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {86#true} {86#true} #161#return; {86#true} is VALID [2022-02-20 17:10:38,971 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 13 [2022-02-20 17:10:38,973 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:38,983 INFO L290 TraceCheckUtils]: 0: Hoare triple {86#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {86#true} is VALID [2022-02-20 17:10:38,983 INFO L290 TraceCheckUtils]: 1: Hoare triple {86#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {109#(= |size_#res| 0)} is VALID [2022-02-20 17:10:38,984 INFO L290 TraceCheckUtils]: 2: Hoare triple {109#(= |size_#res| 0)} assume true; {109#(= |size_#res| 0)} is VALID [2022-02-20 17:10:38,985 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {109#(= |size_#res| 0)} {86#true} #163#return; {99#(= |ULTIMATE.start_task_#t~ret33#1| 0)} is VALID [2022-02-20 17:10:38,989 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 21 [2022-02-20 17:10:38,991 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:38,995 INFO L290 TraceCheckUtils]: 0: Hoare triple {110#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {86#true} is VALID [2022-02-20 17:10:38,995 INFO L290 TraceCheckUtils]: 1: Hoare triple {86#true} assume true; {86#true} is VALID [2022-02-20 17:10:38,995 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {86#true} {87#false} #165#return; {87#false} is VALID [2022-02-20 17:10:39,004 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 26 [2022-02-20 17:10:39,006 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:39,010 INFO L290 TraceCheckUtils]: 0: Hoare triple {111#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {86#true} is VALID [2022-02-20 17:10:39,010 INFO L290 TraceCheckUtils]: 1: Hoare triple {86#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {86#true} is VALID [2022-02-20 17:10:39,010 INFO L290 TraceCheckUtils]: 2: Hoare triple {86#true} assume true; {86#true} is VALID [2022-02-20 17:10:39,010 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {86#true} {87#false} #167#return; {87#false} is VALID [2022-02-20 17:10:39,010 INFO L290 TraceCheckUtils]: 0: Hoare triple {86#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(16, 2);call #Ultimate.allocInit(12, 3); {86#true} is VALID [2022-02-20 17:10:39,011 INFO L290 TraceCheckUtils]: 1: Hoare triple {86#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {86#true} is VALID [2022-02-20 17:10:39,011 INFO L272 TraceCheckUtils]: 2: Hoare triple {86#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {108#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:39,012 INFO L290 TraceCheckUtils]: 3: Hoare triple {108#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {86#true} is VALID [2022-02-20 17:10:39,012 INFO L290 TraceCheckUtils]: 4: Hoare triple {86#true} assume true; {86#true} is VALID [2022-02-20 17:10:39,012 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {86#true} {86#true} #159#return; {86#true} is VALID [2022-02-20 17:10:39,012 INFO L290 TraceCheckUtils]: 6: Hoare triple {86#true} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {86#true} is VALID [2022-02-20 17:10:39,012 INFO L272 TraceCheckUtils]: 7: Hoare triple {86#true} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {86#true} is VALID [2022-02-20 17:10:39,013 INFO L290 TraceCheckUtils]: 8: Hoare triple {86#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {86#true} is VALID [2022-02-20 17:10:39,013 INFO L290 TraceCheckUtils]: 9: Hoare triple {86#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {86#true} is VALID [2022-02-20 17:10:39,013 INFO L290 TraceCheckUtils]: 10: Hoare triple {86#true} assume true; {86#true} is VALID [2022-02-20 17:10:39,013 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {86#true} {86#true} #161#return; {86#true} is VALID [2022-02-20 17:10:39,013 INFO L290 TraceCheckUtils]: 12: Hoare triple {86#true} assume -2147483648 <= task_#t~ret32#1 && task_#t~ret32#1 <= 2147483647;task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4); {86#true} is VALID [2022-02-20 17:10:39,014 INFO L272 TraceCheckUtils]: 13: Hoare triple {86#true} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {86#true} is VALID [2022-02-20 17:10:39,014 INFO L290 TraceCheckUtils]: 14: Hoare triple {86#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {86#true} is VALID [2022-02-20 17:10:39,014 INFO L290 TraceCheckUtils]: 15: Hoare triple {86#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {109#(= |size_#res| 0)} is VALID [2022-02-20 17:10:39,015 INFO L290 TraceCheckUtils]: 16: Hoare triple {109#(= |size_#res| 0)} assume true; {109#(= |size_#res| 0)} is VALID [2022-02-20 17:10:39,015 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {109#(= |size_#res| 0)} {86#true} #163#return; {99#(= |ULTIMATE.start_task_#t~ret33#1| 0)} is VALID [2022-02-20 17:10:39,016 INFO L290 TraceCheckUtils]: 18: Hoare triple {99#(= |ULTIMATE.start_task_#t~ret33#1| 0)} assume -2147483648 <= task_#t~ret33#1 && task_#t~ret33#1 <= 2147483647;task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0 != task_~n~1#1 then 1 else 0);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {100#(and (= |ULTIMATE.start_assume_cycle_if_not_~cond#1| 0) (= |ULTIMATE.start_task_~n~1#1| 0))} is VALID [2022-02-20 17:10:39,017 INFO L290 TraceCheckUtils]: 19: Hoare triple {100#(and (= |ULTIMATE.start_assume_cycle_if_not_~cond#1| 0) (= |ULTIMATE.start_task_~n~1#1| 0))} assume !(0 == assume_cycle_if_not_~cond#1); {87#false} is VALID [2022-02-20 17:10:39,017 INFO L290 TraceCheckUtils]: 20: Hoare triple {87#false} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(4 * task_~n~1#1); {87#false} is VALID [2022-02-20 17:10:39,017 INFO L272 TraceCheckUtils]: 21: Hoare triple {87#false} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4, 4 * task_~n~1#1); {110#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 17:10:39,017 INFO L290 TraceCheckUtils]: 22: Hoare triple {110#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {86#true} is VALID [2022-02-20 17:10:39,017 INFO L290 TraceCheckUtils]: 23: Hoare triple {86#true} assume true; {86#true} is VALID [2022-02-20 17:10:39,017 INFO L284 TraceCheckUtils]: 24: Hoare quadruple {86#true} {87#false} #165#return; {87#false} is VALID [2022-02-20 17:10:39,018 INFO L290 TraceCheckUtils]: 25: Hoare triple {87#false} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {87#false} is VALID [2022-02-20 17:10:39,018 INFO L272 TraceCheckUtils]: 26: Hoare triple {87#false} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {111#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2022-02-20 17:10:39,018 INFO L290 TraceCheckUtils]: 27: Hoare triple {111#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {86#true} is VALID [2022-02-20 17:10:39,018 INFO L290 TraceCheckUtils]: 28: Hoare triple {86#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {86#true} is VALID [2022-02-20 17:10:39,018 INFO L290 TraceCheckUtils]: 29: Hoare triple {86#true} assume true; {86#true} is VALID [2022-02-20 17:10:39,019 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {86#true} {87#false} #167#return; {87#false} is VALID [2022-02-20 17:10:39,019 INFO L290 TraceCheckUtils]: 31: Hoare triple {87#false} assume -2147483648 <= task_#t~ret35#1 && task_#t~ret35#1 <= 2147483647;havoc task_#t~ret35#1;call task_#t~mem36#1 := read~int(task_~x~0#1.base, task_~x~0#1.offset, 4); {87#false} is VALID [2022-02-20 17:10:39,019 INFO L272 TraceCheckUtils]: 32: Hoare triple {87#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1 else 0)); {87#false} is VALID [2022-02-20 17:10:39,019 INFO L290 TraceCheckUtils]: 33: Hoare triple {87#false} ~cond := #in~cond; {87#false} is VALID [2022-02-20 17:10:39,019 INFO L290 TraceCheckUtils]: 34: Hoare triple {87#false} assume 0 == ~cond; {87#false} is VALID [2022-02-20 17:10:39,019 INFO L290 TraceCheckUtils]: 35: Hoare triple {87#false} assume !false; {87#false} is VALID [2022-02-20 17:10:39,020 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 17:10:39,020 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 17:10:39,020 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [45277895] [2022-02-20 17:10:39,021 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [45277895] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 17:10:39,021 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 17:10:39,021 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-02-20 17:10:39,022 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1906791839] [2022-02-20 17:10:39,023 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 17:10:39,026 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 3.125) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 5 states have call predecessors, (6), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) Word has length 36 [2022-02-20 17:10:39,027 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 17:10:39,030 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 8 states, 8 states have (on average 3.125) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 5 states have call predecessors, (6), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 17:10:39,059 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:39,059 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-02-20 17:10:39,059 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 17:10:39,071 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-02-20 17:10:39,072 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=16, Invalid=40, Unknown=0, NotChecked=0, Total=56 [2022-02-20 17:10:39,074 INFO L87 Difference]: Start difference. First operand has 83 states, 55 states have (on average 1.290909090909091) internal successors, (71), 56 states have internal predecessors, (71), 20 states have call successors, (20), 6 states have call predecessors, (20), 6 states have return successors, (20), 20 states have call predecessors, (20), 20 states have call successors, (20) Second operand has 8 states, 8 states have (on average 3.125) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 5 states have call predecessors, (6), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 17:10:39,892 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:39,892 INFO L93 Difference]: Finished difference Result 149 states and 208 transitions. [2022-02-20 17:10:39,892 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-02-20 17:10:39,893 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 3.125) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 5 states have call predecessors, (6), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) Word has length 36 [2022-02-20 17:10:39,893 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 17:10:39,894 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 3.125) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 5 states have call predecessors, (6), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 17:10:39,903 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 208 transitions. [2022-02-20 17:10:39,903 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 3.125) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 5 states have call predecessors, (6), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 17:10:39,911 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 208 transitions. [2022-02-20 17:10:39,911 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 208 transitions. [2022-02-20 17:10:40,089 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 208 edges. 208 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:40,106 INFO L225 Difference]: With dead ends: 149 [2022-02-20 17:10:40,107 INFO L226 Difference]: Without dead ends: 84 [2022-02-20 17:10:40,109 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=22, Invalid=50, Unknown=0, NotChecked=0, Total=72 [2022-02-20 17:10:40,111 INFO L933 BasicCegarLoop]: 91 mSDtfsCounter, 58 mSDsluCounter, 217 mSDsCounter, 0 mSdLazyCounter, 229 mSolverCounterSat, 47 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 64 SdHoareTripleChecker+Valid, 308 SdHoareTripleChecker+Invalid, 276 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 47 IncrementalHoareTripleChecker+Valid, 229 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-02-20 17:10:40,112 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [64 Valid, 308 Invalid, 276 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [47 Valid, 229 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-02-20 17:10:40,121 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 84 states. [2022-02-20 17:10:40,133 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 84 to 79. [2022-02-20 17:10:40,134 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 17:10:40,135 INFO L82 GeneralOperation]: Start isEquivalent. First operand 84 states. Second operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) [2022-02-20 17:10:40,135 INFO L74 IsIncluded]: Start isIncluded. First operand 84 states. Second operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) [2022-02-20 17:10:40,136 INFO L87 Difference]: Start difference. First operand 84 states. Second operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) [2022-02-20 17:10:40,142 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:40,142 INFO L93 Difference]: Finished difference Result 84 states and 113 transitions. [2022-02-20 17:10:40,142 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 113 transitions. [2022-02-20 17:10:40,143 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:40,143 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:40,144 INFO L74 IsIncluded]: Start isIncluded. First operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) Second operand 84 states. [2022-02-20 17:10:40,145 INFO L87 Difference]: Start difference. First operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) Second operand 84 states. [2022-02-20 17:10:40,149 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:40,149 INFO L93 Difference]: Finished difference Result 84 states and 113 transitions. [2022-02-20 17:10:40,150 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 113 transitions. [2022-02-20 17:10:40,151 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:40,151 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:40,151 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 17:10:40,151 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 17:10:40,152 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) [2022-02-20 17:10:40,155 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 79 states to 79 states and 103 transitions. [2022-02-20 17:10:40,156 INFO L78 Accepts]: Start accepts. Automaton has 79 states and 103 transitions. Word has length 36 [2022-02-20 17:10:40,156 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 17:10:40,156 INFO L470 AbstractCegarLoop]: Abstraction has 79 states and 103 transitions. [2022-02-20 17:10:40,157 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 8 states have (on average 3.125) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 5 states have call predecessors, (6), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 17:10:40,157 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 103 transitions. [2022-02-20 17:10:40,158 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-02-20 17:10:40,159 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 17:10:40,159 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 17:10:40,159 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-02-20 17:10:40,159 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 17:10:40,160 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 17:10:40,160 INFO L85 PathProgramCache]: Analyzing trace with hash 1818033216, now seen corresponding path program 1 times [2022-02-20 17:10:40,160 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 17:10:40,160 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1455446332] [2022-02-20 17:10:40,160 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:40,160 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 17:10:40,180 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:40,218 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 17:10:40,222 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:40,245 INFO L290 TraceCheckUtils]: 0: Hoare triple {626#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2022-02-20 17:10:40,246 INFO L290 TraceCheckUtils]: 1: Hoare triple {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} assume true; {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2022-02-20 17:10:40,246 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} {592#true} #159#return; {597#(and (= |ULTIMATE.start_main_#t~ret45#1.offset| 0) (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} is VALID [2022-02-20 17:10:40,247 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 7 [2022-02-20 17:10:40,249 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:40,252 INFO L290 TraceCheckUtils]: 0: Hoare triple {592#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {592#true} is VALID [2022-02-20 17:10:40,252 INFO L290 TraceCheckUtils]: 1: Hoare triple {592#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {592#true} is VALID [2022-02-20 17:10:40,252 INFO L290 TraceCheckUtils]: 2: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,253 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {592#true} {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} #161#return; {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:40,253 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 13 [2022-02-20 17:10:40,258 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:40,283 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 17:10:40,284 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:40,287 INFO L290 TraceCheckUtils]: 0: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {592#true} is VALID [2022-02-20 17:10:40,287 INFO L290 TraceCheckUtils]: 1: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {592#true} is VALID [2022-02-20 17:10:40,287 INFO L290 TraceCheckUtils]: 2: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,288 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {592#true} {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} #155#return; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,288 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 17:10:40,290 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:40,292 INFO L290 TraceCheckUtils]: 0: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {592#true} is VALID [2022-02-20 17:10:40,292 INFO L290 TraceCheckUtils]: 1: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {592#true} is VALID [2022-02-20 17:10:40,292 INFO L290 TraceCheckUtils]: 2: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,293 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {592#true} {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} #157#return; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,294 INFO L290 TraceCheckUtils]: 0: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {628#(and (= |size_#in~t.offset| size_~t.offset) (= |size_#in~t.base| size_~t.base))} is VALID [2022-02-20 17:10:40,294 INFO L290 TraceCheckUtils]: 1: Hoare triple {628#(and (= |size_#in~t.offset| size_~t.offset) (= |size_#in~t.base| size_~t.base))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,294 INFO L272 TraceCheckUtils]: 2: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {592#true} is VALID [2022-02-20 17:10:40,295 INFO L290 TraceCheckUtils]: 3: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {592#true} is VALID [2022-02-20 17:10:40,295 INFO L290 TraceCheckUtils]: 4: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {592#true} is VALID [2022-02-20 17:10:40,295 INFO L290 TraceCheckUtils]: 5: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,296 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {592#true} {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} #155#return; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,296 INFO L290 TraceCheckUtils]: 7: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume -2147483648 <= #t~ret29 && #t~ret29 <= 2147483647;call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,296 INFO L272 TraceCheckUtils]: 8: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {592#true} is VALID [2022-02-20 17:10:40,296 INFO L290 TraceCheckUtils]: 9: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {592#true} is VALID [2022-02-20 17:10:40,296 INFO L290 TraceCheckUtils]: 10: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {592#true} is VALID [2022-02-20 17:10:40,297 INFO L290 TraceCheckUtils]: 11: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,297 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {592#true} {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} #157#return; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,298 INFO L290 TraceCheckUtils]: 13: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume -2147483648 <= #t~ret31 && #t~ret31 <= 2147483647;#res := 1 + (#t~ret29 + #t~ret31);havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,298 INFO L290 TraceCheckUtils]: 14: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume true; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,299 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} #163#return; {593#false} is VALID [2022-02-20 17:10:40,304 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 33 [2022-02-20 17:10:40,305 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:40,308 INFO L290 TraceCheckUtils]: 0: Hoare triple {638#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {592#true} is VALID [2022-02-20 17:10:40,308 INFO L290 TraceCheckUtils]: 1: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,308 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {592#true} {593#false} #165#return; {593#false} is VALID [2022-02-20 17:10:40,316 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-02-20 17:10:40,318 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:40,320 INFO L290 TraceCheckUtils]: 0: Hoare triple {639#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {592#true} is VALID [2022-02-20 17:10:40,320 INFO L290 TraceCheckUtils]: 1: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {592#true} is VALID [2022-02-20 17:10:40,321 INFO L290 TraceCheckUtils]: 2: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,321 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {592#true} {593#false} #167#return; {593#false} is VALID [2022-02-20 17:10:40,321 INFO L290 TraceCheckUtils]: 0: Hoare triple {592#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(16, 2);call #Ultimate.allocInit(12, 3); {592#true} is VALID [2022-02-20 17:10:40,321 INFO L290 TraceCheckUtils]: 1: Hoare triple {592#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {592#true} is VALID [2022-02-20 17:10:40,322 INFO L272 TraceCheckUtils]: 2: Hoare triple {592#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {626#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:40,322 INFO L290 TraceCheckUtils]: 3: Hoare triple {626#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2022-02-20 17:10:40,323 INFO L290 TraceCheckUtils]: 4: Hoare triple {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} assume true; {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2022-02-20 17:10:40,323 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} {592#true} #159#return; {597#(and (= |ULTIMATE.start_main_#t~ret45#1.offset| 0) (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} is VALID [2022-02-20 17:10:40,324 INFO L290 TraceCheckUtils]: 6: Hoare triple {597#(and (= |ULTIMATE.start_main_#t~ret45#1.offset| 0) (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:40,324 INFO L272 TraceCheckUtils]: 7: Hoare triple {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {592#true} is VALID [2022-02-20 17:10:40,324 INFO L290 TraceCheckUtils]: 8: Hoare triple {592#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {592#true} is VALID [2022-02-20 17:10:40,324 INFO L290 TraceCheckUtils]: 9: Hoare triple {592#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {592#true} is VALID [2022-02-20 17:10:40,324 INFO L290 TraceCheckUtils]: 10: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,325 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {592#true} {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} #161#return; {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:40,326 INFO L290 TraceCheckUtils]: 12: Hoare triple {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} assume -2147483648 <= task_#t~ret32#1 && task_#t~ret32#1 <= 2147483647;task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4); {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:40,326 INFO L272 TraceCheckUtils]: 13: Hoare triple {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {592#true} is VALID [2022-02-20 17:10:40,326 INFO L290 TraceCheckUtils]: 14: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {628#(and (= |size_#in~t.offset| size_~t.offset) (= |size_#in~t.base| size_~t.base))} is VALID [2022-02-20 17:10:40,327 INFO L290 TraceCheckUtils]: 15: Hoare triple {628#(and (= |size_#in~t.offset| size_~t.offset) (= |size_#in~t.base| size_~t.base))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,327 INFO L272 TraceCheckUtils]: 16: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {592#true} is VALID [2022-02-20 17:10:40,327 INFO L290 TraceCheckUtils]: 17: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {592#true} is VALID [2022-02-20 17:10:40,327 INFO L290 TraceCheckUtils]: 18: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {592#true} is VALID [2022-02-20 17:10:40,328 INFO L290 TraceCheckUtils]: 19: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,328 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {592#true} {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} #155#return; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,329 INFO L290 TraceCheckUtils]: 21: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume -2147483648 <= #t~ret29 && #t~ret29 <= 2147483647;call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,329 INFO L272 TraceCheckUtils]: 22: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {592#true} is VALID [2022-02-20 17:10:40,329 INFO L290 TraceCheckUtils]: 23: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {592#true} is VALID [2022-02-20 17:10:40,329 INFO L290 TraceCheckUtils]: 24: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {592#true} is VALID [2022-02-20 17:10:40,329 INFO L290 TraceCheckUtils]: 25: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,330 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {592#true} {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} #157#return; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,330 INFO L290 TraceCheckUtils]: 27: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume -2147483648 <= #t~ret31 && #t~ret31 <= 2147483647;#res := 1 + (#t~ret29 + #t~ret31);havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,331 INFO L290 TraceCheckUtils]: 28: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume true; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,331 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} #163#return; {593#false} is VALID [2022-02-20 17:10:40,331 INFO L290 TraceCheckUtils]: 30: Hoare triple {593#false} assume -2147483648 <= task_#t~ret33#1 && task_#t~ret33#1 <= 2147483647;task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0 != task_~n~1#1 then 1 else 0);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {593#false} is VALID [2022-02-20 17:10:40,332 INFO L290 TraceCheckUtils]: 31: Hoare triple {593#false} assume !(0 == assume_cycle_if_not_~cond#1); {593#false} is VALID [2022-02-20 17:10:40,332 INFO L290 TraceCheckUtils]: 32: Hoare triple {593#false} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(4 * task_~n~1#1); {593#false} is VALID [2022-02-20 17:10:40,332 INFO L272 TraceCheckUtils]: 33: Hoare triple {593#false} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4, 4 * task_~n~1#1); {638#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 17:10:40,332 INFO L290 TraceCheckUtils]: 34: Hoare triple {638#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {592#true} is VALID [2022-02-20 17:10:40,332 INFO L290 TraceCheckUtils]: 35: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,332 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {592#true} {593#false} #165#return; {593#false} is VALID [2022-02-20 17:10:40,333 INFO L290 TraceCheckUtils]: 37: Hoare triple {593#false} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {593#false} is VALID [2022-02-20 17:10:40,333 INFO L272 TraceCheckUtils]: 38: Hoare triple {593#false} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {639#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2022-02-20 17:10:40,333 INFO L290 TraceCheckUtils]: 39: Hoare triple {639#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {592#true} is VALID [2022-02-20 17:10:40,333 INFO L290 TraceCheckUtils]: 40: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {592#true} is VALID [2022-02-20 17:10:40,333 INFO L290 TraceCheckUtils]: 41: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,333 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {592#true} {593#false} #167#return; {593#false} is VALID [2022-02-20 17:10:40,334 INFO L290 TraceCheckUtils]: 43: Hoare triple {593#false} assume -2147483648 <= task_#t~ret35#1 && task_#t~ret35#1 <= 2147483647;havoc task_#t~ret35#1;call task_#t~mem36#1 := read~int(task_~x~0#1.base, task_~x~0#1.offset, 4); {593#false} is VALID [2022-02-20 17:10:40,334 INFO L272 TraceCheckUtils]: 44: Hoare triple {593#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1 else 0)); {593#false} is VALID [2022-02-20 17:10:40,334 INFO L290 TraceCheckUtils]: 45: Hoare triple {593#false} ~cond := #in~cond; {593#false} is VALID [2022-02-20 17:10:40,334 INFO L290 TraceCheckUtils]: 46: Hoare triple {593#false} assume 0 == ~cond; {593#false} is VALID [2022-02-20 17:10:40,334 INFO L290 TraceCheckUtils]: 47: Hoare triple {593#false} assume !false; {593#false} is VALID [2022-02-20 17:10:40,335 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 17:10:40,335 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 17:10:40,335 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1455446332] [2022-02-20 17:10:40,335 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1455446332] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 17:10:40,335 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1626345476] [2022-02-20 17:10:40,335 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:40,336 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 17:10:40,336 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 17:10:40,337 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 17:10:40,373 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2022-02-20 17:10:40,413 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:40,415 INFO L263 TraceCheckSpWp]: Trace formula consists of 245 conjuncts, 25 conjunts are in the unsatisfiable core [2022-02-20 17:10:40,450 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:40,454 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 17:10:40,705 INFO L290 TraceCheckUtils]: 0: Hoare triple {592#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(16, 2);call #Ultimate.allocInit(12, 3); {592#true} is VALID [2022-02-20 17:10:40,705 INFO L290 TraceCheckUtils]: 1: Hoare triple {592#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {592#true} is VALID [2022-02-20 17:10:40,706 INFO L272 TraceCheckUtils]: 2: Hoare triple {592#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {592#true} is VALID [2022-02-20 17:10:40,706 INFO L290 TraceCheckUtils]: 3: Hoare triple {592#true} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2022-02-20 17:10:40,706 INFO L290 TraceCheckUtils]: 4: Hoare triple {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} assume true; {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2022-02-20 17:10:40,707 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} {592#true} #159#return; {597#(and (= |ULTIMATE.start_main_#t~ret45#1.offset| 0) (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} is VALID [2022-02-20 17:10:40,708 INFO L290 TraceCheckUtils]: 6: Hoare triple {597#(and (= |ULTIMATE.start_main_#t~ret45#1.offset| 0) (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:40,708 INFO L272 TraceCheckUtils]: 7: Hoare triple {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {592#true} is VALID [2022-02-20 17:10:40,708 INFO L290 TraceCheckUtils]: 8: Hoare triple {592#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {592#true} is VALID [2022-02-20 17:10:40,708 INFO L290 TraceCheckUtils]: 9: Hoare triple {592#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {592#true} is VALID [2022-02-20 17:10:40,708 INFO L290 TraceCheckUtils]: 10: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,728 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {592#true} {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} #161#return; {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:40,729 INFO L290 TraceCheckUtils]: 12: Hoare triple {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} assume -2147483648 <= task_#t~ret32#1 && task_#t~ret32#1 <= 2147483647;task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4); {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:40,729 INFO L272 TraceCheckUtils]: 13: Hoare triple {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {592#true} is VALID [2022-02-20 17:10:40,729 INFO L290 TraceCheckUtils]: 14: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {628#(and (= |size_#in~t.offset| size_~t.offset) (= |size_#in~t.base| size_~t.base))} is VALID [2022-02-20 17:10:40,730 INFO L290 TraceCheckUtils]: 15: Hoare triple {628#(and (= |size_#in~t.offset| size_~t.offset) (= |size_#in~t.base| size_~t.base))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,730 INFO L272 TraceCheckUtils]: 16: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {592#true} is VALID [2022-02-20 17:10:40,730 INFO L290 TraceCheckUtils]: 17: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {592#true} is VALID [2022-02-20 17:10:40,730 INFO L290 TraceCheckUtils]: 18: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {592#true} is VALID [2022-02-20 17:10:40,730 INFO L290 TraceCheckUtils]: 19: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,731 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {592#true} {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} #155#return; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,731 INFO L290 TraceCheckUtils]: 21: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume -2147483648 <= #t~ret29 && #t~ret29 <= 2147483647;call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,732 INFO L272 TraceCheckUtils]: 22: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {592#true} is VALID [2022-02-20 17:10:40,732 INFO L290 TraceCheckUtils]: 23: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {592#true} is VALID [2022-02-20 17:10:40,732 INFO L290 TraceCheckUtils]: 24: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {592#true} is VALID [2022-02-20 17:10:40,732 INFO L290 TraceCheckUtils]: 25: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:40,733 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {592#true} {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} #157#return; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,733 INFO L290 TraceCheckUtils]: 27: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume -2147483648 <= #t~ret31 && #t~ret31 <= 2147483647;#res := 1 + (#t~ret29 + #t~ret31);havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,733 INFO L290 TraceCheckUtils]: 28: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume true; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:40,734 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} #163#return; {593#false} is VALID [2022-02-20 17:10:40,734 INFO L290 TraceCheckUtils]: 30: Hoare triple {593#false} assume -2147483648 <= task_#t~ret33#1 && task_#t~ret33#1 <= 2147483647;task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0 != task_~n~1#1 then 1 else 0);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {593#false} is VALID [2022-02-20 17:10:40,735 INFO L290 TraceCheckUtils]: 31: Hoare triple {593#false} assume !(0 == assume_cycle_if_not_~cond#1); {593#false} is VALID [2022-02-20 17:10:40,735 INFO L290 TraceCheckUtils]: 32: Hoare triple {593#false} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(4 * task_~n~1#1); {593#false} is VALID [2022-02-20 17:10:40,735 INFO L272 TraceCheckUtils]: 33: Hoare triple {593#false} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4, 4 * task_~n~1#1); {593#false} is VALID [2022-02-20 17:10:40,735 INFO L290 TraceCheckUtils]: 34: Hoare triple {593#false} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {593#false} is VALID [2022-02-20 17:10:40,735 INFO L290 TraceCheckUtils]: 35: Hoare triple {593#false} assume true; {593#false} is VALID [2022-02-20 17:10:40,735 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {593#false} {593#false} #165#return; {593#false} is VALID [2022-02-20 17:10:40,736 INFO L290 TraceCheckUtils]: 37: Hoare triple {593#false} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {593#false} is VALID [2022-02-20 17:10:40,736 INFO L272 TraceCheckUtils]: 38: Hoare triple {593#false} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {593#false} is VALID [2022-02-20 17:10:40,736 INFO L290 TraceCheckUtils]: 39: Hoare triple {593#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {593#false} is VALID [2022-02-20 17:10:40,736 INFO L290 TraceCheckUtils]: 40: Hoare triple {593#false} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {593#false} is VALID [2022-02-20 17:10:40,736 INFO L290 TraceCheckUtils]: 41: Hoare triple {593#false} assume true; {593#false} is VALID [2022-02-20 17:10:40,736 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {593#false} {593#false} #167#return; {593#false} is VALID [2022-02-20 17:10:40,737 INFO L290 TraceCheckUtils]: 43: Hoare triple {593#false} assume -2147483648 <= task_#t~ret35#1 && task_#t~ret35#1 <= 2147483647;havoc task_#t~ret35#1;call task_#t~mem36#1 := read~int(task_~x~0#1.base, task_~x~0#1.offset, 4); {593#false} is VALID [2022-02-20 17:10:40,737 INFO L272 TraceCheckUtils]: 44: Hoare triple {593#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1 else 0)); {593#false} is VALID [2022-02-20 17:10:40,737 INFO L290 TraceCheckUtils]: 45: Hoare triple {593#false} ~cond := #in~cond; {593#false} is VALID [2022-02-20 17:10:40,737 INFO L290 TraceCheckUtils]: 46: Hoare triple {593#false} assume 0 == ~cond; {593#false} is VALID [2022-02-20 17:10:40,737 INFO L290 TraceCheckUtils]: 47: Hoare triple {593#false} assume !false; {593#false} is VALID [2022-02-20 17:10:40,738 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 17:10:40,738 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 17:10:41,092 INFO L290 TraceCheckUtils]: 47: Hoare triple {593#false} assume !false; {593#false} is VALID [2022-02-20 17:10:41,092 INFO L290 TraceCheckUtils]: 46: Hoare triple {593#false} assume 0 == ~cond; {593#false} is VALID [2022-02-20 17:10:41,092 INFO L290 TraceCheckUtils]: 45: Hoare triple {593#false} ~cond := #in~cond; {593#false} is VALID [2022-02-20 17:10:41,092 INFO L272 TraceCheckUtils]: 44: Hoare triple {593#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1 else 0)); {593#false} is VALID [2022-02-20 17:10:41,093 INFO L290 TraceCheckUtils]: 43: Hoare triple {593#false} assume -2147483648 <= task_#t~ret35#1 && task_#t~ret35#1 <= 2147483647;havoc task_#t~ret35#1;call task_#t~mem36#1 := read~int(task_~x~0#1.base, task_~x~0#1.offset, 4); {593#false} is VALID [2022-02-20 17:10:41,093 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {592#true} {593#false} #167#return; {593#false} is VALID [2022-02-20 17:10:41,093 INFO L290 TraceCheckUtils]: 41: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:41,093 INFO L290 TraceCheckUtils]: 40: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {592#true} is VALID [2022-02-20 17:10:41,093 INFO L290 TraceCheckUtils]: 39: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {592#true} is VALID [2022-02-20 17:10:41,093 INFO L272 TraceCheckUtils]: 38: Hoare triple {593#false} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {592#true} is VALID [2022-02-20 17:10:41,093 INFO L290 TraceCheckUtils]: 37: Hoare triple {593#false} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {593#false} is VALID [2022-02-20 17:10:41,094 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {592#true} {593#false} #165#return; {593#false} is VALID [2022-02-20 17:10:41,094 INFO L290 TraceCheckUtils]: 35: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:41,094 INFO L290 TraceCheckUtils]: 34: Hoare triple {592#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {592#true} is VALID [2022-02-20 17:10:41,096 INFO L272 TraceCheckUtils]: 33: Hoare triple {593#false} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4, 4 * task_~n~1#1); {592#true} is VALID [2022-02-20 17:10:41,097 INFO L290 TraceCheckUtils]: 32: Hoare triple {593#false} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(4 * task_~n~1#1); {593#false} is VALID [2022-02-20 17:10:41,098 INFO L290 TraceCheckUtils]: 31: Hoare triple {593#false} assume !(0 == assume_cycle_if_not_~cond#1); {593#false} is VALID [2022-02-20 17:10:41,098 INFO L290 TraceCheckUtils]: 30: Hoare triple {593#false} assume -2147483648 <= task_#t~ret33#1 && task_#t~ret33#1 <= 2147483647;task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0 != task_~n~1#1 then 1 else 0);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {593#false} is VALID [2022-02-20 17:10:41,099 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} #163#return; {593#false} is VALID [2022-02-20 17:10:41,099 INFO L290 TraceCheckUtils]: 28: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume true; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:41,100 INFO L290 TraceCheckUtils]: 27: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume -2147483648 <= #t~ret31 && #t~ret31 <= 2147483647;#res := 1 + (#t~ret29 + #t~ret31);havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:41,100 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {592#true} {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} #157#return; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:41,103 INFO L290 TraceCheckUtils]: 25: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:41,103 INFO L290 TraceCheckUtils]: 24: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {592#true} is VALID [2022-02-20 17:10:41,104 INFO L290 TraceCheckUtils]: 23: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {592#true} is VALID [2022-02-20 17:10:41,105 INFO L272 TraceCheckUtils]: 22: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {592#true} is VALID [2022-02-20 17:10:41,105 INFO L290 TraceCheckUtils]: 21: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} assume -2147483648 <= #t~ret29 && #t~ret29 <= 2147483647;call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:41,106 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {592#true} {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} #155#return; {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:41,106 INFO L290 TraceCheckUtils]: 19: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:41,106 INFO L290 TraceCheckUtils]: 18: Hoare triple {592#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {592#true} is VALID [2022-02-20 17:10:41,106 INFO L290 TraceCheckUtils]: 17: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {592#true} is VALID [2022-02-20 17:10:41,106 INFO L272 TraceCheckUtils]: 16: Hoare triple {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {592#true} is VALID [2022-02-20 17:10:41,107 INFO L290 TraceCheckUtils]: 15: Hoare triple {883#(or (not (= |size_#in~t.offset| 0)) (and (= size_~t.offset 0) (= size_~t.base 0)) (not (= |size_#in~t.base| 0)))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {629#(or (not (= |size_#in~t.offset| 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:41,107 INFO L290 TraceCheckUtils]: 14: Hoare triple {592#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {883#(or (not (= |size_#in~t.offset| 0)) (and (= size_~t.offset 0) (= size_~t.base 0)) (not (= |size_#in~t.base| 0)))} is VALID [2022-02-20 17:10:41,108 INFO L272 TraceCheckUtils]: 13: Hoare triple {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {592#true} is VALID [2022-02-20 17:10:41,108 INFO L290 TraceCheckUtils]: 12: Hoare triple {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} assume -2147483648 <= task_#t~ret32#1 && task_#t~ret32#1 <= 2147483647;task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4); {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:41,109 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {592#true} {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} #161#return; {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:41,109 INFO L290 TraceCheckUtils]: 10: Hoare triple {592#true} assume true; {592#true} is VALID [2022-02-20 17:10:41,109 INFO L290 TraceCheckUtils]: 9: Hoare triple {592#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {592#true} is VALID [2022-02-20 17:10:41,109 INFO L290 TraceCheckUtils]: 8: Hoare triple {592#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {592#true} is VALID [2022-02-20 17:10:41,109 INFO L272 TraceCheckUtils]: 7: Hoare triple {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {592#true} is VALID [2022-02-20 17:10:41,110 INFO L290 TraceCheckUtils]: 6: Hoare triple {597#(and (= |ULTIMATE.start_main_#t~ret45#1.offset| 0) (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {598#(and (= |ULTIMATE.start_task_~t#1.offset| 0) (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:41,110 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} {592#true} #159#return; {597#(and (= |ULTIMATE.start_main_#t~ret45#1.offset| 0) (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} is VALID [2022-02-20 17:10:41,111 INFO L290 TraceCheckUtils]: 4: Hoare triple {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} assume true; {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2022-02-20 17:10:41,111 INFO L290 TraceCheckUtils]: 3: Hoare triple {592#true} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {627#(and (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2022-02-20 17:10:41,111 INFO L272 TraceCheckUtils]: 2: Hoare triple {592#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {592#true} is VALID [2022-02-20 17:10:41,112 INFO L290 TraceCheckUtils]: 1: Hoare triple {592#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {592#true} is VALID [2022-02-20 17:10:41,112 INFO L290 TraceCheckUtils]: 0: Hoare triple {592#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(16, 2);call #Ultimate.allocInit(12, 3); {592#true} is VALID [2022-02-20 17:10:41,112 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 17:10:41,112 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1626345476] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 17:10:41,114 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 17:10:41,114 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 7, 7] total 11 [2022-02-20 17:10:41,115 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1375967579] [2022-02-20 17:10:41,115 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 17:10:41,116 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 11 states have (on average 3.6363636363636362) internal successors, (40), 7 states have internal predecessors, (40), 4 states have call successors, (13), 5 states have call predecessors, (13), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) Word has length 48 [2022-02-20 17:10:41,119 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 17:10:41,120 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 11 states, 11 states have (on average 3.6363636363636362) internal successors, (40), 7 states have internal predecessors, (40), 4 states have call successors, (13), 5 states have call predecessors, (13), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:41,161 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:41,161 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-02-20 17:10:41,161 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 17:10:41,162 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-02-20 17:10:41,162 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=86, Unknown=0, NotChecked=0, Total=110 [2022-02-20 17:10:41,163 INFO L87 Difference]: Start difference. First operand 79 states and 103 transitions. Second operand has 11 states, 11 states have (on average 3.6363636363636362) internal successors, (40), 7 states have internal predecessors, (40), 4 states have call successors, (13), 5 states have call predecessors, (13), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:42,224 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:42,224 INFO L93 Difference]: Finished difference Result 143 states and 189 transitions. [2022-02-20 17:10:42,224 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-02-20 17:10:42,225 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 11 states have (on average 3.6363636363636362) internal successors, (40), 7 states have internal predecessors, (40), 4 states have call successors, (13), 5 states have call predecessors, (13), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) Word has length 48 [2022-02-20 17:10:42,225 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 17:10:42,225 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 11 states have (on average 3.6363636363636362) internal successors, (40), 7 states have internal predecessors, (40), 4 states have call successors, (13), 5 states have call predecessors, (13), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:42,229 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 185 transitions. [2022-02-20 17:10:42,229 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 11 states have (on average 3.6363636363636362) internal successors, (40), 7 states have internal predecessors, (40), 4 states have call successors, (13), 5 states have call predecessors, (13), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:42,233 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 185 transitions. [2022-02-20 17:10:42,233 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 185 transitions. [2022-02-20 17:10:42,384 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 185 edges. 185 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:42,387 INFO L225 Difference]: With dead ends: 143 [2022-02-20 17:10:42,388 INFO L226 Difference]: Without dead ends: 84 [2022-02-20 17:10:42,388 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 118 GetRequests, 102 SyntacticMatches, 3 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 13 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=50, Invalid=160, Unknown=0, NotChecked=0, Total=210 [2022-02-20 17:10:42,389 INFO L933 BasicCegarLoop]: 84 mSDtfsCounter, 61 mSDsluCounter, 313 mSDsCounter, 0 mSdLazyCounter, 350 mSolverCounterSat, 55 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 63 SdHoareTripleChecker+Valid, 397 SdHoareTripleChecker+Invalid, 405 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 55 IncrementalHoareTripleChecker+Valid, 350 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.4s IncrementalHoareTripleChecker+Time [2022-02-20 17:10:42,390 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [63 Valid, 397 Invalid, 405 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [55 Valid, 350 Invalid, 0 Unknown, 0 Unchecked, 0.4s Time] [2022-02-20 17:10:42,390 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 84 states. [2022-02-20 17:10:42,396 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 84 to 81. [2022-02-20 17:10:42,396 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 17:10:42,396 INFO L82 GeneralOperation]: Start isEquivalent. First operand 84 states. Second operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) [2022-02-20 17:10:42,397 INFO L74 IsIncluded]: Start isIncluded. First operand 84 states. Second operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) [2022-02-20 17:10:42,397 INFO L87 Difference]: Start difference. First operand 84 states. Second operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) [2022-02-20 17:10:42,400 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:42,401 INFO L93 Difference]: Finished difference Result 84 states and 112 transitions. [2022-02-20 17:10:42,401 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 112 transitions. [2022-02-20 17:10:42,402 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:42,402 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:42,402 INFO L74 IsIncluded]: Start isIncluded. First operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) Second operand 84 states. [2022-02-20 17:10:42,403 INFO L87 Difference]: Start difference. First operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) Second operand 84 states. [2022-02-20 17:10:42,406 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:42,406 INFO L93 Difference]: Finished difference Result 84 states and 112 transitions. [2022-02-20 17:10:42,406 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 112 transitions. [2022-02-20 17:10:42,407 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:42,407 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:42,407 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 17:10:42,407 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 17:10:42,408 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) [2022-02-20 17:10:42,410 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 106 transitions. [2022-02-20 17:10:42,410 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 106 transitions. Word has length 48 [2022-02-20 17:10:42,410 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 17:10:42,411 INFO L470 AbstractCegarLoop]: Abstraction has 81 states and 106 transitions. [2022-02-20 17:10:42,411 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 11 states, 11 states have (on average 3.6363636363636362) internal successors, (40), 7 states have internal predecessors, (40), 4 states have call successors, (13), 5 states have call predecessors, (13), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:42,411 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 106 transitions. [2022-02-20 17:10:42,412 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 59 [2022-02-20 17:10:42,412 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 17:10:42,412 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 17:10:42,430 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Forceful destruction successful, exit code 0 [2022-02-20 17:10:42,625 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 17:10:42,626 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 17:10:42,626 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 17:10:42,626 INFO L85 PathProgramCache]: Analyzing trace with hash -638065853, now seen corresponding path program 1 times [2022-02-20 17:10:42,629 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 17:10:42,629 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [811843357] [2022-02-20 17:10:42,629 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:42,629 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 17:10:42,658 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:42,684 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 17:10:42,693 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:42,722 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-02-20 17:10:42,723 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:42,726 INFO L290 TraceCheckUtils]: 0: Hoare triple {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1406#true} is VALID [2022-02-20 17:10:42,726 INFO L290 TraceCheckUtils]: 1: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,727 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1406#true} {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} #147#return; {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} is VALID [2022-02-20 17:10:42,727 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-02-20 17:10:42,729 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:42,731 INFO L290 TraceCheckUtils]: 0: Hoare triple {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1406#true} is VALID [2022-02-20 17:10:42,731 INFO L290 TraceCheckUtils]: 1: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,732 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1406#true} {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} #149#return; {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} is VALID [2022-02-20 17:10:42,733 INFO L290 TraceCheckUtils]: 0: Hoare triple {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume !(0 != #t~nondet5 % 256);havoc #t~nondet5;call #t~malloc6.base, #t~malloc6.offset := #Ultimate.allocOnHeap(12);~n~0.base, ~n~0.offset := #t~malloc6.base, #t~malloc6.offset;havoc #t~malloc6.base, #t~malloc6.offset;assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;call write~int(#t~nondet7, ~n~0.base, ~n~0.offset, 4);havoc #t~nondet7; {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} is VALID [2022-02-20 17:10:42,734 INFO L272 TraceCheckUtils]: 1: Hoare triple {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} call #t~ret8.base, #t~ret8.offset := nondet_tree(); {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:42,734 INFO L290 TraceCheckUtils]: 2: Hoare triple {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1406#true} is VALID [2022-02-20 17:10:42,734 INFO L290 TraceCheckUtils]: 3: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,734 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {1406#true} {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} #147#return; {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} is VALID [2022-02-20 17:10:42,735 INFO L290 TraceCheckUtils]: 5: Hoare triple {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} call write~$Pointer$(#t~ret8.base, #t~ret8.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret8.base, #t~ret8.offset; {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} is VALID [2022-02-20 17:10:42,735 INFO L272 TraceCheckUtils]: 6: Hoare triple {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} call #t~ret9.base, #t~ret9.offset := nondet_tree(); {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:42,736 INFO L290 TraceCheckUtils]: 7: Hoare triple {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1406#true} is VALID [2022-02-20 17:10:42,736 INFO L290 TraceCheckUtils]: 8: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,736 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1406#true} {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} #149#return; {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} is VALID [2022-02-20 17:10:42,737 INFO L290 TraceCheckUtils]: 10: Hoare triple {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} call write~$Pointer$(#t~ret9.base, #t~ret9.offset, ~n~0.base, 8 + ~n~0.offset, 4);havoc #t~ret9.base, #t~ret9.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {1458#(or (<= 1 |nondet_tree_#res.base|) (<= (+ |nondet_tree_#res.base| 1) 0))} is VALID [2022-02-20 17:10:42,737 INFO L290 TraceCheckUtils]: 11: Hoare triple {1458#(or (<= 1 |nondet_tree_#res.base|) (<= (+ |nondet_tree_#res.base| 1) 0))} assume true; {1458#(or (<= 1 |nondet_tree_#res.base|) (<= (+ |nondet_tree_#res.base| 1) 0))} is VALID [2022-02-20 17:10:42,738 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1458#(or (<= 1 |nondet_tree_#res.base|) (<= (+ |nondet_tree_#res.base| 1) 0))} {1406#true} #159#return; {1421#(not (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} is VALID [2022-02-20 17:10:42,738 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-02-20 17:10:42,739 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:42,752 INFO L290 TraceCheckUtils]: 0: Hoare triple {1406#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1459#(= min_~n.base |min_#in~n.base|)} is VALID [2022-02-20 17:10:42,752 INFO L290 TraceCheckUtils]: 1: Hoare triple {1459#(= min_~n.base |min_#in~n.base|)} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1460#(= |min_#in~n.base| 0)} is VALID [2022-02-20 17:10:42,753 INFO L290 TraceCheckUtils]: 2: Hoare triple {1460#(= |min_#in~n.base| 0)} assume true; {1460#(= |min_#in~n.base| 0)} is VALID [2022-02-20 17:10:42,753 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1460#(= |min_#in~n.base| 0)} {1422#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #161#return; {1407#false} is VALID [2022-02-20 17:10:42,753 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 17:10:42,757 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:42,760 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 17:10:42,761 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:42,762 INFO L290 TraceCheckUtils]: 0: Hoare triple {1406#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1406#true} is VALID [2022-02-20 17:10:42,762 INFO L290 TraceCheckUtils]: 1: Hoare triple {1406#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1406#true} is VALID [2022-02-20 17:10:42,762 INFO L290 TraceCheckUtils]: 2: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,763 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1406#true} {1406#true} #155#return; {1406#true} is VALID [2022-02-20 17:10:42,763 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 17:10:42,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:42,765 INFO L290 TraceCheckUtils]: 0: Hoare triple {1406#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1406#true} is VALID [2022-02-20 17:10:42,765 INFO L290 TraceCheckUtils]: 1: Hoare triple {1406#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1406#true} is VALID [2022-02-20 17:10:42,765 INFO L290 TraceCheckUtils]: 2: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,765 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1406#true} {1406#true} #157#return; {1406#true} is VALID [2022-02-20 17:10:42,766 INFO L290 TraceCheckUtils]: 0: Hoare triple {1406#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1406#true} is VALID [2022-02-20 17:10:42,766 INFO L290 TraceCheckUtils]: 1: Hoare triple {1406#true} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1406#true} is VALID [2022-02-20 17:10:42,766 INFO L272 TraceCheckUtils]: 2: Hoare triple {1406#true} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {1406#true} is VALID [2022-02-20 17:10:42,766 INFO L290 TraceCheckUtils]: 3: Hoare triple {1406#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1406#true} is VALID [2022-02-20 17:10:42,766 INFO L290 TraceCheckUtils]: 4: Hoare triple {1406#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1406#true} is VALID [2022-02-20 17:10:42,766 INFO L290 TraceCheckUtils]: 5: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,766 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1406#true} {1406#true} #155#return; {1406#true} is VALID [2022-02-20 17:10:42,766 INFO L290 TraceCheckUtils]: 7: Hoare triple {1406#true} assume -2147483648 <= #t~ret29 && #t~ret29 <= 2147483647;call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1406#true} is VALID [2022-02-20 17:10:42,767 INFO L272 TraceCheckUtils]: 8: Hoare triple {1406#true} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {1406#true} is VALID [2022-02-20 17:10:42,767 INFO L290 TraceCheckUtils]: 9: Hoare triple {1406#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1406#true} is VALID [2022-02-20 17:10:42,767 INFO L290 TraceCheckUtils]: 10: Hoare triple {1406#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1406#true} is VALID [2022-02-20 17:10:42,767 INFO L290 TraceCheckUtils]: 11: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,767 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1406#true} {1406#true} #157#return; {1406#true} is VALID [2022-02-20 17:10:42,767 INFO L290 TraceCheckUtils]: 13: Hoare triple {1406#true} assume -2147483648 <= #t~ret31 && #t~ret31 <= 2147483647;#res := 1 + (#t~ret29 + #t~ret31);havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {1406#true} is VALID [2022-02-20 17:10:42,767 INFO L290 TraceCheckUtils]: 14: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,768 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1406#true} {1407#false} #163#return; {1407#false} is VALID [2022-02-20 17:10:42,773 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 43 [2022-02-20 17:10:42,774 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:42,776 INFO L290 TraceCheckUtils]: 0: Hoare triple {1469#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1406#true} is VALID [2022-02-20 17:10:42,776 INFO L290 TraceCheckUtils]: 1: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,776 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1406#true} {1407#false} #165#return; {1407#false} is VALID [2022-02-20 17:10:42,784 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 48 [2022-02-20 17:10:42,785 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:42,787 INFO L290 TraceCheckUtils]: 0: Hoare triple {1470#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {1406#true} is VALID [2022-02-20 17:10:42,787 INFO L290 TraceCheckUtils]: 1: Hoare triple {1406#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {1406#true} is VALID [2022-02-20 17:10:42,787 INFO L290 TraceCheckUtils]: 2: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,787 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1406#true} {1407#false} #167#return; {1407#false} is VALID [2022-02-20 17:10:42,787 INFO L290 TraceCheckUtils]: 0: Hoare triple {1406#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(16, 2);call #Ultimate.allocInit(12, 3); {1406#true} is VALID [2022-02-20 17:10:42,788 INFO L290 TraceCheckUtils]: 1: Hoare triple {1406#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {1406#true} is VALID [2022-02-20 17:10:42,788 INFO L272 TraceCheckUtils]: 2: Hoare triple {1406#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:42,789 INFO L290 TraceCheckUtils]: 3: Hoare triple {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume !(0 != #t~nondet5 % 256);havoc #t~nondet5;call #t~malloc6.base, #t~malloc6.offset := #Ultimate.allocOnHeap(12);~n~0.base, ~n~0.offset := #t~malloc6.base, #t~malloc6.offset;havoc #t~malloc6.base, #t~malloc6.offset;assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;call write~int(#t~nondet7, ~n~0.base, ~n~0.offset, 4);havoc #t~nondet7; {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} is VALID [2022-02-20 17:10:42,790 INFO L272 TraceCheckUtils]: 4: Hoare triple {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} call #t~ret8.base, #t~ret8.offset := nondet_tree(); {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:42,790 INFO L290 TraceCheckUtils]: 5: Hoare triple {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1406#true} is VALID [2022-02-20 17:10:42,790 INFO L290 TraceCheckUtils]: 6: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,790 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {1406#true} {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} #147#return; {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} is VALID [2022-02-20 17:10:42,791 INFO L290 TraceCheckUtils]: 8: Hoare triple {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} call write~$Pointer$(#t~ret8.base, #t~ret8.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret8.base, #t~ret8.offset; {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} is VALID [2022-02-20 17:10:42,791 INFO L272 TraceCheckUtils]: 9: Hoare triple {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} call #t~ret9.base, #t~ret9.offset := nondet_tree(); {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:42,791 INFO L290 TraceCheckUtils]: 10: Hoare triple {1450#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1406#true} is VALID [2022-02-20 17:10:42,791 INFO L290 TraceCheckUtils]: 11: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,792 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1406#true} {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} #149#return; {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} is VALID [2022-02-20 17:10:42,792 INFO L290 TraceCheckUtils]: 13: Hoare triple {1451#(or (not (<= nondet_tree_~n~0.base 0)) (<= (+ nondet_tree_~n~0.base 1) 0))} call write~$Pointer$(#t~ret9.base, #t~ret9.offset, ~n~0.base, 8 + ~n~0.offset, 4);havoc #t~ret9.base, #t~ret9.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {1458#(or (<= 1 |nondet_tree_#res.base|) (<= (+ |nondet_tree_#res.base| 1) 0))} is VALID [2022-02-20 17:10:42,793 INFO L290 TraceCheckUtils]: 14: Hoare triple {1458#(or (<= 1 |nondet_tree_#res.base|) (<= (+ |nondet_tree_#res.base| 1) 0))} assume true; {1458#(or (<= 1 |nondet_tree_#res.base|) (<= (+ |nondet_tree_#res.base| 1) 0))} is VALID [2022-02-20 17:10:42,793 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1458#(or (<= 1 |nondet_tree_#res.base|) (<= (+ |nondet_tree_#res.base| 1) 0))} {1406#true} #159#return; {1421#(not (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} is VALID [2022-02-20 17:10:42,794 INFO L290 TraceCheckUtils]: 16: Hoare triple {1421#(not (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {1422#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:42,794 INFO L272 TraceCheckUtils]: 17: Hoare triple {1422#(not (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {1406#true} is VALID [2022-02-20 17:10:42,794 INFO L290 TraceCheckUtils]: 18: Hoare triple {1406#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1459#(= min_~n.base |min_#in~n.base|)} is VALID [2022-02-20 17:10:42,795 INFO L290 TraceCheckUtils]: 19: Hoare triple {1459#(= min_~n.base |min_#in~n.base|)} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1460#(= |min_#in~n.base| 0)} is VALID [2022-02-20 17:10:42,795 INFO L290 TraceCheckUtils]: 20: Hoare triple {1460#(= |min_#in~n.base| 0)} assume true; {1460#(= |min_#in~n.base| 0)} is VALID [2022-02-20 17:10:42,795 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {1460#(= |min_#in~n.base| 0)} {1422#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #161#return; {1407#false} is VALID [2022-02-20 17:10:42,796 INFO L290 TraceCheckUtils]: 22: Hoare triple {1407#false} assume -2147483648 <= task_#t~ret32#1 && task_#t~ret32#1 <= 2147483647;task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4); {1407#false} is VALID [2022-02-20 17:10:42,796 INFO L272 TraceCheckUtils]: 23: Hoare triple {1407#false} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {1406#true} is VALID [2022-02-20 17:10:42,796 INFO L290 TraceCheckUtils]: 24: Hoare triple {1406#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1406#true} is VALID [2022-02-20 17:10:42,796 INFO L290 TraceCheckUtils]: 25: Hoare triple {1406#true} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1406#true} is VALID [2022-02-20 17:10:42,796 INFO L272 TraceCheckUtils]: 26: Hoare triple {1406#true} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {1406#true} is VALID [2022-02-20 17:10:42,796 INFO L290 TraceCheckUtils]: 27: Hoare triple {1406#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1406#true} is VALID [2022-02-20 17:10:42,796 INFO L290 TraceCheckUtils]: 28: Hoare triple {1406#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1406#true} is VALID [2022-02-20 17:10:42,796 INFO L290 TraceCheckUtils]: 29: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,797 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {1406#true} {1406#true} #155#return; {1406#true} is VALID [2022-02-20 17:10:42,797 INFO L290 TraceCheckUtils]: 31: Hoare triple {1406#true} assume -2147483648 <= #t~ret29 && #t~ret29 <= 2147483647;call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1406#true} is VALID [2022-02-20 17:10:42,797 INFO L272 TraceCheckUtils]: 32: Hoare triple {1406#true} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {1406#true} is VALID [2022-02-20 17:10:42,797 INFO L290 TraceCheckUtils]: 33: Hoare triple {1406#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1406#true} is VALID [2022-02-20 17:10:42,797 INFO L290 TraceCheckUtils]: 34: Hoare triple {1406#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1406#true} is VALID [2022-02-20 17:10:42,797 INFO L290 TraceCheckUtils]: 35: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,797 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {1406#true} {1406#true} #157#return; {1406#true} is VALID [2022-02-20 17:10:42,798 INFO L290 TraceCheckUtils]: 37: Hoare triple {1406#true} assume -2147483648 <= #t~ret31 && #t~ret31 <= 2147483647;#res := 1 + (#t~ret29 + #t~ret31);havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {1406#true} is VALID [2022-02-20 17:10:42,798 INFO L290 TraceCheckUtils]: 38: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,798 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {1406#true} {1407#false} #163#return; {1407#false} is VALID [2022-02-20 17:10:42,798 INFO L290 TraceCheckUtils]: 40: Hoare triple {1407#false} assume -2147483648 <= task_#t~ret33#1 && task_#t~ret33#1 <= 2147483647;task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0 != task_~n~1#1 then 1 else 0);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {1407#false} is VALID [2022-02-20 17:10:42,798 INFO L290 TraceCheckUtils]: 41: Hoare triple {1407#false} assume !(0 == assume_cycle_if_not_~cond#1); {1407#false} is VALID [2022-02-20 17:10:42,798 INFO L290 TraceCheckUtils]: 42: Hoare triple {1407#false} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(4 * task_~n~1#1); {1407#false} is VALID [2022-02-20 17:10:42,798 INFO L272 TraceCheckUtils]: 43: Hoare triple {1407#false} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4, 4 * task_~n~1#1); {1469#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 17:10:42,798 INFO L290 TraceCheckUtils]: 44: Hoare triple {1469#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1406#true} is VALID [2022-02-20 17:10:42,799 INFO L290 TraceCheckUtils]: 45: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,799 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {1406#true} {1407#false} #165#return; {1407#false} is VALID [2022-02-20 17:10:42,799 INFO L290 TraceCheckUtils]: 47: Hoare triple {1407#false} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {1407#false} is VALID [2022-02-20 17:10:42,799 INFO L272 TraceCheckUtils]: 48: Hoare triple {1407#false} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {1470#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2022-02-20 17:10:42,799 INFO L290 TraceCheckUtils]: 49: Hoare triple {1470#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {1406#true} is VALID [2022-02-20 17:10:42,799 INFO L290 TraceCheckUtils]: 50: Hoare triple {1406#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {1406#true} is VALID [2022-02-20 17:10:42,799 INFO L290 TraceCheckUtils]: 51: Hoare triple {1406#true} assume true; {1406#true} is VALID [2022-02-20 17:10:42,799 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {1406#true} {1407#false} #167#return; {1407#false} is VALID [2022-02-20 17:10:42,800 INFO L290 TraceCheckUtils]: 53: Hoare triple {1407#false} assume -2147483648 <= task_#t~ret35#1 && task_#t~ret35#1 <= 2147483647;havoc task_#t~ret35#1;call task_#t~mem36#1 := read~int(task_~x~0#1.base, task_~x~0#1.offset, 4); {1407#false} is VALID [2022-02-20 17:10:42,800 INFO L272 TraceCheckUtils]: 54: Hoare triple {1407#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1 else 0)); {1407#false} is VALID [2022-02-20 17:10:42,800 INFO L290 TraceCheckUtils]: 55: Hoare triple {1407#false} ~cond := #in~cond; {1407#false} is VALID [2022-02-20 17:10:42,800 INFO L290 TraceCheckUtils]: 56: Hoare triple {1407#false} assume 0 == ~cond; {1407#false} is VALID [2022-02-20 17:10:42,800 INFO L290 TraceCheckUtils]: 57: Hoare triple {1407#false} assume !false; {1407#false} is VALID [2022-02-20 17:10:42,800 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-02-20 17:10:42,801 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 17:10:42,801 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [811843357] [2022-02-20 17:10:42,801 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [811843357] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 17:10:42,801 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 17:10:42,801 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-02-20 17:10:42,801 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [897071259] [2022-02-20 17:10:42,801 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 17:10:42,802 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 10 states have (on average 3.2) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 5 states have call predecessors, (10), 3 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) Word has length 58 [2022-02-20 17:10:42,802 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 17:10:42,802 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 11 states, 10 states have (on average 3.2) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 5 states have call predecessors, (10), 3 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:42,834 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:42,834 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-02-20 17:10:42,834 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 17:10:42,834 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-02-20 17:10:42,834 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=22, Invalid=88, Unknown=0, NotChecked=0, Total=110 [2022-02-20 17:10:42,835 INFO L87 Difference]: Start difference. First operand 81 states and 106 transitions. Second operand has 11 states, 10 states have (on average 3.2) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 5 states have call predecessors, (10), 3 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:43,867 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:43,867 INFO L93 Difference]: Finished difference Result 143 states and 189 transitions. [2022-02-20 17:10:43,867 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-02-20 17:10:43,867 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 10 states have (on average 3.2) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 5 states have call predecessors, (10), 3 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) Word has length 58 [2022-02-20 17:10:43,868 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 17:10:43,868 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 10 states have (on average 3.2) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 5 states have call predecessors, (10), 3 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:43,890 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 181 transitions. [2022-02-20 17:10:43,891 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 10 states have (on average 3.2) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 5 states have call predecessors, (10), 3 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:43,894 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 181 transitions. [2022-02-20 17:10:43,894 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 181 transitions. [2022-02-20 17:10:44,031 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 181 edges. 181 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:44,037 INFO L225 Difference]: With dead ends: 143 [2022-02-20 17:10:44,037 INFO L226 Difference]: Without dead ends: 86 [2022-02-20 17:10:44,040 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 29 GetRequests, 16 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 7 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=44, Invalid=166, Unknown=0, NotChecked=0, Total=210 [2022-02-20 17:10:44,043 INFO L933 BasicCegarLoop]: 83 mSDtfsCounter, 113 mSDsluCounter, 290 mSDsCounter, 0 mSdLazyCounter, 353 mSolverCounterSat, 79 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 115 SdHoareTripleChecker+Valid, 373 SdHoareTripleChecker+Invalid, 432 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 79 IncrementalHoareTripleChecker+Valid, 353 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.4s IncrementalHoareTripleChecker+Time [2022-02-20 17:10:44,046 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [115 Valid, 373 Invalid, 432 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [79 Valid, 353 Invalid, 0 Unknown, 0 Unchecked, 0.4s Time] [2022-02-20 17:10:44,047 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 86 states. [2022-02-20 17:10:44,062 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 86 to 83. [2022-02-20 17:10:44,062 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 17:10:44,062 INFO L82 GeneralOperation]: Start isEquivalent. First operand 86 states. Second operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) [2022-02-20 17:10:44,064 INFO L74 IsIncluded]: Start isIncluded. First operand 86 states. Second operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) [2022-02-20 17:10:44,064 INFO L87 Difference]: Start difference. First operand 86 states. Second operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) [2022-02-20 17:10:44,069 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:44,069 INFO L93 Difference]: Finished difference Result 86 states and 115 transitions. [2022-02-20 17:10:44,069 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 115 transitions. [2022-02-20 17:10:44,071 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:44,071 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:44,071 INFO L74 IsIncluded]: Start isIncluded. First operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) Second operand 86 states. [2022-02-20 17:10:44,072 INFO L87 Difference]: Start difference. First operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) Second operand 86 states. [2022-02-20 17:10:44,076 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:44,076 INFO L93 Difference]: Finished difference Result 86 states and 115 transitions. [2022-02-20 17:10:44,076 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 115 transitions. [2022-02-20 17:10:44,077 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:44,077 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:44,078 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 17:10:44,078 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 17:10:44,079 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) [2022-02-20 17:10:44,081 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 83 states to 83 states and 109 transitions. [2022-02-20 17:10:44,082 INFO L78 Accepts]: Start accepts. Automaton has 83 states and 109 transitions. Word has length 58 [2022-02-20 17:10:44,082 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 17:10:44,082 INFO L470 AbstractCegarLoop]: Abstraction has 83 states and 109 transitions. [2022-02-20 17:10:44,082 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 11 states, 10 states have (on average 3.2) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 5 states have call predecessors, (10), 3 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:44,083 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 109 transitions. [2022-02-20 17:10:44,086 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 72 [2022-02-20 17:10:44,086 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 17:10:44,086 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 17:10:44,086 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-02-20 17:10:44,086 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 17:10:44,087 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 17:10:44,087 INFO L85 PathProgramCache]: Analyzing trace with hash 51768432, now seen corresponding path program 1 times [2022-02-20 17:10:44,087 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 17:10:44,087 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [129267677] [2022-02-20 17:10:44,087 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:44,087 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 17:10:44,142 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,199 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 17:10:44,206 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,236 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-02-20 17:10:44,238 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,244 INFO L290 TraceCheckUtils]: 0: Hoare triple {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1959#true} is VALID [2022-02-20 17:10:44,244 INFO L290 TraceCheckUtils]: 1: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,245 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1959#true} {2018#(= nondet_tree_~n~0.offset 0)} #147#return; {2018#(= nondet_tree_~n~0.offset 0)} is VALID [2022-02-20 17:10:44,245 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-02-20 17:10:44,246 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,256 INFO L290 TraceCheckUtils]: 0: Hoare triple {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1959#true} is VALID [2022-02-20 17:10:44,257 INFO L290 TraceCheckUtils]: 1: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,257 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1959#true} {2018#(= nondet_tree_~n~0.offset 0)} #149#return; {2018#(= nondet_tree_~n~0.offset 0)} is VALID [2022-02-20 17:10:44,258 INFO L290 TraceCheckUtils]: 0: Hoare triple {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume !(0 != #t~nondet5 % 256);havoc #t~nondet5;call #t~malloc6.base, #t~malloc6.offset := #Ultimate.allocOnHeap(12);~n~0.base, ~n~0.offset := #t~malloc6.base, #t~malloc6.offset;havoc #t~malloc6.base, #t~malloc6.offset;assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;call write~int(#t~nondet7, ~n~0.base, ~n~0.offset, 4);havoc #t~nondet7; {2018#(= nondet_tree_~n~0.offset 0)} is VALID [2022-02-20 17:10:44,258 INFO L272 TraceCheckUtils]: 1: Hoare triple {2018#(= nondet_tree_~n~0.offset 0)} call #t~ret8.base, #t~ret8.offset := nondet_tree(); {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:44,258 INFO L290 TraceCheckUtils]: 2: Hoare triple {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1959#true} is VALID [2022-02-20 17:10:44,258 INFO L290 TraceCheckUtils]: 3: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,259 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {1959#true} {2018#(= nondet_tree_~n~0.offset 0)} #147#return; {2018#(= nondet_tree_~n~0.offset 0)} is VALID [2022-02-20 17:10:44,260 INFO L290 TraceCheckUtils]: 5: Hoare triple {2018#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret8.base, #t~ret8.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret8.base, #t~ret8.offset; {2018#(= nondet_tree_~n~0.offset 0)} is VALID [2022-02-20 17:10:44,260 INFO L272 TraceCheckUtils]: 6: Hoare triple {2018#(= nondet_tree_~n~0.offset 0)} call #t~ret9.base, #t~ret9.offset := nondet_tree(); {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:44,260 INFO L290 TraceCheckUtils]: 7: Hoare triple {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1959#true} is VALID [2022-02-20 17:10:44,260 INFO L290 TraceCheckUtils]: 8: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,261 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1959#true} {2018#(= nondet_tree_~n~0.offset 0)} #149#return; {2018#(= nondet_tree_~n~0.offset 0)} is VALID [2022-02-20 17:10:44,261 INFO L290 TraceCheckUtils]: 10: Hoare triple {2018#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret9.base, #t~ret9.offset, ~n~0.base, 8 + ~n~0.offset, 4);havoc #t~ret9.base, #t~ret9.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {2025#(= |nondet_tree_#res.offset| 0)} is VALID [2022-02-20 17:10:44,262 INFO L290 TraceCheckUtils]: 11: Hoare triple {2025#(= |nondet_tree_#res.offset| 0)} assume true; {2025#(= |nondet_tree_#res.offset| 0)} is VALID [2022-02-20 17:10:44,262 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {2025#(= |nondet_tree_#res.offset| 0)} {1959#true} #159#return; {1974#(= |ULTIMATE.start_main_#t~ret45#1.offset| 0)} is VALID [2022-02-20 17:10:44,262 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-02-20 17:10:44,268 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,320 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 17:10:44,321 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,325 INFO L290 TraceCheckUtils]: 0: Hoare triple {1959#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1959#true} is VALID [2022-02-20 17:10:44,325 INFO L290 TraceCheckUtils]: 1: Hoare triple {1959#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1959#true} is VALID [2022-02-20 17:10:44,325 INFO L290 TraceCheckUtils]: 2: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,325 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1959#true} {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} #151#return; {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} is VALID [2022-02-20 17:10:44,325 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 17:10:44,326 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,328 INFO L290 TraceCheckUtils]: 0: Hoare triple {1959#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1959#true} is VALID [2022-02-20 17:10:44,328 INFO L290 TraceCheckUtils]: 1: Hoare triple {1959#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1959#true} is VALID [2022-02-20 17:10:44,328 INFO L290 TraceCheckUtils]: 2: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,329 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1959#true} {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} #153#return; {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} is VALID [2022-02-20 17:10:44,333 INFO L290 TraceCheckUtils]: 0: Hoare triple {1959#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2026#(and (= min_~n.base |min_#in~n.base|) (= min_~n.offset |min_#in~n.offset|))} is VALID [2022-02-20 17:10:44,333 INFO L290 TraceCheckUtils]: 1: Hoare triple {2026#(and (= min_~n.base |min_#in~n.base|) (= min_~n.offset |min_#in~n.offset|))} assume !(~n.base == 0 && ~n.offset == 0);call #t~mem10 := read~int(~n.base, ~n.offset, 4);~a~0 := #t~mem10;havoc #t~mem10;call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~n.base, 4 + ~n.offset, 4); {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} is VALID [2022-02-20 17:10:44,333 INFO L272 TraceCheckUtils]: 2: Hoare triple {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} call #t~ret12 := min(#t~mem11.base, #t~mem11.offset); {1959#true} is VALID [2022-02-20 17:10:44,333 INFO L290 TraceCheckUtils]: 3: Hoare triple {1959#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1959#true} is VALID [2022-02-20 17:10:44,334 INFO L290 TraceCheckUtils]: 4: Hoare triple {1959#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1959#true} is VALID [2022-02-20 17:10:44,334 INFO L290 TraceCheckUtils]: 5: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,334 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1959#true} {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} #151#return; {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} is VALID [2022-02-20 17:10:44,335 INFO L290 TraceCheckUtils]: 7: Hoare triple {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} assume -2147483648 <= #t~ret12 && #t~ret12 <= 2147483647;~b~0 := #t~ret12;havoc #t~mem11.base, #t~mem11.offset;havoc #t~ret12;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~n.base, 8 + ~n.offset, 4); {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} is VALID [2022-02-20 17:10:44,335 INFO L272 TraceCheckUtils]: 8: Hoare triple {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} call #t~ret14 := min(#t~mem13.base, #t~mem13.offset); {1959#true} is VALID [2022-02-20 17:10:44,335 INFO L290 TraceCheckUtils]: 9: Hoare triple {1959#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1959#true} is VALID [2022-02-20 17:10:44,335 INFO L290 TraceCheckUtils]: 10: Hoare triple {1959#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1959#true} is VALID [2022-02-20 17:10:44,335 INFO L290 TraceCheckUtils]: 11: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,336 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1959#true} {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} #153#return; {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} is VALID [2022-02-20 17:10:44,336 INFO L290 TraceCheckUtils]: 13: Hoare triple {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~c~0 := #t~ret14;havoc #t~mem13.base, #t~mem13.offset;havoc #t~ret14; {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} is VALID [2022-02-20 17:10:44,336 INFO L290 TraceCheckUtils]: 14: Hoare triple {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} assume ~b~0 <= ~a~0 && ~b~0 <= ~c~0;#res := ~b~0; {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} is VALID [2022-02-20 17:10:44,337 INFO L290 TraceCheckUtils]: 15: Hoare triple {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} assume true; {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} is VALID [2022-02-20 17:10:44,337 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} {1975#(= |ULTIMATE.start_task_~t#1.offset| 0)} #161#return; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,337 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 36 [2022-02-20 17:10:44,340 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,343 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 17:10:44,344 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,345 INFO L290 TraceCheckUtils]: 0: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1959#true} is VALID [2022-02-20 17:10:44,345 INFO L290 TraceCheckUtils]: 1: Hoare triple {1959#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1959#true} is VALID [2022-02-20 17:10:44,345 INFO L290 TraceCheckUtils]: 2: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,346 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1959#true} {1959#true} #155#return; {1959#true} is VALID [2022-02-20 17:10:44,346 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 17:10:44,346 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,347 INFO L290 TraceCheckUtils]: 0: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L290 TraceCheckUtils]: 1: Hoare triple {1959#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L290 TraceCheckUtils]: 2: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1959#true} {1959#true} #157#return; {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L290 TraceCheckUtils]: 0: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L290 TraceCheckUtils]: 1: Hoare triple {1959#true} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L272 TraceCheckUtils]: 2: Hoare triple {1959#true} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L290 TraceCheckUtils]: 3: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L290 TraceCheckUtils]: 4: Hoare triple {1959#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L290 TraceCheckUtils]: 5: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1959#true} {1959#true} #155#return; {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L290 TraceCheckUtils]: 7: Hoare triple {1959#true} assume -2147483648 <= #t~ret29 && #t~ret29 <= 2147483647;call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L272 TraceCheckUtils]: 8: Hoare triple {1959#true} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L290 TraceCheckUtils]: 9: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1959#true} is VALID [2022-02-20 17:10:44,348 INFO L290 TraceCheckUtils]: 10: Hoare triple {1959#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1959#true} is VALID [2022-02-20 17:10:44,349 INFO L290 TraceCheckUtils]: 11: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,349 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1959#true} {1959#true} #157#return; {1959#true} is VALID [2022-02-20 17:10:44,349 INFO L290 TraceCheckUtils]: 13: Hoare triple {1959#true} assume -2147483648 <= #t~ret31 && #t~ret31 <= 2147483647;#res := 1 + (#t~ret29 + #t~ret31);havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {1959#true} is VALID [2022-02-20 17:10:44,349 INFO L290 TraceCheckUtils]: 14: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,349 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1959#true} {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #163#return; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,355 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 56 [2022-02-20 17:10:44,357 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,359 INFO L290 TraceCheckUtils]: 0: Hoare triple {2045#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1959#true} is VALID [2022-02-20 17:10:44,359 INFO L290 TraceCheckUtils]: 1: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,360 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1959#true} {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #165#return; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,369 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 61 [2022-02-20 17:10:44,370 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,388 INFO L290 TraceCheckUtils]: 0: Hoare triple {2046#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {2047#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} is VALID [2022-02-20 17:10:44,388 INFO L290 TraceCheckUtils]: 1: Hoare triple {2047#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {2048#(= |tree_inorder_#in~t.base| 0)} is VALID [2022-02-20 17:10:44,388 INFO L290 TraceCheckUtils]: 2: Hoare triple {2048#(= |tree_inorder_#in~t.base| 0)} assume true; {2048#(= |tree_inorder_#in~t.base| 0)} is VALID [2022-02-20 17:10:44,389 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2048#(= |tree_inorder_#in~t.base| 0)} {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #167#return; {1960#false} is VALID [2022-02-20 17:10:44,389 INFO L290 TraceCheckUtils]: 0: Hoare triple {1959#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(16, 2);call #Ultimate.allocInit(12, 3); {1959#true} is VALID [2022-02-20 17:10:44,389 INFO L290 TraceCheckUtils]: 1: Hoare triple {1959#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {1959#true} is VALID [2022-02-20 17:10:44,391 INFO L272 TraceCheckUtils]: 2: Hoare triple {1959#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:44,391 INFO L290 TraceCheckUtils]: 3: Hoare triple {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume !(0 != #t~nondet5 % 256);havoc #t~nondet5;call #t~malloc6.base, #t~malloc6.offset := #Ultimate.allocOnHeap(12);~n~0.base, ~n~0.offset := #t~malloc6.base, #t~malloc6.offset;havoc #t~malloc6.base, #t~malloc6.offset;assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;call write~int(#t~nondet7, ~n~0.base, ~n~0.offset, 4);havoc #t~nondet7; {2018#(= nondet_tree_~n~0.offset 0)} is VALID [2022-02-20 17:10:44,391 INFO L272 TraceCheckUtils]: 4: Hoare triple {2018#(= nondet_tree_~n~0.offset 0)} call #t~ret8.base, #t~ret8.offset := nondet_tree(); {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:44,391 INFO L290 TraceCheckUtils]: 5: Hoare triple {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1959#true} is VALID [2022-02-20 17:10:44,392 INFO L290 TraceCheckUtils]: 6: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,392 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {1959#true} {2018#(= nondet_tree_~n~0.offset 0)} #147#return; {2018#(= nondet_tree_~n~0.offset 0)} is VALID [2022-02-20 17:10:44,392 INFO L290 TraceCheckUtils]: 8: Hoare triple {2018#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret8.base, #t~ret8.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret8.base, #t~ret8.offset; {2018#(= nondet_tree_~n~0.offset 0)} is VALID [2022-02-20 17:10:44,393 INFO L272 TraceCheckUtils]: 9: Hoare triple {2018#(= nondet_tree_~n~0.offset 0)} call #t~ret9.base, #t~ret9.offset := nondet_tree(); {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 17:10:44,393 INFO L290 TraceCheckUtils]: 10: Hoare triple {2017#(and (= |old(#length)| |#length|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= |old(#valid)| |#valid|))} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1959#true} is VALID [2022-02-20 17:10:44,393 INFO L290 TraceCheckUtils]: 11: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,393 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1959#true} {2018#(= nondet_tree_~n~0.offset 0)} #149#return; {2018#(= nondet_tree_~n~0.offset 0)} is VALID [2022-02-20 17:10:44,394 INFO L290 TraceCheckUtils]: 13: Hoare triple {2018#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret9.base, #t~ret9.offset, ~n~0.base, 8 + ~n~0.offset, 4);havoc #t~ret9.base, #t~ret9.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {2025#(= |nondet_tree_#res.offset| 0)} is VALID [2022-02-20 17:10:44,394 INFO L290 TraceCheckUtils]: 14: Hoare triple {2025#(= |nondet_tree_#res.offset| 0)} assume true; {2025#(= |nondet_tree_#res.offset| 0)} is VALID [2022-02-20 17:10:44,394 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2025#(= |nondet_tree_#res.offset| 0)} {1959#true} #159#return; {1974#(= |ULTIMATE.start_main_#t~ret45#1.offset| 0)} is VALID [2022-02-20 17:10:44,395 INFO L290 TraceCheckUtils]: 16: Hoare triple {1974#(= |ULTIMATE.start_main_#t~ret45#1.offset| 0)} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {1975#(= |ULTIMATE.start_task_~t#1.offset| 0)} is VALID [2022-02-20 17:10:44,395 INFO L272 TraceCheckUtils]: 17: Hoare triple {1975#(= |ULTIMATE.start_task_~t#1.offset| 0)} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {1959#true} is VALID [2022-02-20 17:10:44,395 INFO L290 TraceCheckUtils]: 18: Hoare triple {1959#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2026#(and (= min_~n.base |min_#in~n.base|) (= min_~n.offset |min_#in~n.offset|))} is VALID [2022-02-20 17:10:44,396 INFO L290 TraceCheckUtils]: 19: Hoare triple {2026#(and (= min_~n.base |min_#in~n.base|) (= min_~n.offset |min_#in~n.offset|))} assume !(~n.base == 0 && ~n.offset == 0);call #t~mem10 := read~int(~n.base, ~n.offset, 4);~a~0 := #t~mem10;havoc #t~mem10;call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~n.base, 4 + ~n.offset, 4); {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} is VALID [2022-02-20 17:10:44,396 INFO L272 TraceCheckUtils]: 20: Hoare triple {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} call #t~ret12 := min(#t~mem11.base, #t~mem11.offset); {1959#true} is VALID [2022-02-20 17:10:44,396 INFO L290 TraceCheckUtils]: 21: Hoare triple {1959#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1959#true} is VALID [2022-02-20 17:10:44,396 INFO L290 TraceCheckUtils]: 22: Hoare triple {1959#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1959#true} is VALID [2022-02-20 17:10:44,396 INFO L290 TraceCheckUtils]: 23: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,396 INFO L284 TraceCheckUtils]: 24: Hoare quadruple {1959#true} {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} #151#return; {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} is VALID [2022-02-20 17:10:44,397 INFO L290 TraceCheckUtils]: 25: Hoare triple {2027#(or (and (not (= min_~n.offset 0)) (= min_~n.offset |min_#in~n.offset|)) (and (= min_~n.offset |min_#in~n.offset|) (not (= |min_#in~n.base| 0))))} assume -2147483648 <= #t~ret12 && #t~ret12 <= 2147483647;~b~0 := #t~ret12;havoc #t~mem11.base, #t~mem11.offset;havoc #t~ret12;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~n.base, 8 + ~n.offset, 4); {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} is VALID [2022-02-20 17:10:44,397 INFO L272 TraceCheckUtils]: 26: Hoare triple {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} call #t~ret14 := min(#t~mem13.base, #t~mem13.offset); {1959#true} is VALID [2022-02-20 17:10:44,397 INFO L290 TraceCheckUtils]: 27: Hoare triple {1959#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1959#true} is VALID [2022-02-20 17:10:44,397 INFO L290 TraceCheckUtils]: 28: Hoare triple {1959#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1959#true} is VALID [2022-02-20 17:10:44,397 INFO L290 TraceCheckUtils]: 29: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,398 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {1959#true} {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} #153#return; {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} is VALID [2022-02-20 17:10:44,398 INFO L290 TraceCheckUtils]: 31: Hoare triple {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~c~0 := #t~ret14;havoc #t~mem13.base, #t~mem13.offset;havoc #t~ret14; {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} is VALID [2022-02-20 17:10:44,398 INFO L290 TraceCheckUtils]: 32: Hoare triple {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} assume ~b~0 <= ~a~0 && ~b~0 <= ~c~0;#res := ~b~0; {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} is VALID [2022-02-20 17:10:44,398 INFO L290 TraceCheckUtils]: 33: Hoare triple {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} assume true; {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} is VALID [2022-02-20 17:10:44,399 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2032#(or (not (= |min_#in~n.offset| 0)) (not (= |min_#in~n.base| 0)))} {1975#(= |ULTIMATE.start_task_~t#1.offset| 0)} #161#return; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,399 INFO L290 TraceCheckUtils]: 35: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} assume -2147483648 <= task_#t~ret32#1 && task_#t~ret32#1 <= 2147483647;task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4); {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,399 INFO L272 TraceCheckUtils]: 36: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {1959#true} is VALID [2022-02-20 17:10:44,399 INFO L290 TraceCheckUtils]: 37: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L290 TraceCheckUtils]: 38: Hoare triple {1959#true} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L272 TraceCheckUtils]: 39: Hoare triple {1959#true} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L290 TraceCheckUtils]: 40: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L290 TraceCheckUtils]: 41: Hoare triple {1959#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L290 TraceCheckUtils]: 42: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {1959#true} {1959#true} #155#return; {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L290 TraceCheckUtils]: 44: Hoare triple {1959#true} assume -2147483648 <= #t~ret29 && #t~ret29 <= 2147483647;call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L272 TraceCheckUtils]: 45: Hoare triple {1959#true} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L290 TraceCheckUtils]: 46: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L290 TraceCheckUtils]: 47: Hoare triple {1959#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L290 TraceCheckUtils]: 48: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {1959#true} {1959#true} #157#return; {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L290 TraceCheckUtils]: 50: Hoare triple {1959#true} assume -2147483648 <= #t~ret31 && #t~ret31 <= 2147483647;#res := 1 + (#t~ret29 + #t~ret31);havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {1959#true} is VALID [2022-02-20 17:10:44,400 INFO L290 TraceCheckUtils]: 51: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,401 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {1959#true} {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #163#return; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,401 INFO L290 TraceCheckUtils]: 53: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} assume -2147483648 <= task_#t~ret33#1 && task_#t~ret33#1 <= 2147483647;task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0 != task_~n~1#1 then 1 else 0);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,401 INFO L290 TraceCheckUtils]: 54: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} assume !(0 == assume_cycle_if_not_~cond#1); {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,402 INFO L290 TraceCheckUtils]: 55: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(4 * task_~n~1#1); {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,402 INFO L272 TraceCheckUtils]: 56: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4, 4 * task_~n~1#1); {2045#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 17:10:44,402 INFO L290 TraceCheckUtils]: 57: Hoare triple {2045#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1959#true} is VALID [2022-02-20 17:10:44,403 INFO L290 TraceCheckUtils]: 58: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,403 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {1959#true} {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #165#return; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,403 INFO L290 TraceCheckUtils]: 60: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,404 INFO L272 TraceCheckUtils]: 61: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {2046#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2022-02-20 17:10:44,405 INFO L290 TraceCheckUtils]: 62: Hoare triple {2046#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {2047#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} is VALID [2022-02-20 17:10:44,405 INFO L290 TraceCheckUtils]: 63: Hoare triple {2047#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {2048#(= |tree_inorder_#in~t.base| 0)} is VALID [2022-02-20 17:10:44,405 INFO L290 TraceCheckUtils]: 64: Hoare triple {2048#(= |tree_inorder_#in~t.base| 0)} assume true; {2048#(= |tree_inorder_#in~t.base| 0)} is VALID [2022-02-20 17:10:44,406 INFO L284 TraceCheckUtils]: 65: Hoare quadruple {2048#(= |tree_inorder_#in~t.base| 0)} {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #167#return; {1960#false} is VALID [2022-02-20 17:10:44,406 INFO L290 TraceCheckUtils]: 66: Hoare triple {1960#false} assume -2147483648 <= task_#t~ret35#1 && task_#t~ret35#1 <= 2147483647;havoc task_#t~ret35#1;call task_#t~mem36#1 := read~int(task_~x~0#1.base, task_~x~0#1.offset, 4); {1960#false} is VALID [2022-02-20 17:10:44,406 INFO L272 TraceCheckUtils]: 67: Hoare triple {1960#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1 else 0)); {1960#false} is VALID [2022-02-20 17:10:44,406 INFO L290 TraceCheckUtils]: 68: Hoare triple {1960#false} ~cond := #in~cond; {1960#false} is VALID [2022-02-20 17:10:44,406 INFO L290 TraceCheckUtils]: 69: Hoare triple {1960#false} assume 0 == ~cond; {1960#false} is VALID [2022-02-20 17:10:44,406 INFO L290 TraceCheckUtils]: 70: Hoare triple {1960#false} assume !false; {1960#false} is VALID [2022-02-20 17:10:44,406 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 8 proven. 2 refuted. 0 times theorem prover too weak. 23 trivial. 0 not checked. [2022-02-20 17:10:44,407 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 17:10:44,407 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [129267677] [2022-02-20 17:10:44,407 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [129267677] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 17:10:44,407 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [635174324] [2022-02-20 17:10:44,407 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:44,407 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 17:10:44,407 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 17:10:44,424 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 17:10:44,463 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2022-02-20 17:10:44,534 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,536 INFO L263 TraceCheckSpWp]: Trace formula consists of 393 conjuncts, 15 conjunts are in the unsatisfiable core [2022-02-20 17:10:44,560 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:44,562 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 17:10:44,778 INFO L290 TraceCheckUtils]: 0: Hoare triple {1959#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(16, 2);call #Ultimate.allocInit(12, 3); {1959#true} is VALID [2022-02-20 17:10:44,778 INFO L290 TraceCheckUtils]: 1: Hoare triple {1959#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {1959#true} is VALID [2022-02-20 17:10:44,778 INFO L272 TraceCheckUtils]: 2: Hoare triple {1959#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {1959#true} is VALID [2022-02-20 17:10:44,778 INFO L290 TraceCheckUtils]: 3: Hoare triple {1959#true} assume !(0 != #t~nondet5 % 256);havoc #t~nondet5;call #t~malloc6.base, #t~malloc6.offset := #Ultimate.allocOnHeap(12);~n~0.base, ~n~0.offset := #t~malloc6.base, #t~malloc6.offset;havoc #t~malloc6.base, #t~malloc6.offset;assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;call write~int(#t~nondet7, ~n~0.base, ~n~0.offset, 4);havoc #t~nondet7; {2061#(not (= nondet_tree_~n~0.base 0))} is VALID [2022-02-20 17:10:44,778 INFO L272 TraceCheckUtils]: 4: Hoare triple {2061#(not (= nondet_tree_~n~0.base 0))} call #t~ret8.base, #t~ret8.offset := nondet_tree(); {1959#true} is VALID [2022-02-20 17:10:44,778 INFO L290 TraceCheckUtils]: 5: Hoare triple {1959#true} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1959#true} is VALID [2022-02-20 17:10:44,778 INFO L290 TraceCheckUtils]: 6: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,779 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {1959#true} {2061#(not (= nondet_tree_~n~0.base 0))} #147#return; {2061#(not (= nondet_tree_~n~0.base 0))} is VALID [2022-02-20 17:10:44,779 INFO L290 TraceCheckUtils]: 8: Hoare triple {2061#(not (= nondet_tree_~n~0.base 0))} call write~$Pointer$(#t~ret8.base, #t~ret8.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret8.base, #t~ret8.offset; {2061#(not (= nondet_tree_~n~0.base 0))} is VALID [2022-02-20 17:10:44,779 INFO L272 TraceCheckUtils]: 9: Hoare triple {2061#(not (= nondet_tree_~n~0.base 0))} call #t~ret9.base, #t~ret9.offset := nondet_tree(); {1959#true} is VALID [2022-02-20 17:10:44,780 INFO L290 TraceCheckUtils]: 10: Hoare triple {1959#true} assume 0 != #t~nondet5 % 256;havoc #t~nondet5;#res.base, #res.offset := 0, 0; {1959#true} is VALID [2022-02-20 17:10:44,781 INFO L290 TraceCheckUtils]: 11: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,781 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1959#true} {2061#(not (= nondet_tree_~n~0.base 0))} #149#return; {2061#(not (= nondet_tree_~n~0.base 0))} is VALID [2022-02-20 17:10:44,782 INFO L290 TraceCheckUtils]: 13: Hoare triple {2061#(not (= nondet_tree_~n~0.base 0))} call write~$Pointer$(#t~ret9.base, #t~ret9.offset, ~n~0.base, 8 + ~n~0.offset, 4);havoc #t~ret9.base, #t~ret9.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {2092#(not (= |nondet_tree_#res.base| 0))} is VALID [2022-02-20 17:10:44,782 INFO L290 TraceCheckUtils]: 14: Hoare triple {2092#(not (= |nondet_tree_#res.base| 0))} assume true; {2092#(not (= |nondet_tree_#res.base| 0))} is VALID [2022-02-20 17:10:44,783 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2092#(not (= |nondet_tree_#res.base| 0))} {1959#true} #159#return; {2099#(not (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} is VALID [2022-02-20 17:10:44,783 INFO L290 TraceCheckUtils]: 16: Hoare triple {2099#(not (= |ULTIMATE.start_main_#t~ret45#1.base| 0))} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,783 INFO L272 TraceCheckUtils]: 17: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {1959#true} is VALID [2022-02-20 17:10:44,783 INFO L290 TraceCheckUtils]: 18: Hoare triple {1959#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1959#true} is VALID [2022-02-20 17:10:44,783 INFO L290 TraceCheckUtils]: 19: Hoare triple {1959#true} assume !(~n.base == 0 && ~n.offset == 0);call #t~mem10 := read~int(~n.base, ~n.offset, 4);~a~0 := #t~mem10;havoc #t~mem10;call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~n.base, 4 + ~n.offset, 4); {1959#true} is VALID [2022-02-20 17:10:44,788 INFO L272 TraceCheckUtils]: 20: Hoare triple {1959#true} call #t~ret12 := min(#t~mem11.base, #t~mem11.offset); {1959#true} is VALID [2022-02-20 17:10:44,788 INFO L290 TraceCheckUtils]: 21: Hoare triple {1959#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1959#true} is VALID [2022-02-20 17:10:44,788 INFO L290 TraceCheckUtils]: 22: Hoare triple {1959#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1959#true} is VALID [2022-02-20 17:10:44,788 INFO L290 TraceCheckUtils]: 23: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,788 INFO L284 TraceCheckUtils]: 24: Hoare quadruple {1959#true} {1959#true} #151#return; {1959#true} is VALID [2022-02-20 17:10:44,788 INFO L290 TraceCheckUtils]: 25: Hoare triple {1959#true} assume -2147483648 <= #t~ret12 && #t~ret12 <= 2147483647;~b~0 := #t~ret12;havoc #t~mem11.base, #t~mem11.offset;havoc #t~ret12;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~n.base, 8 + ~n.offset, 4); {1959#true} is VALID [2022-02-20 17:10:44,788 INFO L272 TraceCheckUtils]: 26: Hoare triple {1959#true} call #t~ret14 := min(#t~mem13.base, #t~mem13.offset); {1959#true} is VALID [2022-02-20 17:10:44,788 INFO L290 TraceCheckUtils]: 27: Hoare triple {1959#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1959#true} is VALID [2022-02-20 17:10:44,789 INFO L290 TraceCheckUtils]: 28: Hoare triple {1959#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1959#true} is VALID [2022-02-20 17:10:44,789 INFO L290 TraceCheckUtils]: 29: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,789 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {1959#true} {1959#true} #153#return; {1959#true} is VALID [2022-02-20 17:10:44,789 INFO L290 TraceCheckUtils]: 31: Hoare triple {1959#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~c~0 := #t~ret14;havoc #t~mem13.base, #t~mem13.offset;havoc #t~ret14; {1959#true} is VALID [2022-02-20 17:10:44,789 INFO L290 TraceCheckUtils]: 32: Hoare triple {1959#true} assume ~b~0 <= ~a~0 && ~b~0 <= ~c~0;#res := ~b~0; {1959#true} is VALID [2022-02-20 17:10:44,790 INFO L290 TraceCheckUtils]: 33: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,790 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {1959#true} {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #161#return; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,790 INFO L290 TraceCheckUtils]: 35: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} assume -2147483648 <= task_#t~ret32#1 && task_#t~ret32#1 <= 2147483647;task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4); {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,790 INFO L272 TraceCheckUtils]: 36: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {1959#true} is VALID [2022-02-20 17:10:44,790 INFO L290 TraceCheckUtils]: 37: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L290 TraceCheckUtils]: 38: Hoare triple {1959#true} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L272 TraceCheckUtils]: 39: Hoare triple {1959#true} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L290 TraceCheckUtils]: 40: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L290 TraceCheckUtils]: 41: Hoare triple {1959#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L290 TraceCheckUtils]: 42: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {1959#true} {1959#true} #155#return; {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L290 TraceCheckUtils]: 44: Hoare triple {1959#true} assume -2147483648 <= #t~ret29 && #t~ret29 <= 2147483647;call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L272 TraceCheckUtils]: 45: Hoare triple {1959#true} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L290 TraceCheckUtils]: 46: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L290 TraceCheckUtils]: 47: Hoare triple {1959#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L290 TraceCheckUtils]: 48: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {1959#true} {1959#true} #157#return; {1959#true} is VALID [2022-02-20 17:10:44,791 INFO L290 TraceCheckUtils]: 50: Hoare triple {1959#true} assume -2147483648 <= #t~ret31 && #t~ret31 <= 2147483647;#res := 1 + (#t~ret29 + #t~ret31);havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {1959#true} is VALID [2022-02-20 17:10:44,792 INFO L290 TraceCheckUtils]: 51: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,792 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {1959#true} {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #163#return; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,792 INFO L290 TraceCheckUtils]: 53: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} assume -2147483648 <= task_#t~ret33#1 && task_#t~ret33#1 <= 2147483647;task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0 != task_~n~1#1 then 1 else 0);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,793 INFO L290 TraceCheckUtils]: 54: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} assume !(0 == assume_cycle_if_not_~cond#1); {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,793 INFO L290 TraceCheckUtils]: 55: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(4 * task_~n~1#1); {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,793 INFO L272 TraceCheckUtils]: 56: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4, 4 * task_~n~1#1); {1959#true} is VALID [2022-02-20 17:10:44,793 INFO L290 TraceCheckUtils]: 57: Hoare triple {1959#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1959#true} is VALID [2022-02-20 17:10:44,793 INFO L290 TraceCheckUtils]: 58: Hoare triple {1959#true} assume true; {1959#true} is VALID [2022-02-20 17:10:44,794 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {1959#true} {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #165#return; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,794 INFO L290 TraceCheckUtils]: 60: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} is VALID [2022-02-20 17:10:44,794 INFO L272 TraceCheckUtils]: 61: Hoare triple {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {1959#true} is VALID [2022-02-20 17:10:44,794 INFO L290 TraceCheckUtils]: 62: Hoare triple {1959#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {2047#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} is VALID [2022-02-20 17:10:44,795 INFO L290 TraceCheckUtils]: 63: Hoare triple {2047#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {2048#(= |tree_inorder_#in~t.base| 0)} is VALID [2022-02-20 17:10:44,795 INFO L290 TraceCheckUtils]: 64: Hoare triple {2048#(= |tree_inorder_#in~t.base| 0)} assume true; {2048#(= |tree_inorder_#in~t.base| 0)} is VALID [2022-02-20 17:10:44,796 INFO L284 TraceCheckUtils]: 65: Hoare quadruple {2048#(= |tree_inorder_#in~t.base| 0)} {1993#(not (= |ULTIMATE.start_task_~t#1.base| 0))} #167#return; {1960#false} is VALID [2022-02-20 17:10:44,796 INFO L290 TraceCheckUtils]: 66: Hoare triple {1960#false} assume -2147483648 <= task_#t~ret35#1 && task_#t~ret35#1 <= 2147483647;havoc task_#t~ret35#1;call task_#t~mem36#1 := read~int(task_~x~0#1.base, task_~x~0#1.offset, 4); {1960#false} is VALID [2022-02-20 17:10:44,796 INFO L272 TraceCheckUtils]: 67: Hoare triple {1960#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1 else 0)); {1960#false} is VALID [2022-02-20 17:10:44,796 INFO L290 TraceCheckUtils]: 68: Hoare triple {1960#false} ~cond := #in~cond; {1960#false} is VALID [2022-02-20 17:10:44,796 INFO L290 TraceCheckUtils]: 69: Hoare triple {1960#false} assume 0 == ~cond; {1960#false} is VALID [2022-02-20 17:10:44,796 INFO L290 TraceCheckUtils]: 70: Hoare triple {1960#false} assume !false; {1960#false} is VALID [2022-02-20 17:10:44,796 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 29 trivial. 0 not checked. [2022-02-20 17:10:44,796 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 17:10:44,796 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [635174324] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 17:10:44,796 INFO L191 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-02-20 17:10:44,797 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [15] total 18 [2022-02-20 17:10:44,797 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [27805019] [2022-02-20 17:10:44,797 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 17:10:44,798 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) Word has length 71 [2022-02-20 17:10:44,800 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 17:10:44,800 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 17:10:44,841 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:44,841 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-02-20 17:10:44,841 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 17:10:44,842 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-02-20 17:10:44,843 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=269, Unknown=0, NotChecked=0, Total=306 [2022-02-20 17:10:44,844 INFO L87 Difference]: Start difference. First operand 83 states and 109 transitions. Second operand has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 17:10:45,346 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:45,346 INFO L93 Difference]: Finished difference Result 134 states and 176 transitions. [2022-02-20 17:10:45,346 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-02-20 17:10:45,347 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) Word has length 71 [2022-02-20 17:10:45,347 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 17:10:45,347 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 17:10:45,349 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 165 transitions. [2022-02-20 17:10:45,349 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 17:10:45,351 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 165 transitions. [2022-02-20 17:10:45,351 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 165 transitions. [2022-02-20 17:10:45,471 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 165 edges. 165 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:45,473 INFO L225 Difference]: With dead ends: 134 [2022-02-20 17:10:45,473 INFO L226 Difference]: Without dead ends: 85 [2022-02-20 17:10:45,474 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 105 GetRequests, 86 SyntacticMatches, 0 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=49, Invalid=371, Unknown=0, NotChecked=0, Total=420 [2022-02-20 17:10:45,474 INFO L933 BasicCegarLoop]: 91 mSDtfsCounter, 48 mSDsluCounter, 456 mSDsCounter, 0 mSdLazyCounter, 79 mSolverCounterSat, 21 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 52 SdHoareTripleChecker+Valid, 547 SdHoareTripleChecker+Invalid, 100 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 21 IncrementalHoareTripleChecker+Valid, 79 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 17:10:45,475 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [52 Valid, 547 Invalid, 100 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [21 Valid, 79 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 17:10:45,475 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 85 states. [2022-02-20 17:10:45,481 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 85 to 85. [2022-02-20 17:10:45,482 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 17:10:45,482 INFO L82 GeneralOperation]: Start isEquivalent. First operand 85 states. Second operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) [2022-02-20 17:10:45,482 INFO L74 IsIncluded]: Start isIncluded. First operand 85 states. Second operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) [2022-02-20 17:10:45,482 INFO L87 Difference]: Start difference. First operand 85 states. Second operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) [2022-02-20 17:10:45,485 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:45,485 INFO L93 Difference]: Finished difference Result 85 states and 113 transitions. [2022-02-20 17:10:45,485 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 113 transitions. [2022-02-20 17:10:45,485 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:45,485 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:45,486 INFO L74 IsIncluded]: Start isIncluded. First operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) Second operand 85 states. [2022-02-20 17:10:45,486 INFO L87 Difference]: Start difference. First operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) Second operand 85 states. [2022-02-20 17:10:45,489 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:45,489 INFO L93 Difference]: Finished difference Result 85 states and 113 transitions. [2022-02-20 17:10:45,489 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 113 transitions. [2022-02-20 17:10:45,489 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:45,489 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:45,489 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 17:10:45,489 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 17:10:45,489 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) [2022-02-20 17:10:45,492 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 85 states to 85 states and 113 transitions. [2022-02-20 17:10:45,492 INFO L78 Accepts]: Start accepts. Automaton has 85 states and 113 transitions. Word has length 71 [2022-02-20 17:10:45,492 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 17:10:45,492 INFO L470 AbstractCegarLoop]: Abstraction has 85 states and 113 transitions. [2022-02-20 17:10:45,492 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 17:10:45,492 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 113 transitions. [2022-02-20 17:10:45,493 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 84 [2022-02-20 17:10:45,493 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 17:10:45,493 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 3, 3, 3, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 17:10:45,511 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Forceful destruction successful, exit code 0 [2022-02-20 17:10:45,711 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable3 [2022-02-20 17:10:45,711 INFO L402 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 17:10:45,711 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 17:10:45,711 INFO L85 PathProgramCache]: Analyzing trace with hash -554559437, now seen corresponding path program 1 times [2022-02-20 17:10:45,712 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 17:10:45,712 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1607708179] [2022-02-20 17:10:45,712 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:45,712 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 17:10:45,757 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 17:10:45,757 INFO L352 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2022-02-20 17:10:45,777 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 17:10:45,811 INFO L138 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2022-02-20 17:10:45,811 INFO L628 BasicCegarLoop]: Counterexample is feasible [2022-02-20 17:10:45,812 INFO L764 garLoopResultBuilder]: Registering result UNSAFE for location __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION (0 of 1 remaining) [2022-02-20 17:10:45,814 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4 [2022-02-20 17:10:45,816 INFO L732 BasicCegarLoop]: Path program histogram: [1, 1, 1, 1, 1] [2022-02-20 17:10:45,818 INFO L180 ceAbstractionStarter]: Computing trace abstraction results [2022-02-20 17:10:45,853 FATAL L489 DefaultTranslator]: Callstack has procedure call flag but succeeding procedure is empty at [CALL] call #t~ret45 := nondet_tree(); [2022-02-20 17:10:45,854 FATAL L? ?]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.AssertionError: callstack broken after backtranslation by InlinerBacktranslator at de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:216) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:206) at de.uni_freiburg.informatik.ultimate.core.lib.results.CounterExampleResult.getProgramExecutionAsString(CounterExampleResult.java:155) at de.uni_freiburg.informatik.ultimate.core.lib.results.CounterExampleResult.getLongDescription(CounterExampleResult.java:134) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ResultService.reportResult(ResultService.java:86) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.CegarLoopResultReporter.reportResult(CegarLoopResultReporter.java:141) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportLocationResults(TraceAbstractionStarter.java:607) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:182) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:156) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:123) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:168) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runTool(PluginConnector.java:151) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.run(PluginConnector.java:128) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.executePluginConnector(ToolchainWalker.java:232) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.processPlugin(ToolchainWalker.java:226) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walkUnprotected(ToolchainWalker.java:142) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walk(ToolchainWalker.java:104) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainManager$Toolchain.processToolchain(ToolchainManager.java:320) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) [2022-02-20 17:10:45,860 INFO L158 Benchmark]: Toolchain (without parser) took 7946.10ms. Allocated memory was 109.1MB in the beginning and 203.4MB in the end (delta: 94.4MB). Free memory was 83.1MB in the beginning and 68.3MB in the end (delta: 14.8MB). Peak memory consumption was 109.5MB. Max. memory is 16.1GB. [2022-02-20 17:10:45,860 INFO L158 Benchmark]: CDTParser took 0.17ms. Allocated memory is still 109.1MB. Free memory is still 64.7MB. There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 17:10:45,860 INFO L158 Benchmark]: CACSL2BoogieTranslator took 258.88ms. Allocated memory was 109.1MB in the beginning and 136.3MB in the end (delta: 27.3MB). Free memory was 82.9MB in the beginning and 106.9MB in the end (delta: -24.0MB). Peak memory consumption was 6.3MB. Max. memory is 16.1GB. [2022-02-20 17:10:45,861 INFO L158 Benchmark]: Boogie Procedure Inliner took 50.03ms. Allocated memory is still 136.3MB. Free memory was 106.7MB in the beginning and 104.6MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 17:10:45,861 INFO L158 Benchmark]: Boogie Preprocessor took 58.19ms. Allocated memory is still 136.3MB. Free memory was 104.6MB in the beginning and 102.1MB in the end (delta: 2.5MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 17:10:45,861 INFO L158 Benchmark]: RCFGBuilder took 433.98ms. Allocated memory is still 136.3MB. Free memory was 102.0MB in the beginning and 79.2MB in the end (delta: 22.7MB). Peak memory consumption was 23.1MB. Max. memory is 16.1GB. [2022-02-20 17:10:45,861 INFO L158 Benchmark]: TraceAbstraction took 7140.66ms. Allocated memory was 136.3MB in the beginning and 203.4MB in the end (delta: 67.1MB). Free memory was 78.6MB in the beginning and 68.3MB in the end (delta: 10.3MB). Peak memory consumption was 80.1MB. Max. memory is 16.1GB. [2022-02-20 17:10:45,862 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.17ms. Allocated memory is still 109.1MB. Free memory is still 64.7MB. There was no memory consumed. Max. memory is 16.1GB. * CACSL2BoogieTranslator took 258.88ms. Allocated memory was 109.1MB in the beginning and 136.3MB in the end (delta: 27.3MB). Free memory was 82.9MB in the beginning and 106.9MB in the end (delta: -24.0MB). Peak memory consumption was 6.3MB. Max. memory is 16.1GB. * Boogie Procedure Inliner took 50.03ms. Allocated memory is still 136.3MB. Free memory was 106.7MB in the beginning and 104.6MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * Boogie Preprocessor took 58.19ms. Allocated memory is still 136.3MB. Free memory was 104.6MB in the beginning and 102.1MB in the end (delta: 2.5MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * RCFGBuilder took 433.98ms. Allocated memory is still 136.3MB. Free memory was 102.0MB in the beginning and 79.2MB in the end (delta: 22.7MB). Peak memory consumption was 23.1MB. Max. memory is 16.1GB. * TraceAbstraction took 7140.66ms. Allocated memory was 136.3MB in the beginning and 203.4MB in the end (delta: 67.1MB). Free memory was 78.6MB in the beginning and 68.3MB in the end (delta: 10.3MB). Peak memory consumption was 80.1MB. Max. memory is 16.1GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - StatisticsResult: ErrorAutomatonStatistics NumberErrorTraces: 0, NumberStatementsAllTraces: 0, NumberRelevantStatements: 0, 0.0s ErrorAutomatonConstructionTimeTotal, 0.0s FaulLocalizationTime, NumberStatementsFirstTrace: -1, TraceLengthAvg: 0, 0.0s ErrorAutomatonConstructionTimeAvg, 0.0s ErrorAutomatonDifferenceTimeAvg, 0.0s ErrorAutomatonDifferenceTimeTotal, NumberOfNoEnhancement: 0, NumberOfFiniteEnhancement: 0, NumberOfInfiniteEnhancement: 0 - ExceptionOrErrorResult: AssertionError: callstack broken after backtranslation by InlinerBacktranslator de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: AssertionError: callstack broken after backtranslation by InlinerBacktranslator: de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) RESULT: Ultimate could not prove your program: Toolchain returned no result. [2022-02-20 17:10:45,901 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Ended with exit code 0 Received shutdown request... --- End real Ultimate output --- Execution finished normally Using bit-precise analysis Retrying with bit-precise analysis ### Bit-precise run ### Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/verifythis/tree_del_iter.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash cce1bb7a06b9dd56fbf663e182ffe801720ee05ee19a126a08070f1616bc4afe --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 17:10:47,848 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 17:10:47,850 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 17:10:47,881 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 17:10:47,882 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 17:10:47,885 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 17:10:47,885 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 17:10:47,889 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 17:10:47,891 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 17:10:47,894 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 17:10:47,895 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 17:10:47,898 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 17:10:47,898 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 17:10:47,900 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 17:10:47,900 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 17:10:47,902 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 17:10:47,903 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 17:10:47,903 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 17:10:47,905 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 17:10:47,909 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 17:10:47,910 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 17:10:47,911 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 17:10:47,911 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 17:10:47,913 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 17:10:47,917 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 17:10:47,917 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 17:10:47,918 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 17:10:47,925 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 17:10:47,925 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 17:10:47,925 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 17:10:47,926 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 17:10:47,926 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 17:10:47,926 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 17:10:47,927 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 17:10:47,927 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 17:10:47,928 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 17:10:47,928 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 17:10:47,928 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 17:10:47,928 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 17:10:47,929 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 17:10:47,929 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 17:10:47,932 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.epf [2022-02-20 17:10:47,956 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 17:10:47,956 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 17:10:47,957 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 17:10:47,957 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 17:10:47,957 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 17:10:47,957 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 17:10:47,958 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 17:10:47,958 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 17:10:47,958 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 17:10:47,958 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 17:10:47,959 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 17:10:47,959 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 17:10:47,959 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 17:10:47,959 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 17:10:47,960 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 17:10:47,960 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 17:10:47,960 INFO L138 SettingsManager]: * Adapt memory model on pointer casts if necessary=true [2022-02-20 17:10:47,960 INFO L138 SettingsManager]: * Use bitvectors instead of ints=true [2022-02-20 17:10:47,960 INFO L138 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2022-02-20 17:10:47,960 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 17:10:47,960 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 17:10:47,960 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 17:10:47,961 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 17:10:47,961 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 17:10:47,961 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 17:10:47,961 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 17:10:47,961 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 17:10:47,961 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 17:10:47,961 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 17:10:47,961 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 17:10:47,961 INFO L138 SettingsManager]: * Trace refinement strategy=WOLF [2022-02-20 17:10:47,962 INFO L138 SettingsManager]: * Command for external solver=cvc4 --incremental --print-success --lang smt [2022-02-20 17:10:47,962 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 17:10:47,962 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 17:10:47,962 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 17:10:47,962 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2022-02-20 17:10:47,962 INFO L138 SettingsManager]: * Logic for external solver=AUFBV WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> cce1bb7a06b9dd56fbf663e182ffe801720ee05ee19a126a08070f1616bc4afe [2022-02-20 17:10:48,263 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 17:10:48,289 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 17:10:48,291 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 17:10:48,291 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 17:10:48,292 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 17:10:48,293 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/verifythis/tree_del_iter.c [2022-02-20 17:10:48,351 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/5be71b11a/e454ef7710894c26aaec9de90a4ed16d/FLAG48a293604 [2022-02-20 17:10:48,736 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 17:10:48,737 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/tree_del_iter.c [2022-02-20 17:10:48,742 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/5be71b11a/e454ef7710894c26aaec9de90a4ed16d/FLAG48a293604 [2022-02-20 17:10:48,752 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/5be71b11a/e454ef7710894c26aaec9de90a4ed16d [2022-02-20 17:10:48,754 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 17:10:48,756 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 17:10:48,758 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 17:10:48,758 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 17:10:48,760 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 17:10:48,761 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 05:10:48" (1/1) ... [2022-02-20 17:10:48,762 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@5aa021ce and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:48, skipping insertion in model container [2022-02-20 17:10:48,763 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 05:10:48" (1/1) ... [2022-02-20 17:10:48,767 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 17:10:48,782 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 17:10:48,907 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/tree_del_iter.c[586,599] [2022-02-20 17:10:48,944 WARN L1545 CHandler]: Possible shadowing of function min [2022-02-20 17:10:48,971 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 17:10:48,991 INFO L200 MainTranslator]: Restarting translation with changed settings: SettingsChange [mNewPreferredMemoryModel=HoenickeLindenmann_1ByteResolution] [2022-02-20 17:10:48,994 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 17:10:49,001 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/tree_del_iter.c[586,599] [2022-02-20 17:10:49,012 WARN L1545 CHandler]: Possible shadowing of function min [2022-02-20 17:10:49,021 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 17:10:49,031 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 17:10:49,042 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/tree_del_iter.c[586,599] [2022-02-20 17:10:49,060 WARN L1545 CHandler]: Possible shadowing of function min [2022-02-20 17:10:49,070 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 17:10:49,083 INFO L208 MainTranslator]: Completed translation [2022-02-20 17:10:49,085 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49 WrapperNode [2022-02-20 17:10:49,085 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 17:10:49,086 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 17:10:49,086 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 17:10:49,086 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 17:10:49,091 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49" (1/1) ... [2022-02-20 17:10:49,109 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49" (1/1) ... [2022-02-20 17:10:49,137 INFO L137 Inliner]: procedures = 31, calls = 64, calls flagged for inlining = 5, calls inlined = 5, statements flattened = 110 [2022-02-20 17:10:49,137 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 17:10:49,138 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 17:10:49,138 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 17:10:49,138 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 17:10:49,144 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49" (1/1) ... [2022-02-20 17:10:49,144 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49" (1/1) ... [2022-02-20 17:10:49,157 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49" (1/1) ... [2022-02-20 17:10:49,159 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49" (1/1) ... [2022-02-20 17:10:49,170 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49" (1/1) ... [2022-02-20 17:10:49,183 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49" (1/1) ... [2022-02-20 17:10:49,186 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49" (1/1) ... [2022-02-20 17:10:49,188 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 17:10:49,196 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 17:10:49,196 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 17:10:49,196 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 17:10:49,196 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49" (1/1) ... [2022-02-20 17:10:49,201 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 17:10:49,211 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 17:10:49,223 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 17:10:49,225 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 17:10:49,250 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 17:10:49,250 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~intINTTYPE1 [2022-02-20 17:10:49,250 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2022-02-20 17:10:49,250 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2022-02-20 17:10:49,250 INFO L130 BoogieDeclarations]: Found specification of procedure min [2022-02-20 17:10:49,250 INFO L138 BoogieDeclarations]: Found implementation of procedure min [2022-02-20 17:10:49,250 INFO L130 BoogieDeclarations]: Found specification of procedure read~intINTTYPE4 [2022-02-20 17:10:49,251 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.meminit [2022-02-20 17:10:49,251 INFO L138 BoogieDeclarations]: Found implementation of procedure #Ultimate.meminit [2022-02-20 17:10:49,251 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2022-02-20 17:10:49,251 INFO L130 BoogieDeclarations]: Found specification of procedure nondet_tree [2022-02-20 17:10:49,251 INFO L138 BoogieDeclarations]: Found implementation of procedure nondet_tree [2022-02-20 17:10:49,251 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2022-02-20 17:10:49,251 INFO L130 BoogieDeclarations]: Found specification of procedure size [2022-02-20 17:10:49,251 INFO L138 BoogieDeclarations]: Found implementation of procedure size [2022-02-20 17:10:49,252 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 17:10:49,252 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 17:10:49,252 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-02-20 17:10:49,252 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-02-20 17:10:49,252 INFO L130 BoogieDeclarations]: Found specification of procedure tree_inorder [2022-02-20 17:10:49,252 INFO L138 BoogieDeclarations]: Found implementation of procedure tree_inorder [2022-02-20 17:10:49,253 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-02-20 17:10:49,253 INFO L130 BoogieDeclarations]: Found specification of procedure write~intINTTYPE4 [2022-02-20 17:10:49,363 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 17:10:49,372 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 17:10:49,680 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 17:10:49,685 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 17:10:49,685 INFO L299 CfgBuilder]: Removed 3 assume(true) statements. [2022-02-20 17:10:49,687 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 05:10:49 BoogieIcfgContainer [2022-02-20 17:10:49,687 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 17:10:49,688 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 17:10:49,688 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 17:10:49,689 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 17:10:49,690 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 05:10:48" (1/3) ... [2022-02-20 17:10:49,690 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@308161cc and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 05:10:49, skipping insertion in model container [2022-02-20 17:10:49,690 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 05:10:49" (2/3) ... [2022-02-20 17:10:49,690 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@308161cc and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 05:10:49, skipping insertion in model container [2022-02-20 17:10:49,691 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 05:10:49" (3/3) ... [2022-02-20 17:10:49,691 INFO L111 eAbstractionObserver]: Analyzing ICFG tree_del_iter.c [2022-02-20 17:10:49,694 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 17:10:49,695 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 17:10:49,720 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 17:10:49,724 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 17:10:49,725 INFO L340 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-02-20 17:10:49,737 INFO L276 IsEmpty]: Start isEmpty. Operand has 83 states, 55 states have (on average 1.290909090909091) internal successors, (71), 56 states have internal predecessors, (71), 20 states have call successors, (20), 6 states have call predecessors, (20), 6 states have return successors, (20), 20 states have call predecessors, (20), 20 states have call successors, (20) [2022-02-20 17:10:49,744 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2022-02-20 17:10:49,744 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 17:10:49,744 INFO L514 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 17:10:49,745 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 17:10:49,748 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 17:10:49,748 INFO L85 PathProgramCache]: Analyzing trace with hash 1252310823, now seen corresponding path program 1 times [2022-02-20 17:10:49,756 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 17:10:49,756 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [967912179] [2022-02-20 17:10:49,769 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:49,770 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 17:10:49,770 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 17:10:49,771 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 17:10:49,772 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (2)] Waiting until timeout for monitored process [2022-02-20 17:10:49,877 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:49,882 INFO L263 TraceCheckSpWp]: Trace formula consists of 120 conjuncts, 6 conjunts are in the unsatisfiable core [2022-02-20 17:10:49,902 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:49,906 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 17:10:50,060 INFO L290 TraceCheckUtils]: 0: Hoare triple {86#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(16bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {86#true} is VALID [2022-02-20 17:10:50,060 INFO L290 TraceCheckUtils]: 1: Hoare triple {86#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {86#true} is VALID [2022-02-20 17:10:50,060 INFO L272 TraceCheckUtils]: 2: Hoare triple {86#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {86#true} is VALID [2022-02-20 17:10:50,061 INFO L290 TraceCheckUtils]: 3: Hoare triple {86#true} assume 0bv8 != #t~nondet5;havoc #t~nondet5;#res.base, #res.offset := 0bv32, 0bv32; {86#true} is VALID [2022-02-20 17:10:50,061 INFO L290 TraceCheckUtils]: 4: Hoare triple {86#true} assume true; {86#true} is VALID [2022-02-20 17:10:50,061 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {86#true} {86#true} #159#return; {86#true} is VALID [2022-02-20 17:10:50,061 INFO L290 TraceCheckUtils]: 6: Hoare triple {86#true} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {86#true} is VALID [2022-02-20 17:10:50,061 INFO L272 TraceCheckUtils]: 7: Hoare triple {86#true} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {86#true} is VALID [2022-02-20 17:10:50,062 INFO L290 TraceCheckUtils]: 8: Hoare triple {86#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {86#true} is VALID [2022-02-20 17:10:50,062 INFO L290 TraceCheckUtils]: 9: Hoare triple {86#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {86#true} is VALID [2022-02-20 17:10:50,062 INFO L290 TraceCheckUtils]: 10: Hoare triple {86#true} assume true; {86#true} is VALID [2022-02-20 17:10:50,062 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {86#true} {86#true} #161#return; {86#true} is VALID [2022-02-20 17:10:50,063 INFO L290 TraceCheckUtils]: 12: Hoare triple {86#true} task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4bv32); {86#true} is VALID [2022-02-20 17:10:50,063 INFO L272 TraceCheckUtils]: 13: Hoare triple {86#true} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {86#true} is VALID [2022-02-20 17:10:50,063 INFO L290 TraceCheckUtils]: 14: Hoare triple {86#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {86#true} is VALID [2022-02-20 17:10:50,064 INFO L290 TraceCheckUtils]: 15: Hoare triple {86#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {136#(= |size_#res| (_ bv0 32))} is VALID [2022-02-20 17:10:50,064 INFO L290 TraceCheckUtils]: 16: Hoare triple {136#(= |size_#res| (_ bv0 32))} assume true; {136#(= |size_#res| (_ bv0 32))} is VALID [2022-02-20 17:10:50,066 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {136#(= |size_#res| (_ bv0 32))} {86#true} #163#return; {143#(= |ULTIMATE.start_task_#t~ret33#1| (_ bv0 32))} is VALID [2022-02-20 17:10:50,066 INFO L290 TraceCheckUtils]: 18: Hoare triple {143#(= |ULTIMATE.start_task_#t~ret33#1| (_ bv0 32))} task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0bv32 != task_~n~1#1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {147#(= |ULTIMATE.start_assume_cycle_if_not_~cond#1| (_ bv0 32))} is VALID [2022-02-20 17:10:50,067 INFO L290 TraceCheckUtils]: 19: Hoare triple {147#(= |ULTIMATE.start_assume_cycle_if_not_~cond#1| (_ bv0 32))} assume !(0bv32 == assume_cycle_if_not_~cond#1); {87#false} is VALID [2022-02-20 17:10:50,067 INFO L290 TraceCheckUtils]: 20: Hoare triple {87#false} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1#1)); {87#false} is VALID [2022-02-20 17:10:50,067 INFO L272 TraceCheckUtils]: 21: Hoare triple {87#false} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4bv32, ~bvmul32(4bv32, task_~n~1#1)); {87#false} is VALID [2022-02-20 17:10:50,068 INFO L290 TraceCheckUtils]: 22: Hoare triple {87#false} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {87#false} is VALID [2022-02-20 17:10:50,069 INFO L290 TraceCheckUtils]: 23: Hoare triple {87#false} assume true; {87#false} is VALID [2022-02-20 17:10:50,069 INFO L284 TraceCheckUtils]: 24: Hoare quadruple {87#false} {87#false} #165#return; {87#false} is VALID [2022-02-20 17:10:50,069 INFO L290 TraceCheckUtils]: 25: Hoare triple {87#false} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {87#false} is VALID [2022-02-20 17:10:50,070 INFO L272 TraceCheckUtils]: 26: Hoare triple {87#false} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {87#false} is VALID [2022-02-20 17:10:50,070 INFO L290 TraceCheckUtils]: 27: Hoare triple {87#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {87#false} is VALID [2022-02-20 17:10:50,070 INFO L290 TraceCheckUtils]: 28: Hoare triple {87#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {87#false} is VALID [2022-02-20 17:10:50,071 INFO L290 TraceCheckUtils]: 29: Hoare triple {87#false} assume true; {87#false} is VALID [2022-02-20 17:10:50,071 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {87#false} {87#false} #167#return; {87#false} is VALID [2022-02-20 17:10:50,071 INFO L290 TraceCheckUtils]: 31: Hoare triple {87#false} havoc task_#t~ret35#1;call task_#t~mem36#1 := read~intINTTYPE4(task_~x~0#1.base, task_~x~0#1.offset, 4bv32); {87#false} is VALID [2022-02-20 17:10:50,072 INFO L272 TraceCheckUtils]: 32: Hoare triple {87#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1bv32 else 0bv32)); {87#false} is VALID [2022-02-20 17:10:50,072 INFO L290 TraceCheckUtils]: 33: Hoare triple {87#false} ~cond := #in~cond; {87#false} is VALID [2022-02-20 17:10:50,072 INFO L290 TraceCheckUtils]: 34: Hoare triple {87#false} assume 0bv32 == ~cond; {87#false} is VALID [2022-02-20 17:10:50,072 INFO L290 TraceCheckUtils]: 35: Hoare triple {87#false} assume !false; {87#false} is VALID [2022-02-20 17:10:50,073 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 17:10:50,073 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 17:10:50,074 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 17:10:50,074 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [967912179] [2022-02-20 17:10:50,075 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [967912179] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 17:10:50,075 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 17:10:50,076 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-02-20 17:10:50,078 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1848818996] [2022-02-20 17:10:50,079 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 17:10:50,084 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 5.0) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) Word has length 36 [2022-02-20 17:10:50,088 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 17:10:50,090 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 5.0) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 17:10:50,125 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:50,126 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-02-20 17:10:50,127 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 17:10:50,143 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-02-20 17:10:50,144 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 17:10:50,146 INFO L87 Difference]: Start difference. First operand has 83 states, 55 states have (on average 1.290909090909091) internal successors, (71), 56 states have internal predecessors, (71), 20 states have call successors, (20), 6 states have call predecessors, (20), 6 states have return successors, (20), 20 states have call predecessors, (20), 20 states have call successors, (20) Second operand has 5 states, 5 states have (on average 5.0) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 17:10:50,642 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:50,642 INFO L93 Difference]: Finished difference Result 143 states and 195 transitions. [2022-02-20 17:10:50,642 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-02-20 17:10:50,643 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 5.0) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) Word has length 36 [2022-02-20 17:10:50,643 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 17:10:50,644 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 5.0) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 17:10:50,652 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 195 transitions. [2022-02-20 17:10:50,653 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 5.0) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 17:10:50,658 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 195 transitions. [2022-02-20 17:10:50,658 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 195 transitions. [2022-02-20 17:10:50,847 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 195 edges. 195 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:50,856 INFO L225 Difference]: With dead ends: 143 [2022-02-20 17:10:50,856 INFO L226 Difference]: Without dead ends: 79 [2022-02-20 17:10:50,858 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 35 GetRequests, 32 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 17:10:50,860 INFO L933 BasicCegarLoop]: 104 mSDtfsCounter, 2 mSDsluCounter, 307 mSDsCounter, 0 mSdLazyCounter, 10 mSolverCounterSat, 1 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 2 SdHoareTripleChecker+Valid, 411 SdHoareTripleChecker+Invalid, 11 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 1 IncrementalHoareTripleChecker+Valid, 10 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 17:10:50,861 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [2 Valid, 411 Invalid, 11 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [1 Valid, 10 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 17:10:50,871 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 79 states. [2022-02-20 17:10:50,884 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 79 to 79. [2022-02-20 17:10:50,884 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 17:10:50,885 INFO L82 GeneralOperation]: Start isEquivalent. First operand 79 states. Second operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) [2022-02-20 17:10:50,885 INFO L74 IsIncluded]: Start isIncluded. First operand 79 states. Second operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) [2022-02-20 17:10:50,886 INFO L87 Difference]: Start difference. First operand 79 states. Second operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) [2022-02-20 17:10:50,893 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:50,893 INFO L93 Difference]: Finished difference Result 79 states and 103 transitions. [2022-02-20 17:10:50,893 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 103 transitions. [2022-02-20 17:10:50,895 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:50,895 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:50,895 INFO L74 IsIncluded]: Start isIncluded. First operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) Second operand 79 states. [2022-02-20 17:10:50,896 INFO L87 Difference]: Start difference. First operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) Second operand 79 states. [2022-02-20 17:10:50,901 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:50,901 INFO L93 Difference]: Finished difference Result 79 states and 103 transitions. [2022-02-20 17:10:50,901 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 103 transitions. [2022-02-20 17:10:50,902 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:50,902 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:50,902 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 17:10:50,902 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 17:10:50,903 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 79 states, 51 states have (on average 1.1764705882352942) internal successors, (60), 52 states have internal predecessors, (60), 20 states have call successors, (20), 6 states have call predecessors, (20), 7 states have return successors, (23), 20 states have call predecessors, (23), 20 states have call successors, (23) [2022-02-20 17:10:50,907 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 79 states to 79 states and 103 transitions. [2022-02-20 17:10:50,908 INFO L78 Accepts]: Start accepts. Automaton has 79 states and 103 transitions. Word has length 36 [2022-02-20 17:10:50,908 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 17:10:50,908 INFO L470 AbstractCegarLoop]: Abstraction has 79 states and 103 transitions. [2022-02-20 17:10:50,908 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 5.0) internal successors, (25), 4 states have internal predecessors, (25), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 17:10:50,909 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 103 transitions. [2022-02-20 17:10:50,910 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-02-20 17:10:50,910 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 17:10:50,910 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 17:10:50,920 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (2)] Forceful destruction successful, exit code 0 [2022-02-20 17:10:51,120 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 17:10:51,121 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 17:10:51,121 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 17:10:51,121 INFO L85 PathProgramCache]: Analyzing trace with hash 1818033216, now seen corresponding path program 1 times [2022-02-20 17:10:51,122 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 17:10:51,122 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [898024091] [2022-02-20 17:10:51,122 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:51,122 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 17:10:51,122 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 17:10:51,125 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 17:10:51,127 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (3)] Waiting until timeout for monitored process [2022-02-20 17:10:51,200 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:51,203 INFO L263 TraceCheckSpWp]: Trace formula consists of 145 conjuncts, 13 conjunts are in the unsatisfiable core [2022-02-20 17:10:51,212 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:51,214 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 17:10:51,467 INFO L290 TraceCheckUtils]: 0: Hoare triple {657#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(16bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {657#true} is VALID [2022-02-20 17:10:51,468 INFO L290 TraceCheckUtils]: 1: Hoare triple {657#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {657#true} is VALID [2022-02-20 17:10:51,468 INFO L272 TraceCheckUtils]: 2: Hoare triple {657#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {657#true} is VALID [2022-02-20 17:10:51,469 INFO L290 TraceCheckUtils]: 3: Hoare triple {657#true} assume 0bv8 != #t~nondet5;havoc #t~nondet5;#res.base, #res.offset := 0bv32, 0bv32; {671#(and (= |nondet_tree_#res.base| (_ bv0 32)) (= |nondet_tree_#res.offset| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,469 INFO L290 TraceCheckUtils]: 4: Hoare triple {671#(and (= |nondet_tree_#res.base| (_ bv0 32)) (= |nondet_tree_#res.offset| (_ bv0 32)))} assume true; {671#(and (= |nondet_tree_#res.base| (_ bv0 32)) (= |nondet_tree_#res.offset| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,470 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {671#(and (= |nondet_tree_#res.base| (_ bv0 32)) (= |nondet_tree_#res.offset| (_ bv0 32)))} {657#true} #159#return; {678#(and (= (_ bv0 32) |ULTIMATE.start_main_#t~ret45#1.offset|) (= |ULTIMATE.start_main_#t~ret45#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,470 INFO L290 TraceCheckUtils]: 6: Hoare triple {678#(and (= (_ bv0 32) |ULTIMATE.start_main_#t~ret45#1.offset|) (= |ULTIMATE.start_main_#t~ret45#1.base| (_ bv0 32)))} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,471 INFO L272 TraceCheckUtils]: 7: Hoare triple {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {657#true} is VALID [2022-02-20 17:10:51,471 INFO L290 TraceCheckUtils]: 8: Hoare triple {657#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {657#true} is VALID [2022-02-20 17:10:51,471 INFO L290 TraceCheckUtils]: 9: Hoare triple {657#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {657#true} is VALID [2022-02-20 17:10:51,471 INFO L290 TraceCheckUtils]: 10: Hoare triple {657#true} assume true; {657#true} is VALID [2022-02-20 17:10:51,472 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {657#true} {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} #161#return; {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,472 INFO L290 TraceCheckUtils]: 12: Hoare triple {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4bv32); {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,475 INFO L272 TraceCheckUtils]: 13: Hoare triple {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {657#true} is VALID [2022-02-20 17:10:51,475 INFO L290 TraceCheckUtils]: 14: Hoare triple {657#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {707#(and (= size_~t.offset |size_#in~t.offset|) (= |size_#in~t.base| size_~t.base))} is VALID [2022-02-20 17:10:51,475 INFO L290 TraceCheckUtils]: 15: Hoare triple {707#(and (= size_~t.offset |size_#in~t.offset|) (= |size_#in~t.base| size_~t.base))} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,476 INFO L272 TraceCheckUtils]: 16: Hoare triple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {657#true} is VALID [2022-02-20 17:10:51,476 INFO L290 TraceCheckUtils]: 17: Hoare triple {657#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {657#true} is VALID [2022-02-20 17:10:51,477 INFO L290 TraceCheckUtils]: 18: Hoare triple {657#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {657#true} is VALID [2022-02-20 17:10:51,477 INFO L290 TraceCheckUtils]: 19: Hoare triple {657#true} assume true; {657#true} is VALID [2022-02-20 17:10:51,478 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {657#true} {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} #155#return; {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,478 INFO L290 TraceCheckUtils]: 21: Hoare triple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,478 INFO L272 TraceCheckUtils]: 22: Hoare triple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {657#true} is VALID [2022-02-20 17:10:51,479 INFO L290 TraceCheckUtils]: 23: Hoare triple {657#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {657#true} is VALID [2022-02-20 17:10:51,479 INFO L290 TraceCheckUtils]: 24: Hoare triple {657#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {657#true} is VALID [2022-02-20 17:10:51,479 INFO L290 TraceCheckUtils]: 25: Hoare triple {657#true} assume true; {657#true} is VALID [2022-02-20 17:10:51,479 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {657#true} {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} #157#return; {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,480 INFO L290 TraceCheckUtils]: 27: Hoare triple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret29, #t~ret31));havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,480 INFO L290 TraceCheckUtils]: 28: Hoare triple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} assume true; {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,481 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} #163#return; {658#false} is VALID [2022-02-20 17:10:51,481 INFO L290 TraceCheckUtils]: 30: Hoare triple {658#false} task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0bv32 != task_~n~1#1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {658#false} is VALID [2022-02-20 17:10:51,481 INFO L290 TraceCheckUtils]: 31: Hoare triple {658#false} assume !(0bv32 == assume_cycle_if_not_~cond#1); {658#false} is VALID [2022-02-20 17:10:51,481 INFO L290 TraceCheckUtils]: 32: Hoare triple {658#false} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1#1)); {658#false} is VALID [2022-02-20 17:10:51,481 INFO L272 TraceCheckUtils]: 33: Hoare triple {658#false} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4bv32, ~bvmul32(4bv32, task_~n~1#1)); {658#false} is VALID [2022-02-20 17:10:51,481 INFO L290 TraceCheckUtils]: 34: Hoare triple {658#false} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {658#false} is VALID [2022-02-20 17:10:51,481 INFO L290 TraceCheckUtils]: 35: Hoare triple {658#false} assume true; {658#false} is VALID [2022-02-20 17:10:51,481 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {658#false} {658#false} #165#return; {658#false} is VALID [2022-02-20 17:10:51,482 INFO L290 TraceCheckUtils]: 37: Hoare triple {658#false} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {658#false} is VALID [2022-02-20 17:10:51,482 INFO L272 TraceCheckUtils]: 38: Hoare triple {658#false} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {658#false} is VALID [2022-02-20 17:10:51,482 INFO L290 TraceCheckUtils]: 39: Hoare triple {658#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {658#false} is VALID [2022-02-20 17:10:51,482 INFO L290 TraceCheckUtils]: 40: Hoare triple {658#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {658#false} is VALID [2022-02-20 17:10:51,482 INFO L290 TraceCheckUtils]: 41: Hoare triple {658#false} assume true; {658#false} is VALID [2022-02-20 17:10:51,482 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {658#false} {658#false} #167#return; {658#false} is VALID [2022-02-20 17:10:51,482 INFO L290 TraceCheckUtils]: 43: Hoare triple {658#false} havoc task_#t~ret35#1;call task_#t~mem36#1 := read~intINTTYPE4(task_~x~0#1.base, task_~x~0#1.offset, 4bv32); {658#false} is VALID [2022-02-20 17:10:51,482 INFO L272 TraceCheckUtils]: 44: Hoare triple {658#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1bv32 else 0bv32)); {658#false} is VALID [2022-02-20 17:10:51,482 INFO L290 TraceCheckUtils]: 45: Hoare triple {658#false} ~cond := #in~cond; {658#false} is VALID [2022-02-20 17:10:51,482 INFO L290 TraceCheckUtils]: 46: Hoare triple {658#false} assume 0bv32 == ~cond; {658#false} is VALID [2022-02-20 17:10:51,483 INFO L290 TraceCheckUtils]: 47: Hoare triple {658#false} assume !false; {658#false} is VALID [2022-02-20 17:10:51,483 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 17:10:51,483 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 17:10:51,799 INFO L290 TraceCheckUtils]: 47: Hoare triple {658#false} assume !false; {658#false} is VALID [2022-02-20 17:10:51,799 INFO L290 TraceCheckUtils]: 46: Hoare triple {658#false} assume 0bv32 == ~cond; {658#false} is VALID [2022-02-20 17:10:51,799 INFO L290 TraceCheckUtils]: 45: Hoare triple {658#false} ~cond := #in~cond; {658#false} is VALID [2022-02-20 17:10:51,799 INFO L272 TraceCheckUtils]: 44: Hoare triple {658#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1bv32 else 0bv32)); {658#false} is VALID [2022-02-20 17:10:51,799 INFO L290 TraceCheckUtils]: 43: Hoare triple {658#false} havoc task_#t~ret35#1;call task_#t~mem36#1 := read~intINTTYPE4(task_~x~0#1.base, task_~x~0#1.offset, 4bv32); {658#false} is VALID [2022-02-20 17:10:51,800 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {657#true} {658#false} #167#return; {658#false} is VALID [2022-02-20 17:10:51,803 INFO L290 TraceCheckUtils]: 41: Hoare triple {657#true} assume true; {657#true} is VALID [2022-02-20 17:10:51,803 INFO L290 TraceCheckUtils]: 40: Hoare triple {657#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {657#true} is VALID [2022-02-20 17:10:51,803 INFO L290 TraceCheckUtils]: 39: Hoare triple {657#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {657#true} is VALID [2022-02-20 17:10:51,804 INFO L272 TraceCheckUtils]: 38: Hoare triple {658#false} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {657#true} is VALID [2022-02-20 17:10:51,804 INFO L290 TraceCheckUtils]: 37: Hoare triple {658#false} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {658#false} is VALID [2022-02-20 17:10:51,804 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {657#true} {658#false} #165#return; {658#false} is VALID [2022-02-20 17:10:51,804 INFO L290 TraceCheckUtils]: 35: Hoare triple {657#true} assume true; {657#true} is VALID [2022-02-20 17:10:51,804 INFO L290 TraceCheckUtils]: 34: Hoare triple {657#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {657#true} is VALID [2022-02-20 17:10:51,804 INFO L272 TraceCheckUtils]: 33: Hoare triple {658#false} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4bv32, ~bvmul32(4bv32, task_~n~1#1)); {657#true} is VALID [2022-02-20 17:10:51,805 INFO L290 TraceCheckUtils]: 32: Hoare triple {658#false} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1#1)); {658#false} is VALID [2022-02-20 17:10:51,808 INFO L290 TraceCheckUtils]: 31: Hoare triple {658#false} assume !(0bv32 == assume_cycle_if_not_~cond#1); {658#false} is VALID [2022-02-20 17:10:51,808 INFO L290 TraceCheckUtils]: 30: Hoare triple {658#false} task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0bv32 != task_~n~1#1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {658#false} is VALID [2022-02-20 17:10:51,809 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} #163#return; {658#false} is VALID [2022-02-20 17:10:51,811 INFO L290 TraceCheckUtils]: 28: Hoare triple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} assume true; {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,811 INFO L290 TraceCheckUtils]: 27: Hoare triple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret29, #t~ret31));havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,816 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {657#true} {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} #157#return; {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,816 INFO L290 TraceCheckUtils]: 25: Hoare triple {657#true} assume true; {657#true} is VALID [2022-02-20 17:10:51,816 INFO L290 TraceCheckUtils]: 24: Hoare triple {657#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {657#true} is VALID [2022-02-20 17:10:51,816 INFO L290 TraceCheckUtils]: 23: Hoare triple {657#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {657#true} is VALID [2022-02-20 17:10:51,816 INFO L272 TraceCheckUtils]: 22: Hoare triple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {657#true} is VALID [2022-02-20 17:10:51,817 INFO L290 TraceCheckUtils]: 21: Hoare triple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,818 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {657#true} {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} #155#return; {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,818 INFO L290 TraceCheckUtils]: 19: Hoare triple {657#true} assume true; {657#true} is VALID [2022-02-20 17:10:51,818 INFO L290 TraceCheckUtils]: 18: Hoare triple {657#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {657#true} is VALID [2022-02-20 17:10:51,819 INFO L290 TraceCheckUtils]: 17: Hoare triple {657#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {657#true} is VALID [2022-02-20 17:10:51,819 INFO L272 TraceCheckUtils]: 16: Hoare triple {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {657#true} is VALID [2022-02-20 17:10:51,820 INFO L290 TraceCheckUtils]: 15: Hoare triple {907#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))) (and (= size_~t.offset (_ bv0 32)) (= (_ bv0 32) size_~t.base)))} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {711#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))))} is VALID [2022-02-20 17:10:51,820 INFO L290 TraceCheckUtils]: 14: Hoare triple {657#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {907#(or (not (= |size_#in~t.offset| (_ bv0 32))) (not (= |size_#in~t.base| (_ bv0 32))) (and (= size_~t.offset (_ bv0 32)) (= (_ bv0 32) size_~t.base)))} is VALID [2022-02-20 17:10:51,821 INFO L272 TraceCheckUtils]: 13: Hoare triple {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {657#true} is VALID [2022-02-20 17:10:51,832 INFO L290 TraceCheckUtils]: 12: Hoare triple {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4bv32); {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,833 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {657#true} {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} #161#return; {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,833 INFO L290 TraceCheckUtils]: 10: Hoare triple {657#true} assume true; {657#true} is VALID [2022-02-20 17:10:51,833 INFO L290 TraceCheckUtils]: 9: Hoare triple {657#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {657#true} is VALID [2022-02-20 17:10:51,833 INFO L290 TraceCheckUtils]: 8: Hoare triple {657#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {657#true} is VALID [2022-02-20 17:10:51,833 INFO L272 TraceCheckUtils]: 7: Hoare triple {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {657#true} is VALID [2022-02-20 17:10:51,834 INFO L290 TraceCheckUtils]: 6: Hoare triple {678#(and (= (_ bv0 32) |ULTIMATE.start_main_#t~ret45#1.offset|) (= |ULTIMATE.start_main_#t~ret45#1.base| (_ bv0 32)))} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {682#(and (= (_ bv0 32) |ULTIMATE.start_task_~t#1.offset|) (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,834 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {671#(and (= |nondet_tree_#res.base| (_ bv0 32)) (= |nondet_tree_#res.offset| (_ bv0 32)))} {657#true} #159#return; {678#(and (= (_ bv0 32) |ULTIMATE.start_main_#t~ret45#1.offset|) (= |ULTIMATE.start_main_#t~ret45#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,835 INFO L290 TraceCheckUtils]: 4: Hoare triple {671#(and (= |nondet_tree_#res.base| (_ bv0 32)) (= |nondet_tree_#res.offset| (_ bv0 32)))} assume true; {671#(and (= |nondet_tree_#res.base| (_ bv0 32)) (= |nondet_tree_#res.offset| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,835 INFO L290 TraceCheckUtils]: 3: Hoare triple {657#true} assume 0bv8 != #t~nondet5;havoc #t~nondet5;#res.base, #res.offset := 0bv32, 0bv32; {671#(and (= |nondet_tree_#res.base| (_ bv0 32)) (= |nondet_tree_#res.offset| (_ bv0 32)))} is VALID [2022-02-20 17:10:51,835 INFO L272 TraceCheckUtils]: 2: Hoare triple {657#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {657#true} is VALID [2022-02-20 17:10:51,835 INFO L290 TraceCheckUtils]: 1: Hoare triple {657#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {657#true} is VALID [2022-02-20 17:10:51,835 INFO L290 TraceCheckUtils]: 0: Hoare triple {657#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(16bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {657#true} is VALID [2022-02-20 17:10:51,835 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 17:10:51,836 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 17:10:51,836 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [898024091] [2022-02-20 17:10:51,836 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [898024091] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 17:10:51,836 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 17:10:51,836 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 8 [2022-02-20 17:10:51,836 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1713212495] [2022-02-20 17:10:51,836 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 17:10:51,837 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.625) internal successors, (37), 7 states have internal predecessors, (37), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) Word has length 48 [2022-02-20 17:10:51,838 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 17:10:51,838 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 8 states, 8 states have (on average 4.625) internal successors, (37), 7 states have internal predecessors, (37), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:51,876 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:51,876 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-02-20 17:10:51,876 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 17:10:51,877 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-02-20 17:10:51,877 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=41, Unknown=0, NotChecked=0, Total=56 [2022-02-20 17:10:51,877 INFO L87 Difference]: Start difference. First operand 79 states and 103 transitions. Second operand has 8 states, 8 states have (on average 4.625) internal successors, (37), 7 states have internal predecessors, (37), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:52,888 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:52,888 INFO L93 Difference]: Finished difference Result 140 states and 183 transitions. [2022-02-20 17:10:52,888 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 17:10:52,889 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.625) internal successors, (37), 7 states have internal predecessors, (37), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) Word has length 48 [2022-02-20 17:10:52,889 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 17:10:52,889 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.625) internal successors, (37), 7 states have internal predecessors, (37), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:52,892 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 179 transitions. [2022-02-20 17:10:52,893 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.625) internal successors, (37), 7 states have internal predecessors, (37), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:52,895 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 179 transitions. [2022-02-20 17:10:52,895 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 179 transitions. [2022-02-20 17:10:53,099 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 179 edges. 179 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:53,104 INFO L225 Difference]: With dead ends: 140 [2022-02-20 17:10:53,104 INFO L226 Difference]: Without dead ends: 81 [2022-02-20 17:10:53,106 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 97 GetRequests, 89 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=24, Invalid=66, Unknown=0, NotChecked=0, Total=90 [2022-02-20 17:10:53,108 INFO L933 BasicCegarLoop]: 93 mSDtfsCounter, 7 mSDsluCounter, 523 mSDsCounter, 0 mSdLazyCounter, 79 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 7 SdHoareTripleChecker+Valid, 616 SdHoareTripleChecker+Invalid, 82 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 79 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 17:10:53,108 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [7 Valid, 616 Invalid, 82 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 79 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 17:10:53,108 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 81 states. [2022-02-20 17:10:53,113 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 81 to 81. [2022-02-20 17:10:53,113 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 17:10:53,114 INFO L82 GeneralOperation]: Start isEquivalent. First operand 81 states. Second operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) [2022-02-20 17:10:53,114 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) [2022-02-20 17:10:53,115 INFO L87 Difference]: Start difference. First operand 81 states. Second operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) [2022-02-20 17:10:53,135 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:53,135 INFO L93 Difference]: Finished difference Result 81 states and 106 transitions. [2022-02-20 17:10:53,135 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 106 transitions. [2022-02-20 17:10:53,139 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:53,139 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:53,140 INFO L74 IsIncluded]: Start isIncluded. First operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) Second operand 81 states. [2022-02-20 17:10:53,140 INFO L87 Difference]: Start difference. First operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) Second operand 81 states. [2022-02-20 17:10:53,144 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:53,144 INFO L93 Difference]: Finished difference Result 81 states and 106 transitions. [2022-02-20 17:10:53,144 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 106 transitions. [2022-02-20 17:10:53,153 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:53,153 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:53,153 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 17:10:53,153 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 17:10:53,157 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 81 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 54 states have internal predecessors, (61), 20 states have call successors, (20), 6 states have call predecessors, (20), 8 states have return successors, (25), 20 states have call predecessors, (25), 20 states have call successors, (25) [2022-02-20 17:10:53,160 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 106 transitions. [2022-02-20 17:10:53,160 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 106 transitions. Word has length 48 [2022-02-20 17:10:53,160 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 17:10:53,161 INFO L470 AbstractCegarLoop]: Abstraction has 81 states and 106 transitions. [2022-02-20 17:10:53,161 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 8 states have (on average 4.625) internal successors, (37), 7 states have internal predecessors, (37), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 4 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:53,161 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 106 transitions. [2022-02-20 17:10:53,164 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 59 [2022-02-20 17:10:53,164 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 17:10:53,164 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 17:10:53,189 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (3)] Forceful destruction successful, exit code 0 [2022-02-20 17:10:53,390 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 17:10:53,390 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 17:10:53,391 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 17:10:53,391 INFO L85 PathProgramCache]: Analyzing trace with hash -638065853, now seen corresponding path program 1 times [2022-02-20 17:10:53,391 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 17:10:53,391 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [435634273] [2022-02-20 17:10:53,391 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:53,391 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 17:10:53,392 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 17:10:53,392 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 17:10:53,394 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (4)] Waiting until timeout for monitored process [2022-02-20 17:10:53,493 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:53,497 INFO L263 TraceCheckSpWp]: Trace formula consists of 223 conjuncts, 8 conjunts are in the unsatisfiable core [2022-02-20 17:10:53,515 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:53,517 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 17:10:53,656 INFO L290 TraceCheckUtils]: 0: Hoare triple {1417#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(16bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {1417#true} is VALID [2022-02-20 17:10:53,657 INFO L290 TraceCheckUtils]: 1: Hoare triple {1417#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {1417#true} is VALID [2022-02-20 17:10:53,657 INFO L272 TraceCheckUtils]: 2: Hoare triple {1417#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {1417#true} is VALID [2022-02-20 17:10:53,657 INFO L290 TraceCheckUtils]: 3: Hoare triple {1417#true} assume !(0bv8 != #t~nondet5);havoc #t~nondet5;call #t~malloc6.base, #t~malloc6.offset := #Ultimate.allocOnHeap(12bv32);~n~0.base, ~n~0.offset := #t~malloc6.base, #t~malloc6.offset;havoc #t~malloc6.base, #t~malloc6.offset;call write~intINTTYPE4(#t~nondet7, ~n~0.base, ~n~0.offset, 4bv32);havoc #t~nondet7; {1431#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2022-02-20 17:10:53,657 INFO L272 TraceCheckUtils]: 4: Hoare triple {1431#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret8.base, #t~ret8.offset := nondet_tree(); {1417#true} is VALID [2022-02-20 17:10:53,657 INFO L290 TraceCheckUtils]: 5: Hoare triple {1417#true} assume 0bv8 != #t~nondet5;havoc #t~nondet5;#res.base, #res.offset := 0bv32, 0bv32; {1417#true} is VALID [2022-02-20 17:10:53,658 INFO L290 TraceCheckUtils]: 6: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-02-20 17:10:53,658 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {1417#true} {1431#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #147#return; {1431#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2022-02-20 17:10:53,659 INFO L290 TraceCheckUtils]: 8: Hoare triple {1431#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret8.base, #t~ret8.offset, ~n~0.base, ~bvadd32(4bv32, ~n~0.offset), 4bv32);havoc #t~ret8.base, #t~ret8.offset; {1431#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2022-02-20 17:10:53,659 INFO L272 TraceCheckUtils]: 9: Hoare triple {1431#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret9.base, #t~ret9.offset := nondet_tree(); {1417#true} is VALID [2022-02-20 17:10:53,659 INFO L290 TraceCheckUtils]: 10: Hoare triple {1417#true} assume 0bv8 != #t~nondet5;havoc #t~nondet5;#res.base, #res.offset := 0bv32, 0bv32; {1417#true} is VALID [2022-02-20 17:10:53,659 INFO L290 TraceCheckUtils]: 11: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-02-20 17:10:53,660 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1417#true} {1431#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #149#return; {1431#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2022-02-20 17:10:53,660 INFO L290 TraceCheckUtils]: 13: Hoare triple {1431#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret9.base, #t~ret9.offset, ~n~0.base, ~bvadd32(8bv32, ~n~0.offset), 4bv32);havoc #t~ret9.base, #t~ret9.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {1462#(not (= |nondet_tree_#res.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:53,661 INFO L290 TraceCheckUtils]: 14: Hoare triple {1462#(not (= |nondet_tree_#res.base| (_ bv0 32)))} assume true; {1462#(not (= |nondet_tree_#res.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:53,661 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1462#(not (= |nondet_tree_#res.base| (_ bv0 32)))} {1417#true} #159#return; {1469#(not (= |ULTIMATE.start_main_#t~ret45#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:53,661 INFO L290 TraceCheckUtils]: 16: Hoare triple {1469#(not (= |ULTIMATE.start_main_#t~ret45#1.base| (_ bv0 32)))} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {1473#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:53,662 INFO L272 TraceCheckUtils]: 17: Hoare triple {1473#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {1417#true} is VALID [2022-02-20 17:10:53,662 INFO L290 TraceCheckUtils]: 18: Hoare triple {1417#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1480#(= |min_#in~n.base| min_~n.base)} is VALID [2022-02-20 17:10:53,662 INFO L290 TraceCheckUtils]: 19: Hoare triple {1480#(= |min_#in~n.base| min_~n.base)} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {1484#(= |min_#in~n.base| (_ bv0 32))} is VALID [2022-02-20 17:10:53,663 INFO L290 TraceCheckUtils]: 20: Hoare triple {1484#(= |min_#in~n.base| (_ bv0 32))} assume true; {1484#(= |min_#in~n.base| (_ bv0 32))} is VALID [2022-02-20 17:10:53,663 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {1484#(= |min_#in~n.base| (_ bv0 32))} {1473#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} #161#return; {1418#false} is VALID [2022-02-20 17:10:53,664 INFO L290 TraceCheckUtils]: 22: Hoare triple {1418#false} task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4bv32); {1418#false} is VALID [2022-02-20 17:10:53,664 INFO L272 TraceCheckUtils]: 23: Hoare triple {1418#false} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {1418#false} is VALID [2022-02-20 17:10:53,664 INFO L290 TraceCheckUtils]: 24: Hoare triple {1418#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1418#false} is VALID [2022-02-20 17:10:53,664 INFO L290 TraceCheckUtils]: 25: Hoare triple {1418#false} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {1418#false} is VALID [2022-02-20 17:10:53,664 INFO L272 TraceCheckUtils]: 26: Hoare triple {1418#false} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {1418#false} is VALID [2022-02-20 17:10:53,664 INFO L290 TraceCheckUtils]: 27: Hoare triple {1418#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1418#false} is VALID [2022-02-20 17:10:53,664 INFO L290 TraceCheckUtils]: 28: Hoare triple {1418#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1418#false} is VALID [2022-02-20 17:10:53,665 INFO L290 TraceCheckUtils]: 29: Hoare triple {1418#false} assume true; {1418#false} is VALID [2022-02-20 17:10:53,665 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {1418#false} {1418#false} #155#return; {1418#false} is VALID [2022-02-20 17:10:53,665 INFO L290 TraceCheckUtils]: 31: Hoare triple {1418#false} call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {1418#false} is VALID [2022-02-20 17:10:53,665 INFO L272 TraceCheckUtils]: 32: Hoare triple {1418#false} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {1418#false} is VALID [2022-02-20 17:10:53,665 INFO L290 TraceCheckUtils]: 33: Hoare triple {1418#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1418#false} is VALID [2022-02-20 17:10:53,665 INFO L290 TraceCheckUtils]: 34: Hoare triple {1418#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1418#false} is VALID [2022-02-20 17:10:53,665 INFO L290 TraceCheckUtils]: 35: Hoare triple {1418#false} assume true; {1418#false} is VALID [2022-02-20 17:10:53,666 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {1418#false} {1418#false} #157#return; {1418#false} is VALID [2022-02-20 17:10:53,666 INFO L290 TraceCheckUtils]: 37: Hoare triple {1418#false} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret29, #t~ret31));havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {1418#false} is VALID [2022-02-20 17:10:53,666 INFO L290 TraceCheckUtils]: 38: Hoare triple {1418#false} assume true; {1418#false} is VALID [2022-02-20 17:10:53,666 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {1418#false} {1418#false} #163#return; {1418#false} is VALID [2022-02-20 17:10:53,666 INFO L290 TraceCheckUtils]: 40: Hoare triple {1418#false} task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0bv32 != task_~n~1#1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {1418#false} is VALID [2022-02-20 17:10:53,666 INFO L290 TraceCheckUtils]: 41: Hoare triple {1418#false} assume !(0bv32 == assume_cycle_if_not_~cond#1); {1418#false} is VALID [2022-02-20 17:10:53,667 INFO L290 TraceCheckUtils]: 42: Hoare triple {1418#false} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1#1)); {1418#false} is VALID [2022-02-20 17:10:53,667 INFO L272 TraceCheckUtils]: 43: Hoare triple {1418#false} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4bv32, ~bvmul32(4bv32, task_~n~1#1)); {1418#false} is VALID [2022-02-20 17:10:53,667 INFO L290 TraceCheckUtils]: 44: Hoare triple {1418#false} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1418#false} is VALID [2022-02-20 17:10:53,667 INFO L290 TraceCheckUtils]: 45: Hoare triple {1418#false} assume true; {1418#false} is VALID [2022-02-20 17:10:53,667 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {1418#false} {1418#false} #165#return; {1418#false} is VALID [2022-02-20 17:10:53,667 INFO L290 TraceCheckUtils]: 47: Hoare triple {1418#false} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {1418#false} is VALID [2022-02-20 17:10:53,667 INFO L272 TraceCheckUtils]: 48: Hoare triple {1418#false} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {1418#false} is VALID [2022-02-20 17:10:53,668 INFO L290 TraceCheckUtils]: 49: Hoare triple {1418#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {1418#false} is VALID [2022-02-20 17:10:53,668 INFO L290 TraceCheckUtils]: 50: Hoare triple {1418#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {1418#false} is VALID [2022-02-20 17:10:53,668 INFO L290 TraceCheckUtils]: 51: Hoare triple {1418#false} assume true; {1418#false} is VALID [2022-02-20 17:10:53,668 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {1418#false} {1418#false} #167#return; {1418#false} is VALID [2022-02-20 17:10:53,668 INFO L290 TraceCheckUtils]: 53: Hoare triple {1418#false} havoc task_#t~ret35#1;call task_#t~mem36#1 := read~intINTTYPE4(task_~x~0#1.base, task_~x~0#1.offset, 4bv32); {1418#false} is VALID [2022-02-20 17:10:53,668 INFO L272 TraceCheckUtils]: 54: Hoare triple {1418#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1bv32 else 0bv32)); {1418#false} is VALID [2022-02-20 17:10:53,669 INFO L290 TraceCheckUtils]: 55: Hoare triple {1418#false} ~cond := #in~cond; {1418#false} is VALID [2022-02-20 17:10:53,669 INFO L290 TraceCheckUtils]: 56: Hoare triple {1418#false} assume 0bv32 == ~cond; {1418#false} is VALID [2022-02-20 17:10:53,669 INFO L290 TraceCheckUtils]: 57: Hoare triple {1418#false} assume !false; {1418#false} is VALID [2022-02-20 17:10:53,669 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-02-20 17:10:53,669 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 17:10:53,669 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 17:10:53,670 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [435634273] [2022-02-20 17:10:53,670 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [435634273] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 17:10:53,670 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 17:10:53,670 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-02-20 17:10:53,670 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [712678361] [2022-02-20 17:10:53,670 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 17:10:53,671 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 7 states have (on average 4.571428571428571) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 3 states have call predecessors, (9), 4 states have call successors, (9) Word has length 58 [2022-02-20 17:10:53,671 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 17:10:53,671 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 8 states, 7 states have (on average 4.571428571428571) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 3 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:53,710 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:53,710 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-02-20 17:10:53,710 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 17:10:53,710 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-02-20 17:10:53,710 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=43, Unknown=0, NotChecked=0, Total=56 [2022-02-20 17:10:53,711 INFO L87 Difference]: Start difference. First operand 81 states and 106 transitions. Second operand has 8 states, 7 states have (on average 4.571428571428571) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 3 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:54,617 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:54,617 INFO L93 Difference]: Finished difference Result 140 states and 183 transitions. [2022-02-20 17:10:54,617 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-02-20 17:10:54,617 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 7 states have (on average 4.571428571428571) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 3 states have call predecessors, (9), 4 states have call successors, (9) Word has length 58 [2022-02-20 17:10:54,617 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 17:10:54,617 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 7 states have (on average 4.571428571428571) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 3 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:54,620 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 175 transitions. [2022-02-20 17:10:54,620 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 7 states have (on average 4.571428571428571) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 3 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:54,622 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 175 transitions. [2022-02-20 17:10:54,622 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 175 transitions. [2022-02-20 17:10:54,797 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 175 edges. 175 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:54,799 INFO L225 Difference]: With dead ends: 140 [2022-02-20 17:10:54,799 INFO L226 Difference]: Without dead ends: 83 [2022-02-20 17:10:54,800 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 61 GetRequests, 52 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 3 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=25, Invalid=85, Unknown=0, NotChecked=0, Total=110 [2022-02-20 17:10:54,800 INFO L933 BasicCegarLoop]: 92 mSDtfsCounter, 57 mSDsluCounter, 458 mSDsCounter, 0 mSdLazyCounter, 72 mSolverCounterSat, 22 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 61 SdHoareTripleChecker+Valid, 550 SdHoareTripleChecker+Invalid, 94 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 22 IncrementalHoareTripleChecker+Valid, 72 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 17:10:54,801 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [61 Valid, 550 Invalid, 94 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [22 Valid, 72 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 17:10:54,801 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 83 states. [2022-02-20 17:10:54,806 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 83 to 83. [2022-02-20 17:10:54,806 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 17:10:54,807 INFO L82 GeneralOperation]: Start isEquivalent. First operand 83 states. Second operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) [2022-02-20 17:10:54,807 INFO L74 IsIncluded]: Start isIncluded. First operand 83 states. Second operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) [2022-02-20 17:10:54,807 INFO L87 Difference]: Start difference. First operand 83 states. Second operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) [2022-02-20 17:10:54,810 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:54,810 INFO L93 Difference]: Finished difference Result 83 states and 109 transitions. [2022-02-20 17:10:54,810 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 109 transitions. [2022-02-20 17:10:54,810 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:54,810 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:54,810 INFO L74 IsIncluded]: Start isIncluded. First operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) Second operand 83 states. [2022-02-20 17:10:54,811 INFO L87 Difference]: Start difference. First operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) Second operand 83 states. [2022-02-20 17:10:54,813 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:54,813 INFO L93 Difference]: Finished difference Result 83 states and 109 transitions. [2022-02-20 17:10:54,813 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 109 transitions. [2022-02-20 17:10:54,814 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:54,814 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:54,814 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 17:10:54,814 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 17:10:54,814 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 83 states, 53 states have (on average 1.169811320754717) internal successors, (62), 56 states have internal predecessors, (62), 20 states have call successors, (20), 6 states have call predecessors, (20), 9 states have return successors, (27), 20 states have call predecessors, (27), 20 states have call successors, (27) [2022-02-20 17:10:54,816 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 83 states to 83 states and 109 transitions. [2022-02-20 17:10:54,816 INFO L78 Accepts]: Start accepts. Automaton has 83 states and 109 transitions. Word has length 58 [2022-02-20 17:10:54,816 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 17:10:54,817 INFO L470 AbstractCegarLoop]: Abstraction has 83 states and 109 transitions. [2022-02-20 17:10:54,817 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 7 states have (on average 4.571428571428571) internal successors, (32), 7 states have internal predecessors, (32), 4 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (9), 3 states have call predecessors, (9), 4 states have call successors, (9) [2022-02-20 17:10:54,817 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 109 transitions. [2022-02-20 17:10:54,817 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 72 [2022-02-20 17:10:54,817 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 17:10:54,817 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 17:10:54,826 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (4)] Forceful destruction successful, exit code 0 [2022-02-20 17:10:55,026 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 17:10:55,027 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 17:10:55,027 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 17:10:55,027 INFO L85 PathProgramCache]: Analyzing trace with hash 51768432, now seen corresponding path program 1 times [2022-02-20 17:10:55,027 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 17:10:55,028 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [768075730] [2022-02-20 17:10:55,028 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:55,028 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 17:10:55,028 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 17:10:55,029 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 17:10:55,030 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (5)] Waiting until timeout for monitored process [2022-02-20 17:10:55,130 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:55,135 INFO L263 TraceCheckSpWp]: Trace formula consists of 253 conjuncts, 8 conjunts are in the unsatisfiable core [2022-02-20 17:10:55,153 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 17:10:55,154 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 17:10:55,318 INFO L290 TraceCheckUtils]: 0: Hoare triple {2073#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(16bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {2073#true} is VALID [2022-02-20 17:10:55,319 INFO L290 TraceCheckUtils]: 1: Hoare triple {2073#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret45#1.base, main_#t~ret45#1.offset; {2073#true} is VALID [2022-02-20 17:10:55,319 INFO L272 TraceCheckUtils]: 2: Hoare triple {2073#true} call main_#t~ret45#1.base, main_#t~ret45#1.offset := nondet_tree(); {2073#true} is VALID [2022-02-20 17:10:55,319 INFO L290 TraceCheckUtils]: 3: Hoare triple {2073#true} assume !(0bv8 != #t~nondet5);havoc #t~nondet5;call #t~malloc6.base, #t~malloc6.offset := #Ultimate.allocOnHeap(12bv32);~n~0.base, ~n~0.offset := #t~malloc6.base, #t~malloc6.offset;havoc #t~malloc6.base, #t~malloc6.offset;call write~intINTTYPE4(#t~nondet7, ~n~0.base, ~n~0.offset, 4bv32);havoc #t~nondet7; {2087#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2022-02-20 17:10:55,319 INFO L272 TraceCheckUtils]: 4: Hoare triple {2087#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret8.base, #t~ret8.offset := nondet_tree(); {2073#true} is VALID [2022-02-20 17:10:55,319 INFO L290 TraceCheckUtils]: 5: Hoare triple {2073#true} assume 0bv8 != #t~nondet5;havoc #t~nondet5;#res.base, #res.offset := 0bv32, 0bv32; {2073#true} is VALID [2022-02-20 17:10:55,319 INFO L290 TraceCheckUtils]: 6: Hoare triple {2073#true} assume true; {2073#true} is VALID [2022-02-20 17:10:55,320 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {2073#true} {2087#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #147#return; {2087#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2022-02-20 17:10:55,320 INFO L290 TraceCheckUtils]: 8: Hoare triple {2087#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret8.base, #t~ret8.offset, ~n~0.base, ~bvadd32(4bv32, ~n~0.offset), 4bv32);havoc #t~ret8.base, #t~ret8.offset; {2087#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2022-02-20 17:10:55,320 INFO L272 TraceCheckUtils]: 9: Hoare triple {2087#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret9.base, #t~ret9.offset := nondet_tree(); {2073#true} is VALID [2022-02-20 17:10:55,320 INFO L290 TraceCheckUtils]: 10: Hoare triple {2073#true} assume 0bv8 != #t~nondet5;havoc #t~nondet5;#res.base, #res.offset := 0bv32, 0bv32; {2073#true} is VALID [2022-02-20 17:10:55,320 INFO L290 TraceCheckUtils]: 11: Hoare triple {2073#true} assume true; {2073#true} is VALID [2022-02-20 17:10:55,323 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {2073#true} {2087#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #149#return; {2087#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2022-02-20 17:10:55,324 INFO L290 TraceCheckUtils]: 13: Hoare triple {2087#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret9.base, #t~ret9.offset, ~n~0.base, ~bvadd32(8bv32, ~n~0.offset), 4bv32);havoc #t~ret9.base, #t~ret9.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {2118#(not (= |nondet_tree_#res.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,324 INFO L290 TraceCheckUtils]: 14: Hoare triple {2118#(not (= |nondet_tree_#res.base| (_ bv0 32)))} assume true; {2118#(not (= |nondet_tree_#res.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,325 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2118#(not (= |nondet_tree_#res.base| (_ bv0 32)))} {2073#true} #159#return; {2125#(not (= |ULTIMATE.start_main_#t~ret45#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,325 INFO L290 TraceCheckUtils]: 16: Hoare triple {2125#(not (= |ULTIMATE.start_main_#t~ret45#1.base| (_ bv0 32)))} assume { :begin_inline_task } true;task_#in~t#1.base, task_#in~t#1.offset := main_#t~ret45#1.base, main_#t~ret45#1.offset;havoc task_#t~ret32#1, task_#t~ret33#1, task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_#t~ret35#1, task_#t~mem36#1, task_#t~ret37#1.base, task_#t~ret37#1.offset, task_#t~mem38#1, task_#t~ret39#1, task_#t~malloc40#1.base, task_#t~malloc40#1.offset, task_#t~ret41#1, task_#t~mem43#1, task_#t~mem44#1, task_#t~post42#1, task_~t#1.base, task_~t#1.offset, task_~a~1#1, task_~#b~1#1.base, task_~#b~1#1.offset, task_~n~1#1, task_~x~0#1.base, task_~x~0#1.offset, task_~r~0#1.base, task_~r~0#1.offset, task_~m~1#1, task_~y~0#1.base, task_~y~0#1.offset, task_~i~0#1;task_~t#1.base, task_~t#1.offset := task_#in~t#1.base, task_#in~t#1.offset; {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,325 INFO L272 TraceCheckUtils]: 17: Hoare triple {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} call task_#t~ret32#1 := min(task_~t#1.base, task_~t#1.offset); {2073#true} is VALID [2022-02-20 17:10:55,325 INFO L290 TraceCheckUtils]: 18: Hoare triple {2073#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2073#true} is VALID [2022-02-20 17:10:55,325 INFO L290 TraceCheckUtils]: 19: Hoare triple {2073#true} assume !(~n.base == 0bv32 && ~n.offset == 0bv32);call #t~mem10 := read~intINTTYPE4(~n.base, ~n.offset, 4bv32);~a~0 := #t~mem10;havoc #t~mem10;call #t~mem11.base, #t~mem11.offset := read~$Pointer$(~n.base, ~bvadd32(4bv32, ~n.offset), 4bv32); {2073#true} is VALID [2022-02-20 17:10:55,325 INFO L272 TraceCheckUtils]: 20: Hoare triple {2073#true} call #t~ret12 := min(#t~mem11.base, #t~mem11.offset); {2073#true} is VALID [2022-02-20 17:10:55,325 INFO L290 TraceCheckUtils]: 21: Hoare triple {2073#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2073#true} is VALID [2022-02-20 17:10:55,325 INFO L290 TraceCheckUtils]: 22: Hoare triple {2073#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {2073#true} is VALID [2022-02-20 17:10:55,325 INFO L290 TraceCheckUtils]: 23: Hoare triple {2073#true} assume true; {2073#true} is VALID [2022-02-20 17:10:55,326 INFO L284 TraceCheckUtils]: 24: Hoare quadruple {2073#true} {2073#true} #151#return; {2073#true} is VALID [2022-02-20 17:10:55,326 INFO L290 TraceCheckUtils]: 25: Hoare triple {2073#true} ~b~0 := #t~ret12;havoc #t~mem11.base, #t~mem11.offset;havoc #t~ret12;call #t~mem13.base, #t~mem13.offset := read~$Pointer$(~n.base, ~bvadd32(8bv32, ~n.offset), 4bv32); {2073#true} is VALID [2022-02-20 17:10:55,326 INFO L272 TraceCheckUtils]: 26: Hoare triple {2073#true} call #t~ret14 := min(#t~mem13.base, #t~mem13.offset); {2073#true} is VALID [2022-02-20 17:10:55,326 INFO L290 TraceCheckUtils]: 27: Hoare triple {2073#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2073#true} is VALID [2022-02-20 17:10:55,326 INFO L290 TraceCheckUtils]: 28: Hoare triple {2073#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {2073#true} is VALID [2022-02-20 17:10:55,326 INFO L290 TraceCheckUtils]: 29: Hoare triple {2073#true} assume true; {2073#true} is VALID [2022-02-20 17:10:55,326 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {2073#true} {2073#true} #153#return; {2073#true} is VALID [2022-02-20 17:10:55,326 INFO L290 TraceCheckUtils]: 31: Hoare triple {2073#true} ~c~0 := #t~ret14;havoc #t~mem13.base, #t~mem13.offset;havoc #t~ret14; {2073#true} is VALID [2022-02-20 17:10:55,326 INFO L290 TraceCheckUtils]: 32: Hoare triple {2073#true} assume ~bvsle32(~b~0, ~a~0) && ~bvsle32(~b~0, ~c~0);#res := ~b~0; {2073#true} is VALID [2022-02-20 17:10:55,326 INFO L290 TraceCheckUtils]: 33: Hoare triple {2073#true} assume true; {2073#true} is VALID [2022-02-20 17:10:55,327 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2073#true} {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} #161#return; {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,327 INFO L290 TraceCheckUtils]: 35: Hoare triple {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} task_~a~1#1 := task_#t~ret32#1;havoc task_#t~ret32#1;call task_~#b~1#1.base, task_~#b~1#1.offset := #Ultimate.allocOnStack(4bv32); {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,327 INFO L272 TraceCheckUtils]: 36: Hoare triple {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} call task_#t~ret33#1 := size(task_~t#1.base, task_~t#1.offset); {2073#true} is VALID [2022-02-20 17:10:55,327 INFO L290 TraceCheckUtils]: 37: Hoare triple {2073#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2073#true} is VALID [2022-02-20 17:10:55,327 INFO L290 TraceCheckUtils]: 38: Hoare triple {2073#true} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem28.base, #t~mem28.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {2073#true} is VALID [2022-02-20 17:10:55,327 INFO L272 TraceCheckUtils]: 39: Hoare triple {2073#true} call #t~ret29 := size(#t~mem28.base, #t~mem28.offset); {2073#true} is VALID [2022-02-20 17:10:55,327 INFO L290 TraceCheckUtils]: 40: Hoare triple {2073#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2073#true} is VALID [2022-02-20 17:10:55,327 INFO L290 TraceCheckUtils]: 41: Hoare triple {2073#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {2073#true} is VALID [2022-02-20 17:10:55,327 INFO L290 TraceCheckUtils]: 42: Hoare triple {2073#true} assume true; {2073#true} is VALID [2022-02-20 17:10:55,328 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {2073#true} {2073#true} #155#return; {2073#true} is VALID [2022-02-20 17:10:55,328 INFO L290 TraceCheckUtils]: 44: Hoare triple {2073#true} call #t~mem30.base, #t~mem30.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {2073#true} is VALID [2022-02-20 17:10:55,328 INFO L272 TraceCheckUtils]: 45: Hoare triple {2073#true} call #t~ret31 := size(#t~mem30.base, #t~mem30.offset); {2073#true} is VALID [2022-02-20 17:10:55,328 INFO L290 TraceCheckUtils]: 46: Hoare triple {2073#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2073#true} is VALID [2022-02-20 17:10:55,328 INFO L290 TraceCheckUtils]: 47: Hoare triple {2073#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {2073#true} is VALID [2022-02-20 17:10:55,328 INFO L290 TraceCheckUtils]: 48: Hoare triple {2073#true} assume true; {2073#true} is VALID [2022-02-20 17:10:55,328 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {2073#true} {2073#true} #157#return; {2073#true} is VALID [2022-02-20 17:10:55,328 INFO L290 TraceCheckUtils]: 50: Hoare triple {2073#true} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret29, #t~ret31));havoc #t~mem28.base, #t~mem28.offset;havoc #t~ret29;havoc #t~mem30.base, #t~mem30.offset;havoc #t~ret31; {2073#true} is VALID [2022-02-20 17:10:55,328 INFO L290 TraceCheckUtils]: 51: Hoare triple {2073#true} assume true; {2073#true} is VALID [2022-02-20 17:10:55,329 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {2073#true} {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} #163#return; {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,333 INFO L290 TraceCheckUtils]: 53: Hoare triple {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} task_~n~1#1 := task_#t~ret33#1;havoc task_#t~ret33#1;assume { :begin_inline_assume_cycle_if_not } true;assume_cycle_if_not_#in~cond#1 := (if 0bv32 != task_~n~1#1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond#1;assume_cycle_if_not_~cond#1 := assume_cycle_if_not_#in~cond#1; {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,333 INFO L290 TraceCheckUtils]: 54: Hoare triple {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} assume !(0bv32 == assume_cycle_if_not_~cond#1); {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,334 INFO L290 TraceCheckUtils]: 55: Hoare triple {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} assume { :end_inline_assume_cycle_if_not } true;call task_#t~malloc34#1.base, task_#t~malloc34#1.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1#1)); {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,334 INFO L272 TraceCheckUtils]: 56: Hoare triple {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} call #Ultimate.meminit(task_#t~malloc34#1.base, task_#t~malloc34#1.offset, task_~n~1#1, 4bv32, ~bvmul32(4bv32, task_~n~1#1)); {2073#true} is VALID [2022-02-20 17:10:55,334 INFO L290 TraceCheckUtils]: 57: Hoare triple {2073#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2073#true} is VALID [2022-02-20 17:10:55,334 INFO L290 TraceCheckUtils]: 58: Hoare triple {2073#true} assume true; {2073#true} is VALID [2022-02-20 17:10:55,334 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {2073#true} {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} #165#return; {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,335 INFO L290 TraceCheckUtils]: 60: Hoare triple {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} task_~x~0#1.base, task_~x~0#1.offset := task_#t~malloc34#1.base, task_#t~malloc34#1.offset; {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} is VALID [2022-02-20 17:10:55,335 INFO L272 TraceCheckUtils]: 61: Hoare triple {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} call task_#t~ret35#1 := tree_inorder(task_~t#1.base, task_~t#1.offset, task_~x~0#1.base, task_~x~0#1.offset, task_~n~1#1); {2073#true} is VALID [2022-02-20 17:10:55,335 INFO L290 TraceCheckUtils]: 62: Hoare triple {2073#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {2268#(= tree_inorder_~t.base |tree_inorder_#in~t.base|)} is VALID [2022-02-20 17:10:55,336 INFO L290 TraceCheckUtils]: 63: Hoare triple {2268#(= tree_inorder_~t.base |tree_inorder_#in~t.base|)} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {2272#(= |tree_inorder_#in~t.base| (_ bv0 32))} is VALID [2022-02-20 17:10:55,336 INFO L290 TraceCheckUtils]: 64: Hoare triple {2272#(= |tree_inorder_#in~t.base| (_ bv0 32))} assume true; {2272#(= |tree_inorder_#in~t.base| (_ bv0 32))} is VALID [2022-02-20 17:10:55,337 INFO L284 TraceCheckUtils]: 65: Hoare quadruple {2272#(= |tree_inorder_#in~t.base| (_ bv0 32))} {2129#(not (= |ULTIMATE.start_task_~t#1.base| (_ bv0 32)))} #167#return; {2074#false} is VALID [2022-02-20 17:10:55,337 INFO L290 TraceCheckUtils]: 66: Hoare triple {2074#false} havoc task_#t~ret35#1;call task_#t~mem36#1 := read~intINTTYPE4(task_~x~0#1.base, task_~x~0#1.offset, 4bv32); {2074#false} is VALID [2022-02-20 17:10:55,337 INFO L272 TraceCheckUtils]: 67: Hoare triple {2074#false} call __VERIFIER_assert((if task_~a~1#1 == task_#t~mem36#1 then 1bv32 else 0bv32)); {2074#false} is VALID [2022-02-20 17:10:55,337 INFO L290 TraceCheckUtils]: 68: Hoare triple {2074#false} ~cond := #in~cond; {2074#false} is VALID [2022-02-20 17:10:55,337 INFO L290 TraceCheckUtils]: 69: Hoare triple {2074#false} assume 0bv32 == ~cond; {2074#false} is VALID [2022-02-20 17:10:55,337 INFO L290 TraceCheckUtils]: 70: Hoare triple {2074#false} assume !false; {2074#false} is VALID [2022-02-20 17:10:55,337 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 29 trivial. 0 not checked. [2022-02-20 17:10:55,337 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 17:10:55,337 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 17:10:55,337 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [768075730] [2022-02-20 17:10:55,337 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [768075730] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 17:10:55,338 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 17:10:55,338 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-02-20 17:10:55,338 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1830466261] [2022-02-20 17:10:55,338 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 17:10:55,338 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) Word has length 71 [2022-02-20 17:10:55,338 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 17:10:55,339 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 17:10:55,384 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:55,384 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-02-20 17:10:55,384 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 17:10:55,384 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-02-20 17:10:55,385 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=43, Unknown=0, NotChecked=0, Total=56 [2022-02-20 17:10:55,385 INFO L87 Difference]: Start difference. First operand 83 states and 109 transitions. Second operand has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 17:10:56,367 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:56,367 INFO L93 Difference]: Finished difference Result 134 states and 176 transitions. [2022-02-20 17:10:56,367 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-02-20 17:10:56,367 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) Word has length 71 [2022-02-20 17:10:56,367 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 17:10:56,368 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 17:10:56,370 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 165 transitions. [2022-02-20 17:10:56,370 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 17:10:56,372 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 165 transitions. [2022-02-20 17:10:56,372 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 165 transitions. [2022-02-20 17:10:56,527 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 165 edges. 165 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 17:10:56,528 INFO L225 Difference]: With dead ends: 134 [2022-02-20 17:10:56,528 INFO L226 Difference]: Without dead ends: 85 [2022-02-20 17:10:56,529 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 74 GetRequests, 65 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 3 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=25, Invalid=85, Unknown=0, NotChecked=0, Total=110 [2022-02-20 17:10:56,529 INFO L933 BasicCegarLoop]: 91 mSDtfsCounter, 48 mSDsluCounter, 456 mSDsCounter, 0 mSdLazyCounter, 79 mSolverCounterSat, 21 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 52 SdHoareTripleChecker+Valid, 547 SdHoareTripleChecker+Invalid, 100 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 21 IncrementalHoareTripleChecker+Valid, 79 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-02-20 17:10:56,530 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [52 Valid, 547 Invalid, 100 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [21 Valid, 79 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-02-20 17:10:56,530 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 85 states. [2022-02-20 17:10:56,535 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 85 to 85. [2022-02-20 17:10:56,535 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 17:10:56,535 INFO L82 GeneralOperation]: Start isEquivalent. First operand 85 states. Second operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) [2022-02-20 17:10:56,535 INFO L74 IsIncluded]: Start isIncluded. First operand 85 states. Second operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) [2022-02-20 17:10:56,536 INFO L87 Difference]: Start difference. First operand 85 states. Second operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) [2022-02-20 17:10:56,538 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:56,538 INFO L93 Difference]: Finished difference Result 85 states and 113 transitions. [2022-02-20 17:10:56,538 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 113 transitions. [2022-02-20 17:10:56,539 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:56,539 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:56,539 INFO L74 IsIncluded]: Start isIncluded. First operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) Second operand 85 states. [2022-02-20 17:10:56,539 INFO L87 Difference]: Start difference. First operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) Second operand 85 states. [2022-02-20 17:10:56,541 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 17:10:56,541 INFO L93 Difference]: Finished difference Result 85 states and 113 transitions. [2022-02-20 17:10:56,541 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 113 transitions. [2022-02-20 17:10:56,542 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 17:10:56,542 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 17:10:56,542 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 17:10:56,542 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 17:10:56,542 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 85 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 20 states have call successors, (20), 6 states have call predecessors, (20), 10 states have return successors, (30), 20 states have call predecessors, (30), 20 states have call successors, (30) [2022-02-20 17:10:56,544 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 85 states to 85 states and 113 transitions. [2022-02-20 17:10:56,544 INFO L78 Accepts]: Start accepts. Automaton has 85 states and 113 transitions. Word has length 71 [2022-02-20 17:10:56,545 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 17:10:56,545 INFO L470 AbstractCegarLoop]: Abstraction has 85 states and 113 transitions. [2022-02-20 17:10:56,545 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 8 states have (on average 4.5) internal successors, (36), 7 states have internal predecessors, (36), 4 states have call successors, (12), 2 states have call predecessors, (12), 3 states have return successors, (11), 5 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 17:10:56,545 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 113 transitions. [2022-02-20 17:10:56,545 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 84 [2022-02-20 17:10:56,545 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 17:10:56,546 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 3, 3, 3, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 17:10:56,569 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (5)] Ended with exit code 0 [2022-02-20 17:10:56,752 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 17:10:56,753 INFO L402 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 17:10:56,753 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 17:10:56,753 INFO L85 PathProgramCache]: Analyzing trace with hash -554559437, now seen corresponding path program 1 times [2022-02-20 17:10:56,753 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 17:10:56,753 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1767577284] [2022-02-20 17:10:56,754 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 17:10:56,754 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 17:10:56,754 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 17:10:56,755 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 17:10:56,756 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (6)] Waiting until timeout for monitored process [2022-02-20 17:10:57,092 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 17:10:57,092 INFO L352 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2022-02-20 17:10:57,324 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 17:10:57,379 INFO L138 FreeRefinementEngine]: Strategy WOLF found a feasible trace [2022-02-20 17:10:57,379 INFO L628 BasicCegarLoop]: Counterexample is feasible [2022-02-20 17:10:57,380 INFO L764 garLoopResultBuilder]: Registering result UNSAFE for location __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION (0 of 1 remaining) [2022-02-20 17:10:57,393 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (6)] Forceful destruction successful, exit code 0 [2022-02-20 17:10:57,581 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 17:10:57,584 INFO L732 BasicCegarLoop]: Path program histogram: [1, 1, 1, 1, 1] [2022-02-20 17:10:57,586 INFO L180 ceAbstractionStarter]: Computing trace abstraction results [2022-02-20 17:10:57,610 FATAL L489 DefaultTranslator]: Callstack has procedure call flag but succeeding procedure is empty at [CALL] call #t~ret45 := nondet_tree(); [2022-02-20 17:10:57,611 FATAL L? ?]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.AssertionError: callstack broken after backtranslation by InlinerBacktranslator at de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:216) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:206) at de.uni_freiburg.informatik.ultimate.core.lib.results.CounterExampleResult.getProgramExecutionAsString(CounterExampleResult.java:155) at de.uni_freiburg.informatik.ultimate.core.lib.results.CounterExampleResult.getLongDescription(CounterExampleResult.java:134) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ResultService.reportResult(ResultService.java:86) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.CegarLoopResultReporter.reportResult(CegarLoopResultReporter.java:141) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportLocationResults(TraceAbstractionStarter.java:607) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:182) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:156) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:123) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:168) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runTool(PluginConnector.java:151) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.run(PluginConnector.java:128) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.executePluginConnector(ToolchainWalker.java:232) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.processPlugin(ToolchainWalker.java:226) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walkUnprotected(ToolchainWalker.java:142) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walk(ToolchainWalker.java:104) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainManager$Toolchain.processToolchain(ToolchainManager.java:320) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) [2022-02-20 17:10:57,625 INFO L158 Benchmark]: Toolchain (without parser) took 8869.72ms. Allocated memory was 54.5MB in the beginning and 117.4MB in the end (delta: 62.9MB). Free memory was 31.0MB in the beginning and 72.8MB in the end (delta: -41.8MB). Peak memory consumption was 21.7MB. Max. memory is 16.1GB. [2022-02-20 17:10:57,626 INFO L158 Benchmark]: CDTParser took 0.13ms. Allocated memory is still 54.5MB. Free memory was 35.2MB in the beginning and 35.2MB in the end (delta: 37.6kB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 17:10:57,626 INFO L158 Benchmark]: CACSL2BoogieTranslator took 327.24ms. Allocated memory was 54.5MB in the beginning and 75.5MB in the end (delta: 21.0MB). Free memory was 30.7MB in the beginning and 51.9MB in the end (delta: -21.1MB). Peak memory consumption was 7.7MB. Max. memory is 16.1GB. [2022-02-20 17:10:57,626 INFO L158 Benchmark]: Boogie Procedure Inliner took 50.99ms. Allocated memory is still 75.5MB. Free memory was 51.7MB in the beginning and 49.6MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 17:10:57,626 INFO L158 Benchmark]: Boogie Preprocessor took 50.74ms. Allocated memory is still 75.5MB. Free memory was 49.6MB in the beginning and 46.7MB in the end (delta: 2.9MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 17:10:57,627 INFO L158 Benchmark]: RCFGBuilder took 491.21ms. Allocated memory is still 75.5MB. Free memory was 46.7MB in the beginning and 37.8MB in the end (delta: 8.9MB). Peak memory consumption was 10.7MB. Max. memory is 16.1GB. [2022-02-20 17:10:57,627 INFO L158 Benchmark]: TraceAbstraction took 7936.96ms. Allocated memory was 75.5MB in the beginning and 117.4MB in the end (delta: 41.9MB). Free memory was 37.4MB in the beginning and 72.8MB in the end (delta: -35.4MB). Peak memory consumption was 7.3MB. Max. memory is 16.1GB. [2022-02-20 17:10:57,628 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.13ms. Allocated memory is still 54.5MB. Free memory was 35.2MB in the beginning and 35.2MB in the end (delta: 37.6kB). There was no memory consumed. Max. memory is 16.1GB. * CACSL2BoogieTranslator took 327.24ms. Allocated memory was 54.5MB in the beginning and 75.5MB in the end (delta: 21.0MB). Free memory was 30.7MB in the beginning and 51.9MB in the end (delta: -21.1MB). Peak memory consumption was 7.7MB. Max. memory is 16.1GB. * Boogie Procedure Inliner took 50.99ms. Allocated memory is still 75.5MB. Free memory was 51.7MB in the beginning and 49.6MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * Boogie Preprocessor took 50.74ms. Allocated memory is still 75.5MB. Free memory was 49.6MB in the beginning and 46.7MB in the end (delta: 2.9MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * RCFGBuilder took 491.21ms. Allocated memory is still 75.5MB. Free memory was 46.7MB in the beginning and 37.8MB in the end (delta: 8.9MB). Peak memory consumption was 10.7MB. Max. memory is 16.1GB. * TraceAbstraction took 7936.96ms. Allocated memory was 75.5MB in the beginning and 117.4MB in the end (delta: 41.9MB). Free memory was 37.4MB in the beginning and 72.8MB in the end (delta: -35.4MB). Peak memory consumption was 7.3MB. Max. memory is 16.1GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - StatisticsResult: ErrorAutomatonStatistics NumberErrorTraces: 0, NumberStatementsAllTraces: 0, NumberRelevantStatements: 0, 0.0s ErrorAutomatonConstructionTimeTotal, 0.0s FaulLocalizationTime, NumberStatementsFirstTrace: -1, TraceLengthAvg: 0, 0.0s ErrorAutomatonConstructionTimeAvg, 0.0s ErrorAutomatonDifferenceTimeAvg, 0.0s ErrorAutomatonDifferenceTimeTotal, NumberOfNoEnhancement: 0, NumberOfFiniteEnhancement: 0, NumberOfInfiniteEnhancement: 0 - ExceptionOrErrorResult: AssertionError: callstack broken after backtranslation by InlinerBacktranslator de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: AssertionError: callstack broken after backtranslation by InlinerBacktranslator: de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) RESULT: Ultimate could not prove your program: Toolchain returned no result. [2022-02-20 17:10:57,672 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 0 Received shutdown request... --- End real Ultimate output --- Execution finished normally Writing output log to file Ultimate.log Result: ERROR: ExceptionOrErrorResult: AssertionError: callstack broken after backtranslation by InlinerBacktranslator