./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/verifythis/tree_del_iter_incorrect.c --full-output -ea --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version 8bd4bc60 Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx12G -Xms1G -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/verifythis/tree_del_iter_incorrect.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(__VERIFIER_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 36cb0ef5259a00c1b842f51350f649f0b8559710 .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... Execution finished normally Using bit-precise analysis Retrying with bit-precise analysis Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx12G -Xms1G -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/verifythis/tree_del_iter_incorrect.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(__VERIFIER_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 36cb0ef5259a00c1b842f51350f649f0b8559710 ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... Execution finished normally Writing output log to file Ultimate.log Result: ERROR: ExceptionOrErrorResult: AssertionError: callstack broken after backtranslation by InlinerBacktranslator --- Real Ultimate output --- This is Ultimate 0.1.25-8bd4bc6 [2020-07-28 18:25:47,972 INFO L177 SettingsManager]: Resetting all preferences to default values... [2020-07-28 18:25:47,974 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2020-07-28 18:25:47,993 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2020-07-28 18:25:47,994 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2020-07-28 18:25:47,995 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2020-07-28 18:25:47,997 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2020-07-28 18:25:48,008 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2020-07-28 18:25:48,013 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2020-07-28 18:25:48,017 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2020-07-28 18:25:48,020 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2020-07-28 18:25:48,022 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2020-07-28 18:25:48,023 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2020-07-28 18:25:48,026 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2020-07-28 18:25:48,027 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2020-07-28 18:25:48,029 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2020-07-28 18:25:48,030 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2020-07-28 18:25:48,031 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2020-07-28 18:25:48,035 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2020-07-28 18:25:48,038 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2020-07-28 18:25:48,042 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2020-07-28 18:25:48,046 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2020-07-28 18:25:48,048 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2020-07-28 18:25:48,050 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2020-07-28 18:25:48,053 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2020-07-28 18:25:48,054 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2020-07-28 18:25:48,054 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2020-07-28 18:25:48,056 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2020-07-28 18:25:48,056 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2020-07-28 18:25:48,057 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2020-07-28 18:25:48,058 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2020-07-28 18:25:48,059 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2020-07-28 18:25:48,060 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2020-07-28 18:25:48,061 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2020-07-28 18:25:48,063 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2020-07-28 18:25:48,063 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2020-07-28 18:25:48,064 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2020-07-28 18:25:48,064 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2020-07-28 18:25:48,065 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2020-07-28 18:25:48,066 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2020-07-28 18:25:48,067 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2020-07-28 18:25:48,068 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf [2020-07-28 18:25:48,098 INFO L113 SettingsManager]: Loading preferences was successful [2020-07-28 18:25:48,098 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2020-07-28 18:25:48,099 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2020-07-28 18:25:48,100 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2020-07-28 18:25:48,100 INFO L138 SettingsManager]: * Use SBE=true [2020-07-28 18:25:48,100 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2020-07-28 18:25:48,101 INFO L138 SettingsManager]: * sizeof long=4 [2020-07-28 18:25:48,101 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2020-07-28 18:25:48,101 INFO L138 SettingsManager]: * sizeof POINTER=4 [2020-07-28 18:25:48,101 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2020-07-28 18:25:48,102 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2020-07-28 18:25:48,102 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2020-07-28 18:25:48,102 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2020-07-28 18:25:48,102 INFO L138 SettingsManager]: * sizeof long double=12 [2020-07-28 18:25:48,103 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2020-07-28 18:25:48,103 INFO L138 SettingsManager]: * Use constant arrays=true [2020-07-28 18:25:48,103 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2020-07-28 18:25:48,104 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2020-07-28 18:25:48,104 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2020-07-28 18:25:48,104 INFO L138 SettingsManager]: * To the following directory=./dump/ [2020-07-28 18:25:48,104 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2020-07-28 18:25:48,105 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-28 18:25:48,105 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2020-07-28 18:25:48,105 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2020-07-28 18:25:48,106 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2020-07-28 18:25:48,106 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2020-07-28 18:25:48,106 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2020-07-28 18:25:48,106 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2020-07-28 18:25:48,107 INFO L138 SettingsManager]: * Trace refinement exception blacklist=NONE [2020-07-28 18:25:48,107 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode 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(__VERIFIER_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> 36cb0ef5259a00c1b842f51350f649f0b8559710 [2020-07-28 18:25:48,425 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2020-07-28 18:25:48,438 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2020-07-28 18:25:48,441 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2020-07-28 18:25:48,443 INFO L271 PluginConnector]: Initializing CDTParser... [2020-07-28 18:25:48,444 INFO L275 PluginConnector]: CDTParser initialized [2020-07-28 18:25:48,444 INFO L429 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/verifythis/tree_del_iter_incorrect.c [2020-07-28 18:25:48,511 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/74c50e59a/d31aa54ac68e425cb01a7ea03adccef5/FLAG547083bf8 [2020-07-28 18:25:48,948 INFO L306 CDTParser]: Found 1 translation units. [2020-07-28 18:25:48,949 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/tree_del_iter_incorrect.c [2020-07-28 18:25:48,957 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/74c50e59a/d31aa54ac68e425cb01a7ea03adccef5/FLAG547083bf8 [2020-07-28 18:25:49,355 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/74c50e59a/d31aa54ac68e425cb01a7ea03adccef5 [2020-07-28 18:25:49,358 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2020-07-28 18:25:49,361 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2020-07-28 18:25:49,362 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2020-07-28 18:25:49,362 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2020-07-28 18:25:49,366 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2020-07-28 18:25:49,368 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.07 06:25:49" (1/1) ... [2020-07-28 18:25:49,370 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@8e9afd5 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49, skipping insertion in model container [2020-07-28 18:25:49,371 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.07 06:25:49" (1/1) ... [2020-07-28 18:25:49,379 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2020-07-28 18:25:49,407 INFO L178 MainTranslator]: Built tables and reachable declarations [2020-07-28 18:25:49,633 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 18:25:49,650 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-28 18:25:49,667 INFO L203 MainTranslator]: Completed pre-run [2020-07-28 18:25:49,692 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 18:25:49,704 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-28 18:25:49,832 INFO L208 MainTranslator]: Completed translation [2020-07-28 18:25:49,833 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49 WrapperNode [2020-07-28 18:25:49,833 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2020-07-28 18:25:49,834 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2020-07-28 18:25:49,835 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2020-07-28 18:25:49,835 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2020-07-28 18:25:49,843 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49" (1/1) ... [2020-07-28 18:25:49,854 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49" (1/1) ... [2020-07-28 18:25:49,894 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2020-07-28 18:25:49,895 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2020-07-28 18:25:49,895 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2020-07-28 18:25:49,895 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2020-07-28 18:25:49,905 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49" (1/1) ... [2020-07-28 18:25:49,906 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49" (1/1) ... [2020-07-28 18:25:49,910 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49" (1/1) ... [2020-07-28 18:25:49,911 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49" (1/1) ... [2020-07-28 18:25:49,932 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49" (1/1) ... [2020-07-28 18:25:49,940 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49" (1/1) ... [2020-07-28 18:25:49,943 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49" (1/1) ... [2020-07-28 18:25:49,948 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2020-07-28 18:25:49,949 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2020-07-28 18:25:49,949 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2020-07-28 18:25:49,949 INFO L275 PluginConnector]: RCFGBuilder initialized [2020-07-28 18:25:49,950 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-28 18:25:50,026 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2020-07-28 18:25:50,027 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2020-07-28 18:25:50,027 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2020-07-28 18:25:50,027 INFO L130 BoogieDeclarations]: Found specification of procedure min [2020-07-28 18:25:50,027 INFO L138 BoogieDeclarations]: Found implementation of procedure min [2020-07-28 18:25:50,028 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2020-07-28 18:25:50,028 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2020-07-28 18:25:50,028 INFO L130 BoogieDeclarations]: Found specification of procedure nondet_tree [2020-07-28 18:25:50,028 INFO L138 BoogieDeclarations]: Found implementation of procedure nondet_tree [2020-07-28 18:25:50,029 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2020-07-28 18:25:50,029 INFO L130 BoogieDeclarations]: Found specification of procedure size [2020-07-28 18:25:50,029 INFO L138 BoogieDeclarations]: Found implementation of procedure size [2020-07-28 18:25:50,029 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2020-07-28 18:25:50,030 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2020-07-28 18:25:50,030 INFO L130 BoogieDeclarations]: Found specification of procedure tree_inorder [2020-07-28 18:25:50,030 INFO L138 BoogieDeclarations]: Found implementation of procedure tree_inorder [2020-07-28 18:25:50,030 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2020-07-28 18:25:50,765 INFO L290 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2020-07-28 18:25:50,766 INFO L295 CfgBuilder]: Removed 24 assume(true) statements. [2020-07-28 18:25:50,771 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.07 06:25:50 BoogieIcfgContainer [2020-07-28 18:25:50,771 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2020-07-28 18:25:50,773 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2020-07-28 18:25:50,773 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2020-07-28 18:25:50,776 INFO L275 PluginConnector]: TraceAbstraction initialized [2020-07-28 18:25:50,777 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 28.07 06:25:49" (1/3) ... [2020-07-28 18:25:50,778 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@79873bc2 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.07 06:25:50, skipping insertion in model container [2020-07-28 18:25:50,778 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:25:49" (2/3) ... [2020-07-28 18:25:50,779 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@79873bc2 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.07 06:25:50, skipping insertion in model container [2020-07-28 18:25:50,779 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.07 06:25:50" (3/3) ... [2020-07-28 18:25:50,781 INFO L109 eAbstractionObserver]: Analyzing ICFG tree_del_iter_incorrect.c [2020-07-28 18:25:50,792 INFO L157 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2020-07-28 18:25:50,801 INFO L169 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2020-07-28 18:25:50,815 INFO L251 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2020-07-28 18:25:50,840 INFO L375 AbstractCegarLoop]: Interprodecural is true [2020-07-28 18:25:50,840 INFO L376 AbstractCegarLoop]: Hoare is true [2020-07-28 18:25:50,841 INFO L377 AbstractCegarLoop]: Compute interpolants for FPandBP [2020-07-28 18:25:50,841 INFO L378 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2020-07-28 18:25:50,841 INFO L379 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2020-07-28 18:25:50,842 INFO L380 AbstractCegarLoop]: Difference is false [2020-07-28 18:25:50,842 INFO L381 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2020-07-28 18:25:50,842 INFO L385 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2020-07-28 18:25:50,861 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states. [2020-07-28 18:25:50,869 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2020-07-28 18:25:50,870 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:25:50,871 INFO L422 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] [2020-07-28 18:25:50,872 INFO L427 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:25:50,878 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:25:50,878 INFO L82 PathProgramCache]: Analyzing trace with hash 1265612665, now seen corresponding path program 1 times [2020-07-28 18:25:50,890 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 18:25:50,890 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [15783663] [2020-07-28 18:25:50,891 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 18:25:51,010 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:51,115 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 18:25:51,118 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:51,133 INFO L280 TraceCheckUtils]: 0: Hoare triple {98#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {81#true} is VALID [2020-07-28 18:25:51,134 INFO L280 TraceCheckUtils]: 1: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:25:51,135 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {81#true} {81#true} #159#return; {81#true} is VALID [2020-07-28 18:25:51,137 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 7 [2020-07-28 18:25:51,139 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:51,146 INFO L280 TraceCheckUtils]: 0: Hoare triple {81#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {81#true} is VALID [2020-07-28 18:25:51,146 INFO L280 TraceCheckUtils]: 1: Hoare triple {81#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {81#true} is VALID [2020-07-28 18:25:51,147 INFO L280 TraceCheckUtils]: 2: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:25:51,147 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {81#true} {81#true} #161#return; {81#true} is VALID [2020-07-28 18:25:51,148 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 13 [2020-07-28 18:25:51,150 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:51,155 INFO L280 TraceCheckUtils]: 0: Hoare triple {81#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {81#true} is VALID [2020-07-28 18:25:51,156 INFO L280 TraceCheckUtils]: 1: Hoare triple {81#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {81#true} is VALID [2020-07-28 18:25:51,157 INFO L280 TraceCheckUtils]: 2: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:25:51,157 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {81#true} {81#true} #163#return; {81#true} is VALID [2020-07-28 18:25:51,173 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 22 [2020-07-28 18:25:51,176 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:51,183 INFO L280 TraceCheckUtils]: 0: Hoare triple {99#(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; {81#true} is VALID [2020-07-28 18:25:51,184 INFO L280 TraceCheckUtils]: 1: Hoare triple {81#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {81#true} is VALID [2020-07-28 18:25:51,184 INFO L280 TraceCheckUtils]: 2: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:25:51,185 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {81#true} {82#false} #165#return; {82#false} is VALID [2020-07-28 18:25:51,185 INFO L280 TraceCheckUtils]: 0: Hoare triple {81#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {81#true} is VALID [2020-07-28 18:25:51,185 INFO L280 TraceCheckUtils]: 1: Hoare triple {81#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {81#true} is VALID [2020-07-28 18:25:51,188 INFO L263 TraceCheckUtils]: 2: Hoare triple {81#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {98#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:51,188 INFO L280 TraceCheckUtils]: 3: Hoare triple {98#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {81#true} is VALID [2020-07-28 18:25:51,189 INFO L280 TraceCheckUtils]: 4: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:25:51,189 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {81#true} {81#true} #159#return; {81#true} is VALID [2020-07-28 18:25:51,190 INFO L280 TraceCheckUtils]: 6: Hoare triple {81#true} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {81#true} is VALID [2020-07-28 18:25:51,190 INFO L263 TraceCheckUtils]: 7: Hoare triple {81#true} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {81#true} is VALID [2020-07-28 18:25:51,190 INFO L280 TraceCheckUtils]: 8: Hoare triple {81#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {81#true} is VALID [2020-07-28 18:25:51,191 INFO L280 TraceCheckUtils]: 9: Hoare triple {81#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {81#true} is VALID [2020-07-28 18:25:51,191 INFO L280 TraceCheckUtils]: 10: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:25:51,192 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {81#true} {81#true} #161#return; {81#true} is VALID [2020-07-28 18:25:51,192 INFO L280 TraceCheckUtils]: 12: Hoare triple {81#true} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {81#true} is VALID [2020-07-28 18:25:51,193 INFO L263 TraceCheckUtils]: 13: Hoare triple {81#true} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {81#true} is VALID [2020-07-28 18:25:51,193 INFO L280 TraceCheckUtils]: 14: Hoare triple {81#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {81#true} is VALID [2020-07-28 18:25:51,194 INFO L280 TraceCheckUtils]: 15: Hoare triple {81#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {81#true} is VALID [2020-07-28 18:25:51,194 INFO L280 TraceCheckUtils]: 16: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:25:51,194 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {81#true} {81#true} #163#return; {81#true} is VALID [2020-07-28 18:25:51,195 INFO L280 TraceCheckUtils]: 18: Hoare triple {81#true} assume -2147483648 <= task_#t~ret28 && task_#t~ret28 <= 2147483647;task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {81#true} is VALID [2020-07-28 18:25:51,196 INFO L280 TraceCheckUtils]: 19: Hoare triple {81#true} assume 0 == assume_abort_if_not_~cond;assume false; {82#false} is VALID [2020-07-28 18:25:51,197 INFO L280 TraceCheckUtils]: 20: Hoare triple {82#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(4 * task_~n~1);#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {82#false} is VALID [2020-07-28 18:25:51,197 INFO L280 TraceCheckUtils]: 21: Hoare triple {82#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {82#false} is VALID [2020-07-28 18:25:51,198 INFO L263 TraceCheckUtils]: 22: Hoare triple {82#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {99#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:51,198 INFO L280 TraceCheckUtils]: 23: Hoare triple {99#(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; {81#true} is VALID [2020-07-28 18:25:51,199 INFO L280 TraceCheckUtils]: 24: Hoare triple {81#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {81#true} is VALID [2020-07-28 18:25:51,199 INFO L280 TraceCheckUtils]: 25: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:25:51,199 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {81#true} {82#false} #165#return; {82#false} is VALID [2020-07-28 18:25:51,200 INFO L280 TraceCheckUtils]: 27: Hoare triple {82#false} assume -2147483648 <= task_#t~ret30 && task_#t~ret30 <= 2147483647;havoc task_#t~ret30;call task_#t~mem31 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {82#false} is VALID [2020-07-28 18:25:51,200 INFO L280 TraceCheckUtils]: 28: Hoare triple {82#false} assume 0 == __VERIFIER_assert_~cond; {82#false} is VALID [2020-07-28 18:25:51,201 INFO L280 TraceCheckUtils]: 29: Hoare triple {82#false} assume !false; {82#false} is VALID [2020-07-28 18:25:51,205 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 18:25:51,206 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [15783663] [2020-07-28 18:25:51,207 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-28 18:25:51,208 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2020-07-28 18:25:51,209 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1383234545] [2020-07-28 18:25:51,216 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 30 [2020-07-28 18:25:51,219 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 18:25:51,223 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2020-07-28 18:25:51,298 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:25:51,299 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2020-07-28 18:25:51,299 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 18:25:51,307 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2020-07-28 18:25:51,308 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2020-07-28 18:25:51,310 INFO L87 Difference]: Start difference. First operand 78 states. Second operand 4 states. [2020-07-28 18:25:52,052 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:25:52,052 INFO L93 Difference]: Finished difference Result 136 states and 180 transitions. [2020-07-28 18:25:52,052 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2020-07-28 18:25:52,053 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 30 [2020-07-28 18:25:52,053 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 18:25:52,055 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2020-07-28 18:25:52,083 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 180 transitions. [2020-07-28 18:25:52,084 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2020-07-28 18:25:52,116 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 180 transitions. [2020-07-28 18:25:52,117 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 180 transitions. [2020-07-28 18:25:52,476 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 180 edges. 180 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:25:52,505 INFO L225 Difference]: With dead ends: 136 [2020-07-28 18:25:52,505 INFO L226 Difference]: Without dead ends: 78 [2020-07-28 18:25:52,512 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 8 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2020-07-28 18:25:52,532 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 78 states. [2020-07-28 18:25:52,595 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 78 to 73. [2020-07-28 18:25:52,596 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 18:25:52,596 INFO L82 GeneralOperation]: Start isEquivalent. First operand 78 states. Second operand 73 states. [2020-07-28 18:25:52,597 INFO L74 IsIncluded]: Start isIncluded. First operand 78 states. Second operand 73 states. [2020-07-28 18:25:52,598 INFO L87 Difference]: Start difference. First operand 78 states. Second operand 73 states. [2020-07-28 18:25:52,617 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:25:52,619 INFO L93 Difference]: Finished difference Result 78 states and 100 transitions. [2020-07-28 18:25:52,619 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 100 transitions. [2020-07-28 18:25:52,625 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:25:52,626 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:25:52,627 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand 78 states. [2020-07-28 18:25:52,627 INFO L87 Difference]: Start difference. First operand 73 states. Second operand 78 states. [2020-07-28 18:25:52,649 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:25:52,649 INFO L93 Difference]: Finished difference Result 78 states and 100 transitions. [2020-07-28 18:25:52,649 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 100 transitions. [2020-07-28 18:25:52,654 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:25:52,655 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:25:52,655 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 18:25:52,656 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 18:25:52,656 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 73 states. [2020-07-28 18:25:52,662 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 90 transitions. [2020-07-28 18:25:52,664 INFO L78 Accepts]: Start accepts. Automaton has 73 states and 90 transitions. Word has length 30 [2020-07-28 18:25:52,664 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 18:25:52,665 INFO L479 AbstractCegarLoop]: Abstraction has 73 states and 90 transitions. [2020-07-28 18:25:52,665 INFO L480 AbstractCegarLoop]: Interpolant automaton has 4 states. [2020-07-28 18:25:52,665 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 90 transitions. [2020-07-28 18:25:52,667 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2020-07-28 18:25:52,668 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:25:52,668 INFO L422 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] [2020-07-28 18:25:52,668 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2020-07-28 18:25:52,669 INFO L427 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:25:52,669 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:25:52,670 INFO L82 PathProgramCache]: Analyzing trace with hash 1966677243, now seen corresponding path program 1 times [2020-07-28 18:25:52,670 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 18:25:52,670 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1711537273] [2020-07-28 18:25:52,671 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 18:25:52,711 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:52,789 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 18:25:52,792 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:52,798 INFO L280 TraceCheckUtils]: 0: Hoare triple {540#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {521#true} is VALID [2020-07-28 18:25:52,798 INFO L280 TraceCheckUtils]: 1: Hoare triple {521#true} assume true; {521#true} is VALID [2020-07-28 18:25:52,799 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {521#true} {521#true} #159#return; {521#true} is VALID [2020-07-28 18:25:52,799 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 7 [2020-07-28 18:25:52,801 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:52,805 INFO L280 TraceCheckUtils]: 0: Hoare triple {521#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {521#true} is VALID [2020-07-28 18:25:52,806 INFO L280 TraceCheckUtils]: 1: Hoare triple {521#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {521#true} is VALID [2020-07-28 18:25:52,806 INFO L280 TraceCheckUtils]: 2: Hoare triple {521#true} assume true; {521#true} is VALID [2020-07-28 18:25:52,806 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {521#true} {521#true} #161#return; {521#true} is VALID [2020-07-28 18:25:52,806 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 13 [2020-07-28 18:25:52,810 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:52,837 INFO L280 TraceCheckUtils]: 0: Hoare triple {521#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {521#true} is VALID [2020-07-28 18:25:52,838 INFO L280 TraceCheckUtils]: 1: Hoare triple {521#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {541#(and (<= 0 |size_#res|) (<= |size_#res| 0))} is VALID [2020-07-28 18:25:52,839 INFO L280 TraceCheckUtils]: 2: Hoare triple {541#(and (<= 0 |size_#res|) (<= |size_#res| 0))} assume true; {541#(and (<= 0 |size_#res|) (<= |size_#res| 0))} is VALID [2020-07-28 18:25:52,841 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {541#(and (<= 0 |size_#res|) (<= |size_#res| 0))} {521#true} #163#return; {534#(= 0 |ULTIMATE.start_task_#t~ret28|)} is VALID [2020-07-28 18:25:52,856 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 22 [2020-07-28 18:25:52,859 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:52,865 INFO L280 TraceCheckUtils]: 0: Hoare triple {542#(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; {521#true} is VALID [2020-07-28 18:25:52,865 INFO L280 TraceCheckUtils]: 1: Hoare triple {521#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {521#true} is VALID [2020-07-28 18:25:52,866 INFO L280 TraceCheckUtils]: 2: Hoare triple {521#true} assume true; {521#true} is VALID [2020-07-28 18:25:52,866 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {521#true} {522#false} #165#return; {522#false} is VALID [2020-07-28 18:25:52,866 INFO L280 TraceCheckUtils]: 0: Hoare triple {521#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {521#true} is VALID [2020-07-28 18:25:52,867 INFO L280 TraceCheckUtils]: 1: Hoare triple {521#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {521#true} is VALID [2020-07-28 18:25:52,868 INFO L263 TraceCheckUtils]: 2: Hoare triple {521#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {540#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:52,869 INFO L280 TraceCheckUtils]: 3: Hoare triple {540#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {521#true} is VALID [2020-07-28 18:25:52,869 INFO L280 TraceCheckUtils]: 4: Hoare triple {521#true} assume true; {521#true} is VALID [2020-07-28 18:25:52,870 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {521#true} {521#true} #159#return; {521#true} is VALID [2020-07-28 18:25:52,870 INFO L280 TraceCheckUtils]: 6: Hoare triple {521#true} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {521#true} is VALID [2020-07-28 18:25:52,870 INFO L263 TraceCheckUtils]: 7: Hoare triple {521#true} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {521#true} is VALID [2020-07-28 18:25:52,870 INFO L280 TraceCheckUtils]: 8: Hoare triple {521#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {521#true} is VALID [2020-07-28 18:25:52,871 INFO L280 TraceCheckUtils]: 9: Hoare triple {521#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {521#true} is VALID [2020-07-28 18:25:52,871 INFO L280 TraceCheckUtils]: 10: Hoare triple {521#true} assume true; {521#true} is VALID [2020-07-28 18:25:52,871 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {521#true} {521#true} #161#return; {521#true} is VALID [2020-07-28 18:25:52,872 INFO L280 TraceCheckUtils]: 12: Hoare triple {521#true} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {521#true} is VALID [2020-07-28 18:25:52,872 INFO L263 TraceCheckUtils]: 13: Hoare triple {521#true} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {521#true} is VALID [2020-07-28 18:25:52,873 INFO L280 TraceCheckUtils]: 14: Hoare triple {521#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {521#true} is VALID [2020-07-28 18:25:52,874 INFO L280 TraceCheckUtils]: 15: Hoare triple {521#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {541#(and (<= 0 |size_#res|) (<= |size_#res| 0))} is VALID [2020-07-28 18:25:52,875 INFO L280 TraceCheckUtils]: 16: Hoare triple {541#(and (<= 0 |size_#res|) (<= |size_#res| 0))} assume true; {541#(and (<= 0 |size_#res|) (<= |size_#res| 0))} is VALID [2020-07-28 18:25:52,876 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {541#(and (<= 0 |size_#res|) (<= |size_#res| 0))} {521#true} #163#return; {534#(= 0 |ULTIMATE.start_task_#t~ret28|)} is VALID [2020-07-28 18:25:52,878 INFO L280 TraceCheckUtils]: 18: Hoare triple {534#(= 0 |ULTIMATE.start_task_#t~ret28|)} assume -2147483648 <= task_#t~ret28 && task_#t~ret28 <= 2147483647;task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {535#(= 0 ULTIMATE.start_assume_abort_if_not_~cond)} is VALID [2020-07-28 18:25:52,879 INFO L280 TraceCheckUtils]: 19: Hoare triple {535#(= 0 ULTIMATE.start_assume_abort_if_not_~cond)} assume !(0 == assume_abort_if_not_~cond); {522#false} is VALID [2020-07-28 18:25:52,879 INFO L280 TraceCheckUtils]: 20: Hoare triple {522#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(4 * task_~n~1);#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {522#false} is VALID [2020-07-28 18:25:52,879 INFO L280 TraceCheckUtils]: 21: Hoare triple {522#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {522#false} is VALID [2020-07-28 18:25:52,880 INFO L263 TraceCheckUtils]: 22: Hoare triple {522#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {542#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:52,880 INFO L280 TraceCheckUtils]: 23: Hoare triple {542#(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; {521#true} is VALID [2020-07-28 18:25:52,880 INFO L280 TraceCheckUtils]: 24: Hoare triple {521#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {521#true} is VALID [2020-07-28 18:25:52,880 INFO L280 TraceCheckUtils]: 25: Hoare triple {521#true} assume true; {521#true} is VALID [2020-07-28 18:25:52,881 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {521#true} {522#false} #165#return; {522#false} is VALID [2020-07-28 18:25:52,881 INFO L280 TraceCheckUtils]: 27: Hoare triple {522#false} assume -2147483648 <= task_#t~ret30 && task_#t~ret30 <= 2147483647;havoc task_#t~ret30;call task_#t~mem31 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {522#false} is VALID [2020-07-28 18:25:52,882 INFO L280 TraceCheckUtils]: 28: Hoare triple {522#false} assume 0 == __VERIFIER_assert_~cond; {522#false} is VALID [2020-07-28 18:25:52,882 INFO L280 TraceCheckUtils]: 29: Hoare triple {522#false} assume !false; {522#false} is VALID [2020-07-28 18:25:52,884 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 18:25:52,885 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1711537273] [2020-07-28 18:25:52,885 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-28 18:25:52,885 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2020-07-28 18:25:52,886 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [202427640] [2020-07-28 18:25:52,887 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 30 [2020-07-28 18:25:52,888 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 18:25:52,888 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2020-07-28 18:25:52,926 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:25:52,926 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2020-07-28 18:25:52,926 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 18:25:52,926 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2020-07-28 18:25:52,927 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2020-07-28 18:25:52,927 INFO L87 Difference]: Start difference. First operand 73 states and 90 transitions. Second operand 7 states. [2020-07-28 18:25:54,006 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:25:54,007 INFO L93 Difference]: Finished difference Result 130 states and 164 transitions. [2020-07-28 18:25:54,007 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2020-07-28 18:25:54,007 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 30 [2020-07-28 18:25:54,008 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 18:25:54,008 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-28 18:25:54,015 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 164 transitions. [2020-07-28 18:25:54,015 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-28 18:25:54,022 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 164 transitions. [2020-07-28 18:25:54,023 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 164 transitions. [2020-07-28 18:25:54,248 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 164 edges. 164 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:25:54,255 INFO L225 Difference]: With dead ends: 130 [2020-07-28 18:25:54,256 INFO L226 Difference]: Without dead ends: 80 [2020-07-28 18:25:54,261 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 8 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2020-07-28 18:25:54,263 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2020-07-28 18:25:54,298 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 75. [2020-07-28 18:25:54,299 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 18:25:54,299 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 75 states. [2020-07-28 18:25:54,299 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 75 states. [2020-07-28 18:25:54,299 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 75 states. [2020-07-28 18:25:54,311 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:25:54,312 INFO L93 Difference]: Finished difference Result 80 states and 104 transitions. [2020-07-28 18:25:54,312 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 104 transitions. [2020-07-28 18:25:54,313 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:25:54,314 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:25:54,321 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 80 states. [2020-07-28 18:25:54,322 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 80 states. [2020-07-28 18:25:54,331 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:25:54,332 INFO L93 Difference]: Finished difference Result 80 states and 104 transitions. [2020-07-28 18:25:54,332 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 104 transitions. [2020-07-28 18:25:54,333 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:25:54,334 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:25:54,335 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 18:25:54,335 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 18:25:54,335 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 75 states. [2020-07-28 18:25:54,341 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 75 states to 75 states and 94 transitions. [2020-07-28 18:25:54,341 INFO L78 Accepts]: Start accepts. Automaton has 75 states and 94 transitions. Word has length 30 [2020-07-28 18:25:54,342 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 18:25:54,342 INFO L479 AbstractCegarLoop]: Abstraction has 75 states and 94 transitions. [2020-07-28 18:25:54,342 INFO L480 AbstractCegarLoop]: Interpolant automaton has 7 states. [2020-07-28 18:25:54,343 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 94 transitions. [2020-07-28 18:25:54,346 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2020-07-28 18:25:54,346 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:25:54,346 INFO L422 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] [2020-07-28 18:25:54,347 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1 [2020-07-28 18:25:54,347 INFO L427 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:25:54,348 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:25:54,348 INFO L82 PathProgramCache]: Analyzing trace with hash -551220880, now seen corresponding path program 1 times [2020-07-28 18:25:54,348 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 18:25:54,349 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1835471826] [2020-07-28 18:25:54,349 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 18:25:54,400 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:54,485 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 18:25:54,489 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:54,517 INFO L280 TraceCheckUtils]: 0: Hoare triple {997#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2020-07-28 18:25:54,518 INFO L280 TraceCheckUtils]: 1: Hoare triple {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} assume true; {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2020-07-28 18:25:54,520 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} {966#true} #159#return; {971#(and (= |ULTIMATE.start_main_#t~ret40.base| 0) (= 0 |ULTIMATE.start_main_#t~ret40.offset|))} is VALID [2020-07-28 18:25:54,520 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 7 [2020-07-28 18:25:54,523 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:54,527 INFO L280 TraceCheckUtils]: 0: Hoare triple {966#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {966#true} is VALID [2020-07-28 18:25:54,527 INFO L280 TraceCheckUtils]: 1: Hoare triple {966#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {966#true} is VALID [2020-07-28 18:25:54,528 INFO L280 TraceCheckUtils]: 2: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:54,529 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {966#true} {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #161#return; {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:54,529 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 13 [2020-07-28 18:25:54,535 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:54,579 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 18:25:54,582 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:54,586 INFO L280 TraceCheckUtils]: 0: Hoare triple {966#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {966#true} is VALID [2020-07-28 18:25:54,586 INFO L280 TraceCheckUtils]: 1: Hoare triple {966#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {966#true} is VALID [2020-07-28 18:25:54,587 INFO L280 TraceCheckUtils]: 2: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:54,588 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {966#true} {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #151#return; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,588 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2020-07-28 18:25:54,591 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:54,595 INFO L280 TraceCheckUtils]: 0: Hoare triple {966#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {966#true} is VALID [2020-07-28 18:25:54,596 INFO L280 TraceCheckUtils]: 1: Hoare triple {966#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {966#true} is VALID [2020-07-28 18:25:54,596 INFO L280 TraceCheckUtils]: 2: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:54,598 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {966#true} {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #153#return; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,599 INFO L280 TraceCheckUtils]: 0: Hoare triple {966#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {999#(and (or (= 0 size_~t.offset) (= |size_#in~t.offset| size_~t.offset)) (= |size_#in~t.base| size_~t.base))} is VALID [2020-07-28 18:25:54,600 INFO L280 TraceCheckUtils]: 1: Hoare triple {999#(and (or (= 0 size_~t.offset) (= |size_#in~t.offset| size_~t.offset)) (= |size_#in~t.base| size_~t.base))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,600 INFO L263 TraceCheckUtils]: 2: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {966#true} is VALID [2020-07-28 18:25:54,600 INFO L280 TraceCheckUtils]: 3: Hoare triple {966#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {966#true} is VALID [2020-07-28 18:25:54,601 INFO L280 TraceCheckUtils]: 4: Hoare triple {966#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {966#true} is VALID [2020-07-28 18:25:54,601 INFO L280 TraceCheckUtils]: 5: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:54,602 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {966#true} {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #151#return; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,603 INFO L280 TraceCheckUtils]: 7: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret24 && #t~ret24 <= 2147483647;call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,604 INFO L263 TraceCheckUtils]: 8: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {966#true} is VALID [2020-07-28 18:25:54,604 INFO L280 TraceCheckUtils]: 9: Hoare triple {966#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {966#true} is VALID [2020-07-28 18:25:54,604 INFO L280 TraceCheckUtils]: 10: Hoare triple {966#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {966#true} is VALID [2020-07-28 18:25:54,605 INFO L280 TraceCheckUtils]: 11: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:54,606 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {966#true} {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #153#return; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,607 INFO L280 TraceCheckUtils]: 13: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647;#res := 1 + (#t~ret24 + #t~ret26);havoc #t~mem25.base, #t~mem25.offset;havoc #t~ret26;havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,608 INFO L280 TraceCheckUtils]: 14: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume true; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,609 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #163#return; {967#false} is VALID [2020-07-28 18:25:54,626 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 34 [2020-07-28 18:25:54,628 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:54,632 INFO L280 TraceCheckUtils]: 0: Hoare triple {1009#(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; {966#true} is VALID [2020-07-28 18:25:54,633 INFO L280 TraceCheckUtils]: 1: Hoare triple {966#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {966#true} is VALID [2020-07-28 18:25:54,633 INFO L280 TraceCheckUtils]: 2: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:54,633 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {966#true} {967#false} #165#return; {967#false} is VALID [2020-07-28 18:25:54,633 INFO L280 TraceCheckUtils]: 0: Hoare triple {966#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {966#true} is VALID [2020-07-28 18:25:54,634 INFO L280 TraceCheckUtils]: 1: Hoare triple {966#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {966#true} is VALID [2020-07-28 18:25:54,636 INFO L263 TraceCheckUtils]: 2: Hoare triple {966#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {997#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:54,637 INFO L280 TraceCheckUtils]: 3: Hoare triple {997#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2020-07-28 18:25:54,638 INFO L280 TraceCheckUtils]: 4: Hoare triple {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} assume true; {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2020-07-28 18:25:54,639 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} {966#true} #159#return; {971#(and (= |ULTIMATE.start_main_#t~ret40.base| 0) (= 0 |ULTIMATE.start_main_#t~ret40.offset|))} is VALID [2020-07-28 18:25:54,641 INFO L280 TraceCheckUtils]: 6: Hoare triple {971#(and (= |ULTIMATE.start_main_#t~ret40.base| 0) (= 0 |ULTIMATE.start_main_#t~ret40.offset|))} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:54,641 INFO L263 TraceCheckUtils]: 7: Hoare triple {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {966#true} is VALID [2020-07-28 18:25:54,641 INFO L280 TraceCheckUtils]: 8: Hoare triple {966#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {966#true} is VALID [2020-07-28 18:25:54,642 INFO L280 TraceCheckUtils]: 9: Hoare triple {966#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {966#true} is VALID [2020-07-28 18:25:54,642 INFO L280 TraceCheckUtils]: 10: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:54,643 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {966#true} {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #161#return; {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:54,644 INFO L280 TraceCheckUtils]: 12: Hoare triple {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:54,645 INFO L263 TraceCheckUtils]: 13: Hoare triple {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {966#true} is VALID [2020-07-28 18:25:54,646 INFO L280 TraceCheckUtils]: 14: Hoare triple {966#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {999#(and (or (= 0 size_~t.offset) (= |size_#in~t.offset| size_~t.offset)) (= |size_#in~t.base| size_~t.base))} is VALID [2020-07-28 18:25:54,647 INFO L280 TraceCheckUtils]: 15: Hoare triple {999#(and (or (= 0 size_~t.offset) (= |size_#in~t.offset| size_~t.offset)) (= |size_#in~t.base| size_~t.base))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,647 INFO L263 TraceCheckUtils]: 16: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {966#true} is VALID [2020-07-28 18:25:54,647 INFO L280 TraceCheckUtils]: 17: Hoare triple {966#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {966#true} is VALID [2020-07-28 18:25:54,648 INFO L280 TraceCheckUtils]: 18: Hoare triple {966#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {966#true} is VALID [2020-07-28 18:25:54,648 INFO L280 TraceCheckUtils]: 19: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:54,649 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {966#true} {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #151#return; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,650 INFO L280 TraceCheckUtils]: 21: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret24 && #t~ret24 <= 2147483647;call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,651 INFO L263 TraceCheckUtils]: 22: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {966#true} is VALID [2020-07-28 18:25:54,651 INFO L280 TraceCheckUtils]: 23: Hoare triple {966#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {966#true} is VALID [2020-07-28 18:25:54,651 INFO L280 TraceCheckUtils]: 24: Hoare triple {966#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {966#true} is VALID [2020-07-28 18:25:54,651 INFO L280 TraceCheckUtils]: 25: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:54,653 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {966#true} {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #153#return; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,654 INFO L280 TraceCheckUtils]: 27: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647;#res := 1 + (#t~ret24 + #t~ret26);havoc #t~mem25.base, #t~mem25.offset;havoc #t~ret26;havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,655 INFO L280 TraceCheckUtils]: 28: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume true; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:54,656 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #163#return; {967#false} is VALID [2020-07-28 18:25:54,656 INFO L280 TraceCheckUtils]: 30: Hoare triple {967#false} assume -2147483648 <= task_#t~ret28 && task_#t~ret28 <= 2147483647;task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {967#false} is VALID [2020-07-28 18:25:54,656 INFO L280 TraceCheckUtils]: 31: Hoare triple {967#false} assume !(0 == assume_abort_if_not_~cond); {967#false} is VALID [2020-07-28 18:25:54,657 INFO L280 TraceCheckUtils]: 32: Hoare triple {967#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(4 * task_~n~1);#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {967#false} is VALID [2020-07-28 18:25:54,657 INFO L280 TraceCheckUtils]: 33: Hoare triple {967#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {967#false} is VALID [2020-07-28 18:25:54,658 INFO L263 TraceCheckUtils]: 34: Hoare triple {967#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1009#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:54,658 INFO L280 TraceCheckUtils]: 35: Hoare triple {1009#(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; {966#true} is VALID [2020-07-28 18:25:54,658 INFO L280 TraceCheckUtils]: 36: Hoare triple {966#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {966#true} is VALID [2020-07-28 18:25:54,658 INFO L280 TraceCheckUtils]: 37: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:54,659 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {966#true} {967#false} #165#return; {967#false} is VALID [2020-07-28 18:25:54,659 INFO L280 TraceCheckUtils]: 39: Hoare triple {967#false} assume -2147483648 <= task_#t~ret30 && task_#t~ret30 <= 2147483647;havoc task_#t~ret30;call task_#t~mem31 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {967#false} is VALID [2020-07-28 18:25:54,659 INFO L280 TraceCheckUtils]: 40: Hoare triple {967#false} assume 0 == __VERIFIER_assert_~cond; {967#false} is VALID [2020-07-28 18:25:54,659 INFO L280 TraceCheckUtils]: 41: Hoare triple {967#false} assume !false; {967#false} is VALID [2020-07-28 18:25:54,664 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-28 18:25:54,664 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1835471826] [2020-07-28 18:25:54,665 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1964510073] [2020-07-28 18:25:54,665 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 18:25:54,742 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:54,745 INFO L263 TraceCheckSpWp]: Trace formula consists of 213 conjuncts, 25 conjunts are in the unsatisfiable core [2020-07-28 18:25:54,761 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:54,768 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 18:25:54,992 INFO L280 TraceCheckUtils]: 0: Hoare triple {966#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {966#true} is VALID [2020-07-28 18:25:54,992 INFO L280 TraceCheckUtils]: 1: Hoare triple {966#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {966#true} is VALID [2020-07-28 18:25:54,993 INFO L263 TraceCheckUtils]: 2: Hoare triple {966#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {966#true} is VALID [2020-07-28 18:25:54,993 INFO L280 TraceCheckUtils]: 3: Hoare triple {966#true} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2020-07-28 18:25:54,996 INFO L280 TraceCheckUtils]: 4: Hoare triple {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} assume true; {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} is VALID [2020-07-28 18:25:54,998 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {998#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} {966#true} #159#return; {971#(and (= |ULTIMATE.start_main_#t~ret40.base| 0) (= 0 |ULTIMATE.start_main_#t~ret40.offset|))} is VALID [2020-07-28 18:25:54,999 INFO L280 TraceCheckUtils]: 6: Hoare triple {971#(and (= |ULTIMATE.start_main_#t~ret40.base| 0) (= 0 |ULTIMATE.start_main_#t~ret40.offset|))} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:54,999 INFO L263 TraceCheckUtils]: 7: Hoare triple {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {966#true} is VALID [2020-07-28 18:25:54,999 INFO L280 TraceCheckUtils]: 8: Hoare triple {966#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {966#true} is VALID [2020-07-28 18:25:55,000 INFO L280 TraceCheckUtils]: 9: Hoare triple {966#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {966#true} is VALID [2020-07-28 18:25:55,000 INFO L280 TraceCheckUtils]: 10: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:55,001 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {966#true} {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #161#return; {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:55,002 INFO L280 TraceCheckUtils]: 12: Hoare triple {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:55,002 INFO L263 TraceCheckUtils]: 13: Hoare triple {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {966#true} is VALID [2020-07-28 18:25:55,002 INFO L280 TraceCheckUtils]: 14: Hoare triple {966#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1055#(and (= |size_#in~t.base| size_~t.base) (= |size_#in~t.offset| size_~t.offset))} is VALID [2020-07-28 18:25:55,005 INFO L280 TraceCheckUtils]: 15: Hoare triple {1055#(and (= |size_#in~t.base| size_~t.base) (= |size_#in~t.offset| size_~t.offset))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:55,005 INFO L263 TraceCheckUtils]: 16: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {966#true} is VALID [2020-07-28 18:25:55,005 INFO L280 TraceCheckUtils]: 17: Hoare triple {966#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {966#true} is VALID [2020-07-28 18:25:55,005 INFO L280 TraceCheckUtils]: 18: Hoare triple {966#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {966#true} is VALID [2020-07-28 18:25:55,006 INFO L280 TraceCheckUtils]: 19: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:55,007 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {966#true} {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #151#return; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:55,009 INFO L280 TraceCheckUtils]: 21: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret24 && #t~ret24 <= 2147483647;call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:55,009 INFO L263 TraceCheckUtils]: 22: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {966#true} is VALID [2020-07-28 18:25:55,009 INFO L280 TraceCheckUtils]: 23: Hoare triple {966#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {966#true} is VALID [2020-07-28 18:25:55,010 INFO L280 TraceCheckUtils]: 24: Hoare triple {966#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {966#true} is VALID [2020-07-28 18:25:55,010 INFO L280 TraceCheckUtils]: 25: Hoare triple {966#true} assume true; {966#true} is VALID [2020-07-28 18:25:55,012 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {966#true} {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #153#return; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:55,014 INFO L280 TraceCheckUtils]: 27: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647;#res := 1 + (#t~ret24 + #t~ret26);havoc #t~mem25.base, #t~mem25.offset;havoc #t~ret26;havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:55,016 INFO L280 TraceCheckUtils]: 28: Hoare triple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume true; {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:55,018 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {1000#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} {972#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #163#return; {967#false} is VALID [2020-07-28 18:25:55,018 INFO L280 TraceCheckUtils]: 30: Hoare triple {967#false} assume -2147483648 <= task_#t~ret28 && task_#t~ret28 <= 2147483647;task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {967#false} is VALID [2020-07-28 18:25:55,018 INFO L280 TraceCheckUtils]: 31: Hoare triple {967#false} assume !(0 == assume_abort_if_not_~cond); {967#false} is VALID [2020-07-28 18:25:55,018 INFO L280 TraceCheckUtils]: 32: Hoare triple {967#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(4 * task_~n~1);#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {967#false} is VALID [2020-07-28 18:25:55,019 INFO L280 TraceCheckUtils]: 33: Hoare triple {967#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {967#false} is VALID [2020-07-28 18:25:55,019 INFO L263 TraceCheckUtils]: 34: Hoare triple {967#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {967#false} is VALID [2020-07-28 18:25:55,019 INFO L280 TraceCheckUtils]: 35: Hoare triple {967#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {967#false} is VALID [2020-07-28 18:25:55,019 INFO L280 TraceCheckUtils]: 36: Hoare triple {967#false} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {967#false} is VALID [2020-07-28 18:25:55,019 INFO L280 TraceCheckUtils]: 37: Hoare triple {967#false} assume true; {967#false} is VALID [2020-07-28 18:25:55,020 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {967#false} {967#false} #165#return; {967#false} is VALID [2020-07-28 18:25:55,020 INFO L280 TraceCheckUtils]: 39: Hoare triple {967#false} assume -2147483648 <= task_#t~ret30 && task_#t~ret30 <= 2147483647;havoc task_#t~ret30;call task_#t~mem31 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {967#false} is VALID [2020-07-28 18:25:55,020 INFO L280 TraceCheckUtils]: 40: Hoare triple {967#false} assume 0 == __VERIFIER_assert_~cond; {967#false} is VALID [2020-07-28 18:25:55,020 INFO L280 TraceCheckUtils]: 41: Hoare triple {967#false} assume !false; {967#false} is VALID [2020-07-28 18:25:55,025 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-28 18:25:55,025 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 18:25:55,025 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 7] total 10 [2020-07-28 18:25:55,026 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [297106867] [2020-07-28 18:25:55,026 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 42 [2020-07-28 18:25:55,027 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 18:25:55,027 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2020-07-28 18:25:55,090 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:25:55,090 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2020-07-28 18:25:55,091 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 18:25:55,091 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2020-07-28 18:25:55,091 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=71, Unknown=0, NotChecked=0, Total=90 [2020-07-28 18:25:55,091 INFO L87 Difference]: Start difference. First operand 75 states and 94 transitions. Second operand 10 states. [2020-07-28 18:25:56,644 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:25:56,644 INFO L93 Difference]: Finished difference Result 136 states and 173 transitions. [2020-07-28 18:25:56,644 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2020-07-28 18:25:56,645 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 42 [2020-07-28 18:25:56,647 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 18:25:56,647 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 18:25:56,654 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 169 transitions. [2020-07-28 18:25:56,654 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 18:25:56,659 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 169 transitions. [2020-07-28 18:25:56,659 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 169 transitions. [2020-07-28 18:25:56,891 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 169 edges. 169 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:25:56,897 INFO L225 Difference]: With dead ends: 136 [2020-07-28 18:25:56,897 INFO L226 Difference]: Without dead ends: 80 [2020-07-28 18:25:56,898 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 63 GetRequests, 49 SyntacticMatches, 2 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 9 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=42, Invalid=140, Unknown=0, NotChecked=0, Total=182 [2020-07-28 18:25:56,899 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2020-07-28 18:25:56,935 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 77. [2020-07-28 18:25:56,935 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 18:25:56,935 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 77 states. [2020-07-28 18:25:56,936 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 77 states. [2020-07-28 18:25:56,936 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 77 states. [2020-07-28 18:25:56,944 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:25:56,944 INFO L93 Difference]: Finished difference Result 80 states and 103 transitions. [2020-07-28 18:25:56,944 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 103 transitions. [2020-07-28 18:25:56,946 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:25:56,946 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:25:56,946 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 80 states. [2020-07-28 18:25:56,946 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 80 states. [2020-07-28 18:25:56,951 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:25:56,952 INFO L93 Difference]: Finished difference Result 80 states and 103 transitions. [2020-07-28 18:25:56,952 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 103 transitions. [2020-07-28 18:25:56,954 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:25:56,954 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:25:56,954 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 18:25:56,954 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 18:25:56,955 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2020-07-28 18:25:56,958 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 97 transitions. [2020-07-28 18:25:56,959 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 97 transitions. Word has length 42 [2020-07-28 18:25:56,961 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 18:25:56,961 INFO L479 AbstractCegarLoop]: Abstraction has 77 states and 97 transitions. [2020-07-28 18:25:56,961 INFO L480 AbstractCegarLoop]: Interpolant automaton has 10 states. [2020-07-28 18:25:56,962 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 97 transitions. [2020-07-28 18:25:56,965 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2020-07-28 18:25:56,966 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:25:56,966 INFO L422 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] [2020-07-28 18:25:57,179 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable2 [2020-07-28 18:25:57,180 INFO L427 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:25:57,181 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:25:57,181 INFO L82 PathProgramCache]: Analyzing trace with hash -876273741, now seen corresponding path program 1 times [2020-07-28 18:25:57,181 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 18:25:57,182 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1570079583] [2020-07-28 18:25:57,182 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 18:25:57,212 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:57,290 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 18:25:57,298 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:57,327 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2020-07-28 18:25:57,329 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:57,336 INFO L280 TraceCheckUtils]: 0: Hoare triple {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {1574#true} is VALID [2020-07-28 18:25:57,337 INFO L280 TraceCheckUtils]: 1: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,338 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1574#true} {1617#(= nondet_tree_~n~0.offset 0)} #155#return; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,338 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2020-07-28 18:25:57,340 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:57,345 INFO L280 TraceCheckUtils]: 0: Hoare triple {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {1574#true} is VALID [2020-07-28 18:25:57,345 INFO L280 TraceCheckUtils]: 1: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,346 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1574#true} {1617#(= nondet_tree_~n~0.offset 0)} #157#return; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,347 INFO L280 TraceCheckUtils]: 0: Hoare triple {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 != #t~nondet1 % 256);havoc #t~nondet1;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.allocOnHeap(12);~n~0.base, ~n~0.offset := #t~malloc2.base, #t~malloc2.offset;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~n~0.base, ~n~0.offset, 4);havoc #t~nondet3; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,349 INFO L263 TraceCheckUtils]: 1: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:57,349 INFO L280 TraceCheckUtils]: 2: Hoare triple {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {1574#true} is VALID [2020-07-28 18:25:57,349 INFO L280 TraceCheckUtils]: 3: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,350 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {1574#true} {1617#(= nondet_tree_~n~0.offset 0)} #155#return; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,351 INFO L280 TraceCheckUtils]: 5: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret4.base, #t~ret4.offset; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,352 INFO L263 TraceCheckUtils]: 6: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:57,352 INFO L280 TraceCheckUtils]: 7: Hoare triple {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {1574#true} is VALID [2020-07-28 18:25:57,352 INFO L280 TraceCheckUtils]: 8: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,353 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {1574#true} {1617#(= nondet_tree_~n~0.offset 0)} #157#return; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,354 INFO L280 TraceCheckUtils]: 10: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret5.base, #t~ret5.offset, ~n~0.base, 8 + ~n~0.offset, 4);havoc #t~ret5.base, #t~ret5.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {1624#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:25:57,355 INFO L280 TraceCheckUtils]: 11: Hoare triple {1624#(= 0 |nondet_tree_#res.offset|)} assume true; {1624#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:25:57,356 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1624#(= 0 |nondet_tree_#res.offset|)} {1574#true} #159#return; {1589#(= 0 |ULTIMATE.start_main_#t~ret40.offset|)} is VALID [2020-07-28 18:25:57,356 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2020-07-28 18:25:57,358 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:57,392 INFO L280 TraceCheckUtils]: 0: Hoare triple {1574#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1625#(= min_~n.base |min_#in~n.base|)} is VALID [2020-07-28 18:25:57,393 INFO L280 TraceCheckUtils]: 1: Hoare triple {1625#(= min_~n.base |min_#in~n.base|)} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1626#(= 0 |min_#in~n.base|)} is VALID [2020-07-28 18:25:57,393 INFO L280 TraceCheckUtils]: 2: Hoare triple {1626#(= 0 |min_#in~n.base|)} assume true; {1626#(= 0 |min_#in~n.base|)} is VALID [2020-07-28 18:25:57,395 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1626#(= 0 |min_#in~n.base|)} {1590#(= 0 ULTIMATE.start_task_~t.offset)} #161#return; {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:57,395 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2020-07-28 18:25:57,401 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:57,475 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 18:25:57,477 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:57,481 INFO L280 TraceCheckUtils]: 0: Hoare triple {1574#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1574#true} is VALID [2020-07-28 18:25:57,481 INFO L280 TraceCheckUtils]: 1: Hoare triple {1574#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1574#true} is VALID [2020-07-28 18:25:57,481 INFO L280 TraceCheckUtils]: 2: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,483 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1574#true} {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #151#return; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,483 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2020-07-28 18:25:57,485 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:57,492 INFO L280 TraceCheckUtils]: 0: Hoare triple {1574#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1574#true} is VALID [2020-07-28 18:25:57,492 INFO L280 TraceCheckUtils]: 1: Hoare triple {1574#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1574#true} is VALID [2020-07-28 18:25:57,492 INFO L280 TraceCheckUtils]: 2: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,494 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1574#true} {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #153#return; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,495 INFO L280 TraceCheckUtils]: 0: Hoare triple {1574#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1627#(and (or (= 0 size_~t.offset) (= |size_#in~t.offset| size_~t.offset)) (= |size_#in~t.base| size_~t.base))} is VALID [2020-07-28 18:25:57,498 INFO L280 TraceCheckUtils]: 1: Hoare triple {1627#(and (or (= 0 size_~t.offset) (= |size_#in~t.offset| size_~t.offset)) (= |size_#in~t.base| size_~t.base))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,499 INFO L263 TraceCheckUtils]: 2: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {1574#true} is VALID [2020-07-28 18:25:57,499 INFO L280 TraceCheckUtils]: 3: Hoare triple {1574#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1574#true} is VALID [2020-07-28 18:25:57,499 INFO L280 TraceCheckUtils]: 4: Hoare triple {1574#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1574#true} is VALID [2020-07-28 18:25:57,499 INFO L280 TraceCheckUtils]: 5: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,501 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {1574#true} {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #151#return; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,502 INFO L280 TraceCheckUtils]: 7: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret24 && #t~ret24 <= 2147483647;call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,503 INFO L263 TraceCheckUtils]: 8: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {1574#true} is VALID [2020-07-28 18:25:57,503 INFO L280 TraceCheckUtils]: 9: Hoare triple {1574#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1574#true} is VALID [2020-07-28 18:25:57,503 INFO L280 TraceCheckUtils]: 10: Hoare triple {1574#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1574#true} is VALID [2020-07-28 18:25:57,504 INFO L280 TraceCheckUtils]: 11: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,505 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1574#true} {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #153#return; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,506 INFO L280 TraceCheckUtils]: 13: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647;#res := 1 + (#t~ret24 + #t~ret26);havoc #t~mem25.base, #t~mem25.offset;havoc #t~ret26;havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,507 INFO L280 TraceCheckUtils]: 14: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume true; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,508 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #163#return; {1575#false} is VALID [2020-07-28 18:25:57,529 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 44 [2020-07-28 18:25:57,531 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:57,535 INFO L280 TraceCheckUtils]: 0: Hoare triple {1637#(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; {1574#true} is VALID [2020-07-28 18:25:57,535 INFO L280 TraceCheckUtils]: 1: Hoare triple {1574#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {1574#true} is VALID [2020-07-28 18:25:57,535 INFO L280 TraceCheckUtils]: 2: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,535 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1574#true} {1575#false} #165#return; {1575#false} is VALID [2020-07-28 18:25:57,536 INFO L280 TraceCheckUtils]: 0: Hoare triple {1574#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {1574#true} is VALID [2020-07-28 18:25:57,536 INFO L280 TraceCheckUtils]: 1: Hoare triple {1574#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {1574#true} is VALID [2020-07-28 18:25:57,538 INFO L263 TraceCheckUtils]: 2: Hoare triple {1574#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:57,539 INFO L280 TraceCheckUtils]: 3: Hoare triple {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 != #t~nondet1 % 256);havoc #t~nondet1;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.allocOnHeap(12);~n~0.base, ~n~0.offset := #t~malloc2.base, #t~malloc2.offset;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~n~0.base, ~n~0.offset, 4);havoc #t~nondet3; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,541 INFO L263 TraceCheckUtils]: 4: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:57,541 INFO L280 TraceCheckUtils]: 5: Hoare triple {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {1574#true} is VALID [2020-07-28 18:25:57,542 INFO L280 TraceCheckUtils]: 6: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,543 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1574#true} {1617#(= nondet_tree_~n~0.offset 0)} #155#return; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,544 INFO L280 TraceCheckUtils]: 8: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret4.base, #t~ret4.offset; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,545 INFO L263 TraceCheckUtils]: 9: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:57,545 INFO L280 TraceCheckUtils]: 10: Hoare triple {1616#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {1574#true} is VALID [2020-07-28 18:25:57,546 INFO L280 TraceCheckUtils]: 11: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,547 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1574#true} {1617#(= nondet_tree_~n~0.offset 0)} #157#return; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,548 INFO L280 TraceCheckUtils]: 13: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret5.base, #t~ret5.offset, ~n~0.base, 8 + ~n~0.offset, 4);havoc #t~ret5.base, #t~ret5.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {1624#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:25:57,549 INFO L280 TraceCheckUtils]: 14: Hoare triple {1624#(= 0 |nondet_tree_#res.offset|)} assume true; {1624#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:25:57,550 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1624#(= 0 |nondet_tree_#res.offset|)} {1574#true} #159#return; {1589#(= 0 |ULTIMATE.start_main_#t~ret40.offset|)} is VALID [2020-07-28 18:25:57,551 INFO L280 TraceCheckUtils]: 16: Hoare triple {1589#(= 0 |ULTIMATE.start_main_#t~ret40.offset|)} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {1590#(= 0 ULTIMATE.start_task_~t.offset)} is VALID [2020-07-28 18:25:57,551 INFO L263 TraceCheckUtils]: 17: Hoare triple {1590#(= 0 ULTIMATE.start_task_~t.offset)} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {1574#true} is VALID [2020-07-28 18:25:57,552 INFO L280 TraceCheckUtils]: 18: Hoare triple {1574#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1625#(= min_~n.base |min_#in~n.base|)} is VALID [2020-07-28 18:25:57,552 INFO L280 TraceCheckUtils]: 19: Hoare triple {1625#(= min_~n.base |min_#in~n.base|)} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1626#(= 0 |min_#in~n.base|)} is VALID [2020-07-28 18:25:57,553 INFO L280 TraceCheckUtils]: 20: Hoare triple {1626#(= 0 |min_#in~n.base|)} assume true; {1626#(= 0 |min_#in~n.base|)} is VALID [2020-07-28 18:25:57,554 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {1626#(= 0 |min_#in~n.base|)} {1590#(= 0 ULTIMATE.start_task_~t.offset)} #161#return; {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:57,556 INFO L280 TraceCheckUtils]: 22: Hoare triple {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:57,556 INFO L263 TraceCheckUtils]: 23: Hoare triple {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {1574#true} is VALID [2020-07-28 18:25:57,557 INFO L280 TraceCheckUtils]: 24: Hoare triple {1574#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1627#(and (or (= 0 size_~t.offset) (= |size_#in~t.offset| size_~t.offset)) (= |size_#in~t.base| size_~t.base))} is VALID [2020-07-28 18:25:57,558 INFO L280 TraceCheckUtils]: 25: Hoare triple {1627#(and (or (= 0 size_~t.offset) (= |size_#in~t.offset| size_~t.offset)) (= |size_#in~t.base| size_~t.base))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,559 INFO L263 TraceCheckUtils]: 26: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {1574#true} is VALID [2020-07-28 18:25:57,559 INFO L280 TraceCheckUtils]: 27: Hoare triple {1574#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1574#true} is VALID [2020-07-28 18:25:57,559 INFO L280 TraceCheckUtils]: 28: Hoare triple {1574#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1574#true} is VALID [2020-07-28 18:25:57,559 INFO L280 TraceCheckUtils]: 29: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,561 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1574#true} {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #151#return; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,562 INFO L280 TraceCheckUtils]: 31: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret24 && #t~ret24 <= 2147483647;call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,562 INFO L263 TraceCheckUtils]: 32: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {1574#true} is VALID [2020-07-28 18:25:57,562 INFO L280 TraceCheckUtils]: 33: Hoare triple {1574#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1574#true} is VALID [2020-07-28 18:25:57,562 INFO L280 TraceCheckUtils]: 34: Hoare triple {1574#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1574#true} is VALID [2020-07-28 18:25:57,563 INFO L280 TraceCheckUtils]: 35: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,564 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {1574#true} {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #153#return; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,565 INFO L280 TraceCheckUtils]: 37: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647;#res := 1 + (#t~ret24 + #t~ret26);havoc #t~mem25.base, #t~mem25.offset;havoc #t~ret26;havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,566 INFO L280 TraceCheckUtils]: 38: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume true; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,568 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #163#return; {1575#false} is VALID [2020-07-28 18:25:57,568 INFO L280 TraceCheckUtils]: 40: Hoare triple {1575#false} assume -2147483648 <= task_#t~ret28 && task_#t~ret28 <= 2147483647;task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {1575#false} is VALID [2020-07-28 18:25:57,568 INFO L280 TraceCheckUtils]: 41: Hoare triple {1575#false} assume !(0 == assume_abort_if_not_~cond); {1575#false} is VALID [2020-07-28 18:25:57,568 INFO L280 TraceCheckUtils]: 42: Hoare triple {1575#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(4 * task_~n~1);#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {1575#false} is VALID [2020-07-28 18:25:57,569 INFO L280 TraceCheckUtils]: 43: Hoare triple {1575#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {1575#false} is VALID [2020-07-28 18:25:57,569 INFO L263 TraceCheckUtils]: 44: Hoare triple {1575#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1637#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:25:57,569 INFO L280 TraceCheckUtils]: 45: Hoare triple {1637#(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; {1574#true} is VALID [2020-07-28 18:25:57,570 INFO L280 TraceCheckUtils]: 46: Hoare triple {1574#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {1574#true} is VALID [2020-07-28 18:25:57,570 INFO L280 TraceCheckUtils]: 47: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,570 INFO L275 TraceCheckUtils]: 48: Hoare quadruple {1574#true} {1575#false} #165#return; {1575#false} is VALID [2020-07-28 18:25:57,570 INFO L280 TraceCheckUtils]: 49: Hoare triple {1575#false} assume -2147483648 <= task_#t~ret30 && task_#t~ret30 <= 2147483647;havoc task_#t~ret30;call task_#t~mem31 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {1575#false} is VALID [2020-07-28 18:25:57,571 INFO L280 TraceCheckUtils]: 50: Hoare triple {1575#false} assume 0 == __VERIFIER_assert_~cond; {1575#false} is VALID [2020-07-28 18:25:57,571 INFO L280 TraceCheckUtils]: 51: Hoare triple {1575#false} assume !false; {1575#false} is VALID [2020-07-28 18:25:57,575 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 8 proven. 2 refuted. 0 times theorem prover too weak. 11 trivial. 0 not checked. [2020-07-28 18:25:57,576 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1570079583] [2020-07-28 18:25:57,576 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1811719077] [2020-07-28 18:25:57,577 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 18:25:57,663 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:57,664 INFO L263 TraceCheckSpWp]: Trace formula consists of 279 conjuncts, 27 conjunts are in the unsatisfiable core [2020-07-28 18:25:57,681 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:25:57,684 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 18:25:57,801 INFO L280 TraceCheckUtils]: 0: Hoare triple {1574#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {1574#true} is VALID [2020-07-28 18:25:57,801 INFO L280 TraceCheckUtils]: 1: Hoare triple {1574#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {1574#true} is VALID [2020-07-28 18:25:57,802 INFO L263 TraceCheckUtils]: 2: Hoare triple {1574#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {1574#true} is VALID [2020-07-28 18:25:57,808 INFO L280 TraceCheckUtils]: 3: Hoare triple {1574#true} assume !(0 != #t~nondet1 % 256);havoc #t~nondet1;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.allocOnHeap(12);~n~0.base, ~n~0.offset := #t~malloc2.base, #t~malloc2.offset;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~n~0.base, ~n~0.offset, 4);havoc #t~nondet3; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,809 INFO L263 TraceCheckUtils]: 4: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1574#true} is VALID [2020-07-28 18:25:57,809 INFO L280 TraceCheckUtils]: 5: Hoare triple {1574#true} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {1574#true} is VALID [2020-07-28 18:25:57,809 INFO L280 TraceCheckUtils]: 6: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,812 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1574#true} {1617#(= nondet_tree_~n~0.offset 0)} #155#return; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,812 INFO L280 TraceCheckUtils]: 8: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret4.base, #t~ret4.offset; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,812 INFO L263 TraceCheckUtils]: 9: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1574#true} is VALID [2020-07-28 18:25:57,813 INFO L280 TraceCheckUtils]: 10: Hoare triple {1574#true} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {1574#true} is VALID [2020-07-28 18:25:57,813 INFO L280 TraceCheckUtils]: 11: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,813 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1574#true} {1617#(= nondet_tree_~n~0.offset 0)} #157#return; {1617#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:25:57,814 INFO L280 TraceCheckUtils]: 13: Hoare triple {1617#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret5.base, #t~ret5.offset, ~n~0.base, 8 + ~n~0.offset, 4);havoc #t~ret5.base, #t~ret5.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {1624#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:25:57,815 INFO L280 TraceCheckUtils]: 14: Hoare triple {1624#(= 0 |nondet_tree_#res.offset|)} assume true; {1624#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:25:57,816 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1624#(= 0 |nondet_tree_#res.offset|)} {1574#true} #159#return; {1589#(= 0 |ULTIMATE.start_main_#t~ret40.offset|)} is VALID [2020-07-28 18:25:57,816 INFO L280 TraceCheckUtils]: 16: Hoare triple {1589#(= 0 |ULTIMATE.start_main_#t~ret40.offset|)} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {1590#(= 0 ULTIMATE.start_task_~t.offset)} is VALID [2020-07-28 18:25:57,817 INFO L263 TraceCheckUtils]: 17: Hoare triple {1590#(= 0 ULTIMATE.start_task_~t.offset)} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {1574#true} is VALID [2020-07-28 18:25:57,817 INFO L280 TraceCheckUtils]: 18: Hoare triple {1574#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1625#(= min_~n.base |min_#in~n.base|)} is VALID [2020-07-28 18:25:57,817 INFO L280 TraceCheckUtils]: 19: Hoare triple {1625#(= min_~n.base |min_#in~n.base|)} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1626#(= 0 |min_#in~n.base|)} is VALID [2020-07-28 18:25:57,818 INFO L280 TraceCheckUtils]: 20: Hoare triple {1626#(= 0 |min_#in~n.base|)} assume true; {1626#(= 0 |min_#in~n.base|)} is VALID [2020-07-28 18:25:57,819 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {1626#(= 0 |min_#in~n.base|)} {1590#(= 0 ULTIMATE.start_task_~t.offset)} #161#return; {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:57,820 INFO L280 TraceCheckUtils]: 22: Hoare triple {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:25:57,820 INFO L263 TraceCheckUtils]: 23: Hoare triple {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {1574#true} is VALID [2020-07-28 18:25:57,821 INFO L280 TraceCheckUtils]: 24: Hoare triple {1574#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1713#(and (= |size_#in~t.base| size_~t.base) (= |size_#in~t.offset| size_~t.offset))} is VALID [2020-07-28 18:25:57,822 INFO L280 TraceCheckUtils]: 25: Hoare triple {1713#(and (= |size_#in~t.base| size_~t.base) (= |size_#in~t.offset| size_~t.offset))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,822 INFO L263 TraceCheckUtils]: 26: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {1574#true} is VALID [2020-07-28 18:25:57,823 INFO L280 TraceCheckUtils]: 27: Hoare triple {1574#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1574#true} is VALID [2020-07-28 18:25:57,823 INFO L280 TraceCheckUtils]: 28: Hoare triple {1574#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1574#true} is VALID [2020-07-28 18:25:57,823 INFO L280 TraceCheckUtils]: 29: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,824 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1574#true} {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #151#return; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,824 INFO L280 TraceCheckUtils]: 31: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret24 && #t~ret24 <= 2147483647;call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,824 INFO L263 TraceCheckUtils]: 32: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {1574#true} is VALID [2020-07-28 18:25:57,825 INFO L280 TraceCheckUtils]: 33: Hoare triple {1574#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1574#true} is VALID [2020-07-28 18:25:57,825 INFO L280 TraceCheckUtils]: 34: Hoare triple {1574#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1574#true} is VALID [2020-07-28 18:25:57,825 INFO L280 TraceCheckUtils]: 35: Hoare triple {1574#true} assume true; {1574#true} is VALID [2020-07-28 18:25:57,826 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {1574#true} {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #153#return; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,826 INFO L280 TraceCheckUtils]: 37: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647;#res := 1 + (#t~ret24 + #t~ret26);havoc #t~mem25.base, #t~mem25.offset;havoc #t~ret26;havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,827 INFO L280 TraceCheckUtils]: 38: Hoare triple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume true; {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:25:57,828 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1628#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} {1595#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #163#return; {1575#false} is VALID [2020-07-28 18:25:57,828 INFO L280 TraceCheckUtils]: 40: Hoare triple {1575#false} assume -2147483648 <= task_#t~ret28 && task_#t~ret28 <= 2147483647;task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {1575#false} is VALID [2020-07-28 18:25:57,828 INFO L280 TraceCheckUtils]: 41: Hoare triple {1575#false} assume !(0 == assume_abort_if_not_~cond); {1575#false} is VALID [2020-07-28 18:25:57,828 INFO L280 TraceCheckUtils]: 42: Hoare triple {1575#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(4 * task_~n~1);#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {1575#false} is VALID [2020-07-28 18:25:57,828 INFO L280 TraceCheckUtils]: 43: Hoare triple {1575#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {1575#false} is VALID [2020-07-28 18:25:57,829 INFO L263 TraceCheckUtils]: 44: Hoare triple {1575#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1575#false} is VALID [2020-07-28 18:25:57,829 INFO L280 TraceCheckUtils]: 45: Hoare triple {1575#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {1575#false} is VALID [2020-07-28 18:25:57,829 INFO L280 TraceCheckUtils]: 46: Hoare triple {1575#false} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {1575#false} is VALID [2020-07-28 18:25:57,829 INFO L280 TraceCheckUtils]: 47: Hoare triple {1575#false} assume true; {1575#false} is VALID [2020-07-28 18:25:57,829 INFO L275 TraceCheckUtils]: 48: Hoare quadruple {1575#false} {1575#false} #165#return; {1575#false} is VALID [2020-07-28 18:25:57,829 INFO L280 TraceCheckUtils]: 49: Hoare triple {1575#false} assume -2147483648 <= task_#t~ret30 && task_#t~ret30 <= 2147483647;havoc task_#t~ret30;call task_#t~mem31 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {1575#false} is VALID [2020-07-28 18:25:57,830 INFO L280 TraceCheckUtils]: 50: Hoare triple {1575#false} assume 0 == __VERIFIER_assert_~cond; {1575#false} is VALID [2020-07-28 18:25:57,830 INFO L280 TraceCheckUtils]: 51: Hoare triple {1575#false} assume !false; {1575#false} is VALID [2020-07-28 18:25:57,833 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 8 proven. 2 refuted. 0 times theorem prover too weak. 11 trivial. 0 not checked. [2020-07-28 18:25:57,833 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 18:25:57,833 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 11] total 14 [2020-07-28 18:25:57,833 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1715503827] [2020-07-28 18:25:57,834 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 52 [2020-07-28 18:25:57,836 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 18:25:57,836 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states. [2020-07-28 18:25:57,913 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:25:57,913 INFO L459 AbstractCegarLoop]: Interpolant automaton has 14 states [2020-07-28 18:25:57,913 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 18:25:57,914 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2020-07-28 18:25:57,914 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=154, Unknown=0, NotChecked=0, Total=182 [2020-07-28 18:25:57,914 INFO L87 Difference]: Start difference. First operand 77 states and 97 transitions. Second operand 14 states. [2020-07-28 18:26:00,335 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:00,335 INFO L93 Difference]: Finished difference Result 136 states and 173 transitions. [2020-07-28 18:26:00,335 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2020-07-28 18:26:00,336 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 52 [2020-07-28 18:26:00,336 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 18:26:00,336 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2020-07-28 18:26:00,341 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 169 transitions. [2020-07-28 18:26:00,341 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2020-07-28 18:26:00,345 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 169 transitions. [2020-07-28 18:26:00,345 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 169 transitions. [2020-07-28 18:26:00,605 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 169 edges. 169 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:00,610 INFO L225 Difference]: With dead ends: 136 [2020-07-28 18:26:00,610 INFO L226 Difference]: Without dead ends: 82 [2020-07-28 18:26:00,615 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 85 GetRequests, 65 SyntacticMatches, 0 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 47 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=73, Invalid=389, Unknown=0, NotChecked=0, Total=462 [2020-07-28 18:26:00,616 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 82 states. [2020-07-28 18:26:00,666 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 82 to 79. [2020-07-28 18:26:00,666 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 18:26:00,666 INFO L82 GeneralOperation]: Start isEquivalent. First operand 82 states. Second operand 79 states. [2020-07-28 18:26:00,666 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 79 states. [2020-07-28 18:26:00,666 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 79 states. [2020-07-28 18:26:00,678 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:00,679 INFO L93 Difference]: Finished difference Result 82 states and 106 transitions. [2020-07-28 18:26:00,679 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 106 transitions. [2020-07-28 18:26:00,680 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:00,680 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:00,680 INFO L74 IsIncluded]: Start isIncluded. First operand 79 states. Second operand 82 states. [2020-07-28 18:26:00,681 INFO L87 Difference]: Start difference. First operand 79 states. Second operand 82 states. [2020-07-28 18:26:00,686 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:00,687 INFO L93 Difference]: Finished difference Result 82 states and 106 transitions. [2020-07-28 18:26:00,687 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 106 transitions. [2020-07-28 18:26:00,687 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:00,687 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:00,688 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 18:26:00,688 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 18:26:00,688 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 79 states. [2020-07-28 18:26:00,691 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 79 states to 79 states and 100 transitions. [2020-07-28 18:26:00,692 INFO L78 Accepts]: Start accepts. Automaton has 79 states and 100 transitions. Word has length 52 [2020-07-28 18:26:00,692 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 18:26:00,692 INFO L479 AbstractCegarLoop]: Abstraction has 79 states and 100 transitions. [2020-07-28 18:26:00,692 INFO L480 AbstractCegarLoop]: Interpolant automaton has 14 states. [2020-07-28 18:26:00,692 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 100 transitions. [2020-07-28 18:26:00,693 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 66 [2020-07-28 18:26:00,693 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:26:00,693 INFO L422 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] [2020-07-28 18:26:00,908 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,3 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 18:26:00,909 INFO L427 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:26:00,910 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:26:00,910 INFO L82 PathProgramCache]: Analyzing trace with hash 940517035, now seen corresponding path program 1 times [2020-07-28 18:26:00,910 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 18:26:00,911 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1120092460] [2020-07-28 18:26:00,911 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 18:26:00,945 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,018 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 18:26:01,025 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,054 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2020-07-28 18:26:01,056 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,061 INFO L280 TraceCheckUtils]: 0: Hoare triple {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {2246#true} is VALID [2020-07-28 18:26:01,061 INFO L280 TraceCheckUtils]: 1: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,063 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {2246#true} {2302#(= nondet_tree_~n~0.offset 0)} #155#return; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,063 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2020-07-28 18:26:01,065 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,069 INFO L280 TraceCheckUtils]: 0: Hoare triple {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {2246#true} is VALID [2020-07-28 18:26:01,069 INFO L280 TraceCheckUtils]: 1: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,071 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {2246#true} {2302#(= nondet_tree_~n~0.offset 0)} #157#return; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,073 INFO L280 TraceCheckUtils]: 0: Hoare triple {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 != #t~nondet1 % 256);havoc #t~nondet1;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.allocOnHeap(12);~n~0.base, ~n~0.offset := #t~malloc2.base, #t~malloc2.offset;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~n~0.base, ~n~0.offset, 4);havoc #t~nondet3; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,074 INFO L263 TraceCheckUtils]: 1: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:26:01,074 INFO L280 TraceCheckUtils]: 2: Hoare triple {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {2246#true} is VALID [2020-07-28 18:26:01,075 INFO L280 TraceCheckUtils]: 3: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,076 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {2246#true} {2302#(= nondet_tree_~n~0.offset 0)} #155#return; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,076 INFO L280 TraceCheckUtils]: 5: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret4.base, #t~ret4.offset; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,078 INFO L263 TraceCheckUtils]: 6: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:26:01,078 INFO L280 TraceCheckUtils]: 7: Hoare triple {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {2246#true} is VALID [2020-07-28 18:26:01,078 INFO L280 TraceCheckUtils]: 8: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,080 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {2246#true} {2302#(= nondet_tree_~n~0.offset 0)} #157#return; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,086 INFO L280 TraceCheckUtils]: 10: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret5.base, #t~ret5.offset, ~n~0.base, 8 + ~n~0.offset, 4);havoc #t~ret5.base, #t~ret5.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {2309#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:26:01,087 INFO L280 TraceCheckUtils]: 11: Hoare triple {2309#(= 0 |nondet_tree_#res.offset|)} assume true; {2309#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:26:01,088 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {2309#(= 0 |nondet_tree_#res.offset|)} {2246#true} #159#return; {2261#(= 0 |ULTIMATE.start_main_#t~ret40.offset|)} is VALID [2020-07-28 18:26:01,089 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2020-07-28 18:26:01,094 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,162 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 18:26:01,164 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,167 INFO L280 TraceCheckUtils]: 0: Hoare triple {2246#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2246#true} is VALID [2020-07-28 18:26:01,168 INFO L280 TraceCheckUtils]: 1: Hoare triple {2246#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {2246#true} is VALID [2020-07-28 18:26:01,168 INFO L280 TraceCheckUtils]: 2: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,169 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2246#true} {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #147#return; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,169 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2020-07-28 18:26:01,171 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,174 INFO L280 TraceCheckUtils]: 0: Hoare triple {2246#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2246#true} is VALID [2020-07-28 18:26:01,175 INFO L280 TraceCheckUtils]: 1: Hoare triple {2246#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {2246#true} is VALID [2020-07-28 18:26:01,175 INFO L280 TraceCheckUtils]: 2: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,177 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2246#true} {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #149#return; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,177 INFO L280 TraceCheckUtils]: 0: Hoare triple {2246#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2310#(and (= min_~n.base |min_#in~n.base|) (= min_~n.offset |min_#in~n.offset|))} is VALID [2020-07-28 18:26:01,179 INFO L280 TraceCheckUtils]: 1: Hoare triple {2310#(and (= min_~n.base |min_#in~n.base|) (= min_~n.offset |min_#in~n.offset|))} assume !(~n.base == 0 && ~n.offset == 0);call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~n.base, 4 + ~n.offset, 4); {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,179 INFO L263 TraceCheckUtils]: 2: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} call #t~ret7 := min(#t~mem6.base, #t~mem6.offset); {2246#true} is VALID [2020-07-28 18:26:01,179 INFO L280 TraceCheckUtils]: 3: Hoare triple {2246#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2246#true} is VALID [2020-07-28 18:26:01,179 INFO L280 TraceCheckUtils]: 4: Hoare triple {2246#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {2246#true} is VALID [2020-07-28 18:26:01,179 INFO L280 TraceCheckUtils]: 5: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,181 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {2246#true} {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #147#return; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,182 INFO L280 TraceCheckUtils]: 7: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume -2147483648 <= #t~ret7 && #t~ret7 <= 2147483647;~a~0 := #t~ret7;havoc #t~ret7;havoc #t~mem6.base, #t~mem6.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~n.base, 8 + ~n.offset, 4); {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,182 INFO L263 TraceCheckUtils]: 8: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} call #t~ret9 := min(#t~mem8.base, #t~mem8.offset); {2246#true} is VALID [2020-07-28 18:26:01,182 INFO L280 TraceCheckUtils]: 9: Hoare triple {2246#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2246#true} is VALID [2020-07-28 18:26:01,182 INFO L280 TraceCheckUtils]: 10: Hoare triple {2246#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {2246#true} is VALID [2020-07-28 18:26:01,182 INFO L280 TraceCheckUtils]: 11: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,184 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {2246#true} {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #149#return; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,185 INFO L280 TraceCheckUtils]: 13: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~b~0 := #t~ret9;havoc #t~ret9;havoc #t~mem8.base, #t~mem8.offset; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,185 INFO L280 TraceCheckUtils]: 14: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume ~a~0 <= ~b~0;#res := ~a~0; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,186 INFO L280 TraceCheckUtils]: 15: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume true; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,187 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} {2262#(= 0 ULTIMATE.start_task_~t.offset)} #161#return; {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,188 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 36 [2020-07-28 18:26:01,192 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,197 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 18:26:01,198 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,200 INFO L280 TraceCheckUtils]: 0: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2246#true} is VALID [2020-07-28 18:26:01,201 INFO L280 TraceCheckUtils]: 1: Hoare triple {2246#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {2246#true} is VALID [2020-07-28 18:26:01,201 INFO L280 TraceCheckUtils]: 2: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,201 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2246#true} {2246#true} #151#return; {2246#true} is VALID [2020-07-28 18:26:01,201 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2020-07-28 18:26:01,202 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,205 INFO L280 TraceCheckUtils]: 0: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2246#true} is VALID [2020-07-28 18:26:01,205 INFO L280 TraceCheckUtils]: 1: Hoare triple {2246#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {2246#true} is VALID [2020-07-28 18:26:01,205 INFO L280 TraceCheckUtils]: 2: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,206 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2246#true} {2246#true} #153#return; {2246#true} is VALID [2020-07-28 18:26:01,206 INFO L280 TraceCheckUtils]: 0: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2246#true} is VALID [2020-07-28 18:26:01,206 INFO L280 TraceCheckUtils]: 1: Hoare triple {2246#true} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {2246#true} is VALID [2020-07-28 18:26:01,206 INFO L263 TraceCheckUtils]: 2: Hoare triple {2246#true} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {2246#true} is VALID [2020-07-28 18:26:01,206 INFO L280 TraceCheckUtils]: 3: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2246#true} is VALID [2020-07-28 18:26:01,207 INFO L280 TraceCheckUtils]: 4: Hoare triple {2246#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {2246#true} is VALID [2020-07-28 18:26:01,207 INFO L280 TraceCheckUtils]: 5: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,207 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {2246#true} {2246#true} #151#return; {2246#true} is VALID [2020-07-28 18:26:01,208 INFO L280 TraceCheckUtils]: 7: Hoare triple {2246#true} assume -2147483648 <= #t~ret24 && #t~ret24 <= 2147483647;call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {2246#true} is VALID [2020-07-28 18:26:01,208 INFO L263 TraceCheckUtils]: 8: Hoare triple {2246#true} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {2246#true} is VALID [2020-07-28 18:26:01,208 INFO L280 TraceCheckUtils]: 9: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2246#true} is VALID [2020-07-28 18:26:01,208 INFO L280 TraceCheckUtils]: 10: Hoare triple {2246#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {2246#true} is VALID [2020-07-28 18:26:01,209 INFO L280 TraceCheckUtils]: 11: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,209 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {2246#true} {2246#true} #153#return; {2246#true} is VALID [2020-07-28 18:26:01,209 INFO L280 TraceCheckUtils]: 13: Hoare triple {2246#true} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647;#res := 1 + (#t~ret24 + #t~ret26);havoc #t~mem25.base, #t~mem25.offset;havoc #t~ret26;havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24; {2246#true} is VALID [2020-07-28 18:26:01,209 INFO L280 TraceCheckUtils]: 14: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,211 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {2246#true} {2280#(not (= 0 ULTIMATE.start_task_~t.base))} #163#return; {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,229 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 57 [2020-07-28 18:26:01,234 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,280 INFO L280 TraceCheckUtils]: 0: Hoare triple {2328#(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; {2329#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} is VALID [2020-07-28 18:26:01,281 INFO L280 TraceCheckUtils]: 1: Hoare triple {2329#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {2330#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 18:26:01,281 INFO L280 TraceCheckUtils]: 2: Hoare triple {2330#(= 0 |tree_inorder_#in~t.base|)} assume true; {2330#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 18:26:01,284 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2330#(= 0 |tree_inorder_#in~t.base|)} {2280#(not (= 0 ULTIMATE.start_task_~t.base))} #165#return; {2247#false} is VALID [2020-07-28 18:26:01,284 INFO L280 TraceCheckUtils]: 0: Hoare triple {2246#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {2246#true} is VALID [2020-07-28 18:26:01,284 INFO L280 TraceCheckUtils]: 1: Hoare triple {2246#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {2246#true} is VALID [2020-07-28 18:26:01,286 INFO L263 TraceCheckUtils]: 2: Hoare triple {2246#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:26:01,287 INFO L280 TraceCheckUtils]: 3: Hoare triple {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !(0 != #t~nondet1 % 256);havoc #t~nondet1;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.allocOnHeap(12);~n~0.base, ~n~0.offset := #t~malloc2.base, #t~malloc2.offset;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~n~0.base, ~n~0.offset, 4);havoc #t~nondet3; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,289 INFO L263 TraceCheckUtils]: 4: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:26:01,289 INFO L280 TraceCheckUtils]: 5: Hoare triple {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {2246#true} is VALID [2020-07-28 18:26:01,289 INFO L280 TraceCheckUtils]: 6: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,290 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2246#true} {2302#(= nondet_tree_~n~0.offset 0)} #155#return; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,291 INFO L280 TraceCheckUtils]: 8: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret4.base, #t~ret4.offset; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,292 INFO L263 TraceCheckUtils]: 9: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:26:01,293 INFO L280 TraceCheckUtils]: 10: Hoare triple {2301#(and (= |#valid| |old(#valid)|) (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |old(#length)| |#length|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {2246#true} is VALID [2020-07-28 18:26:01,293 INFO L280 TraceCheckUtils]: 11: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,294 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {2246#true} {2302#(= nondet_tree_~n~0.offset 0)} #157#return; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,295 INFO L280 TraceCheckUtils]: 13: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret5.base, #t~ret5.offset, ~n~0.base, 8 + ~n~0.offset, 4);havoc #t~ret5.base, #t~ret5.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {2309#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:26:01,296 INFO L280 TraceCheckUtils]: 14: Hoare triple {2309#(= 0 |nondet_tree_#res.offset|)} assume true; {2309#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:26:01,298 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {2309#(= 0 |nondet_tree_#res.offset|)} {2246#true} #159#return; {2261#(= 0 |ULTIMATE.start_main_#t~ret40.offset|)} is VALID [2020-07-28 18:26:01,298 INFO L280 TraceCheckUtils]: 16: Hoare triple {2261#(= 0 |ULTIMATE.start_main_#t~ret40.offset|)} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {2262#(= 0 ULTIMATE.start_task_~t.offset)} is VALID [2020-07-28 18:26:01,299 INFO L263 TraceCheckUtils]: 17: Hoare triple {2262#(= 0 ULTIMATE.start_task_~t.offset)} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {2246#true} is VALID [2020-07-28 18:26:01,299 INFO L280 TraceCheckUtils]: 18: Hoare triple {2246#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2310#(and (= min_~n.base |min_#in~n.base|) (= min_~n.offset |min_#in~n.offset|))} is VALID [2020-07-28 18:26:01,300 INFO L280 TraceCheckUtils]: 19: Hoare triple {2310#(and (= min_~n.base |min_#in~n.base|) (= min_~n.offset |min_#in~n.offset|))} assume !(~n.base == 0 && ~n.offset == 0);call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~n.base, 4 + ~n.offset, 4); {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,301 INFO L263 TraceCheckUtils]: 20: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} call #t~ret7 := min(#t~mem6.base, #t~mem6.offset); {2246#true} is VALID [2020-07-28 18:26:01,301 INFO L280 TraceCheckUtils]: 21: Hoare triple {2246#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2246#true} is VALID [2020-07-28 18:26:01,301 INFO L280 TraceCheckUtils]: 22: Hoare triple {2246#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {2246#true} is VALID [2020-07-28 18:26:01,301 INFO L280 TraceCheckUtils]: 23: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,302 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {2246#true} {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #147#return; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,303 INFO L280 TraceCheckUtils]: 25: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume -2147483648 <= #t~ret7 && #t~ret7 <= 2147483647;~a~0 := #t~ret7;havoc #t~ret7;havoc #t~mem6.base, #t~mem6.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~n.base, 8 + ~n.offset, 4); {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,303 INFO L263 TraceCheckUtils]: 26: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} call #t~ret9 := min(#t~mem8.base, #t~mem8.offset); {2246#true} is VALID [2020-07-28 18:26:01,304 INFO L280 TraceCheckUtils]: 27: Hoare triple {2246#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2246#true} is VALID [2020-07-28 18:26:01,304 INFO L280 TraceCheckUtils]: 28: Hoare triple {2246#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {2246#true} is VALID [2020-07-28 18:26:01,304 INFO L280 TraceCheckUtils]: 29: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,305 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2246#true} {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #149#return; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,306 INFO L280 TraceCheckUtils]: 31: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~b~0 := #t~ret9;havoc #t~ret9;havoc #t~mem8.base, #t~mem8.offset; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,307 INFO L280 TraceCheckUtils]: 32: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume ~a~0 <= ~b~0;#res := ~a~0; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,307 INFO L280 TraceCheckUtils]: 33: Hoare triple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume true; {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 18:26:01,308 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {2311#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} {2262#(= 0 ULTIMATE.start_task_~t.offset)} #161#return; {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,309 INFO L280 TraceCheckUtils]: 35: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,309 INFO L263 TraceCheckUtils]: 36: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {2246#true} is VALID [2020-07-28 18:26:01,310 INFO L280 TraceCheckUtils]: 37: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2246#true} is VALID [2020-07-28 18:26:01,310 INFO L280 TraceCheckUtils]: 38: Hoare triple {2246#true} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {2246#true} is VALID [2020-07-28 18:26:01,310 INFO L263 TraceCheckUtils]: 39: Hoare triple {2246#true} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {2246#true} is VALID [2020-07-28 18:26:01,310 INFO L280 TraceCheckUtils]: 40: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2246#true} is VALID [2020-07-28 18:26:01,310 INFO L280 TraceCheckUtils]: 41: Hoare triple {2246#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {2246#true} is VALID [2020-07-28 18:26:01,311 INFO L280 TraceCheckUtils]: 42: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,311 INFO L275 TraceCheckUtils]: 43: Hoare quadruple {2246#true} {2246#true} #151#return; {2246#true} is VALID [2020-07-28 18:26:01,311 INFO L280 TraceCheckUtils]: 44: Hoare triple {2246#true} assume -2147483648 <= #t~ret24 && #t~ret24 <= 2147483647;call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {2246#true} is VALID [2020-07-28 18:26:01,312 INFO L263 TraceCheckUtils]: 45: Hoare triple {2246#true} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {2246#true} is VALID [2020-07-28 18:26:01,312 INFO L280 TraceCheckUtils]: 46: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2246#true} is VALID [2020-07-28 18:26:01,312 INFO L280 TraceCheckUtils]: 47: Hoare triple {2246#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {2246#true} is VALID [2020-07-28 18:26:01,312 INFO L280 TraceCheckUtils]: 48: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,312 INFO L275 TraceCheckUtils]: 49: Hoare quadruple {2246#true} {2246#true} #153#return; {2246#true} is VALID [2020-07-28 18:26:01,313 INFO L280 TraceCheckUtils]: 50: Hoare triple {2246#true} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647;#res := 1 + (#t~ret24 + #t~ret26);havoc #t~mem25.base, #t~mem25.offset;havoc #t~ret26;havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24; {2246#true} is VALID [2020-07-28 18:26:01,313 INFO L280 TraceCheckUtils]: 51: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,314 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {2246#true} {2280#(not (= 0 ULTIMATE.start_task_~t.base))} #163#return; {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,315 INFO L280 TraceCheckUtils]: 53: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} assume -2147483648 <= task_#t~ret28 && task_#t~ret28 <= 2147483647;task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,315 INFO L280 TraceCheckUtils]: 54: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} assume !(0 == assume_abort_if_not_~cond); {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,316 INFO L280 TraceCheckUtils]: 55: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(4 * task_~n~1);#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,317 INFO L280 TraceCheckUtils]: 56: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,319 INFO L263 TraceCheckUtils]: 57: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {2328#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2020-07-28 18:26:01,320 INFO L280 TraceCheckUtils]: 58: Hoare triple {2328#(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; {2329#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} is VALID [2020-07-28 18:26:01,321 INFO L280 TraceCheckUtils]: 59: Hoare triple {2329#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {2330#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 18:26:01,321 INFO L280 TraceCheckUtils]: 60: Hoare triple {2330#(= 0 |tree_inorder_#in~t.base|)} assume true; {2330#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 18:26:01,323 INFO L275 TraceCheckUtils]: 61: Hoare quadruple {2330#(= 0 |tree_inorder_#in~t.base|)} {2280#(not (= 0 ULTIMATE.start_task_~t.base))} #165#return; {2247#false} is VALID [2020-07-28 18:26:01,323 INFO L280 TraceCheckUtils]: 62: Hoare triple {2247#false} assume -2147483648 <= task_#t~ret30 && task_#t~ret30 <= 2147483647;havoc task_#t~ret30;call task_#t~mem31 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {2247#false} is VALID [2020-07-28 18:26:01,324 INFO L280 TraceCheckUtils]: 63: Hoare triple {2247#false} assume 0 == __VERIFIER_assert_~cond; {2247#false} is VALID [2020-07-28 18:26:01,324 INFO L280 TraceCheckUtils]: 64: Hoare triple {2247#false} assume !false; {2247#false} is VALID [2020-07-28 18:26:01,329 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 8 proven. 2 refuted. 0 times theorem prover too weak. 23 trivial. 0 not checked. [2020-07-28 18:26:01,329 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1120092460] [2020-07-28 18:26:01,330 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [891671069] [2020-07-28 18:26:01,330 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 18:26:01,404 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,406 INFO L263 TraceCheckSpWp]: Trace formula consists of 331 conjuncts, 27 conjunts are in the unsatisfiable core [2020-07-28 18:26:01,427 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:01,431 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 18:26:01,593 INFO L280 TraceCheckUtils]: 0: Hoare triple {2246#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {2246#true} is VALID [2020-07-28 18:26:01,593 INFO L280 TraceCheckUtils]: 1: Hoare triple {2246#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {2246#true} is VALID [2020-07-28 18:26:01,593 INFO L263 TraceCheckUtils]: 2: Hoare triple {2246#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {2246#true} is VALID [2020-07-28 18:26:01,601 INFO L280 TraceCheckUtils]: 3: Hoare triple {2246#true} assume !(0 != #t~nondet1 % 256);havoc #t~nondet1;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.allocOnHeap(12);~n~0.base, ~n~0.offset := #t~malloc2.base, #t~malloc2.offset;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~n~0.base, ~n~0.offset, 4);havoc #t~nondet3; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,602 INFO L263 TraceCheckUtils]: 4: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {2246#true} is VALID [2020-07-28 18:26:01,602 INFO L280 TraceCheckUtils]: 5: Hoare triple {2246#true} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {2246#true} is VALID [2020-07-28 18:26:01,602 INFO L280 TraceCheckUtils]: 6: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,603 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2246#true} {2302#(= nondet_tree_~n~0.offset 0)} #155#return; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,604 INFO L280 TraceCheckUtils]: 8: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret4.base, #t~ret4.offset; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,604 INFO L263 TraceCheckUtils]: 9: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {2246#true} is VALID [2020-07-28 18:26:01,604 INFO L280 TraceCheckUtils]: 10: Hoare triple {2246#true} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {2246#true} is VALID [2020-07-28 18:26:01,604 INFO L280 TraceCheckUtils]: 11: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,611 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {2246#true} {2302#(= nondet_tree_~n~0.offset 0)} #157#return; {2302#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 18:26:01,612 INFO L280 TraceCheckUtils]: 13: Hoare triple {2302#(= nondet_tree_~n~0.offset 0)} call write~$Pointer$(#t~ret5.base, #t~ret5.offset, ~n~0.base, 8 + ~n~0.offset, 4);havoc #t~ret5.base, #t~ret5.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {2309#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:26:01,613 INFO L280 TraceCheckUtils]: 14: Hoare triple {2309#(= 0 |nondet_tree_#res.offset|)} assume true; {2309#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 18:26:01,614 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {2309#(= 0 |nondet_tree_#res.offset|)} {2246#true} #159#return; {2261#(= 0 |ULTIMATE.start_main_#t~ret40.offset|)} is VALID [2020-07-28 18:26:01,615 INFO L280 TraceCheckUtils]: 16: Hoare triple {2261#(= 0 |ULTIMATE.start_main_#t~ret40.offset|)} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {2262#(= 0 ULTIMATE.start_task_~t.offset)} is VALID [2020-07-28 18:26:01,615 INFO L263 TraceCheckUtils]: 17: Hoare triple {2262#(= 0 ULTIMATE.start_task_~t.offset)} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {2246#true} is VALID [2020-07-28 18:26:01,615 INFO L280 TraceCheckUtils]: 18: Hoare triple {2246#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2246#true} is VALID [2020-07-28 18:26:01,615 INFO L280 TraceCheckUtils]: 19: Hoare triple {2246#true} assume !(~n.base == 0 && ~n.offset == 0);call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~n.base, 4 + ~n.offset, 4); {2246#true} is VALID [2020-07-28 18:26:01,616 INFO L263 TraceCheckUtils]: 20: Hoare triple {2246#true} call #t~ret7 := min(#t~mem6.base, #t~mem6.offset); {2246#true} is VALID [2020-07-28 18:26:01,616 INFO L280 TraceCheckUtils]: 21: Hoare triple {2246#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2246#true} is VALID [2020-07-28 18:26:01,616 INFO L280 TraceCheckUtils]: 22: Hoare triple {2246#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {2246#true} is VALID [2020-07-28 18:26:01,616 INFO L280 TraceCheckUtils]: 23: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,616 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {2246#true} {2246#true} #147#return; {2246#true} is VALID [2020-07-28 18:26:01,616 INFO L280 TraceCheckUtils]: 25: Hoare triple {2246#true} assume -2147483648 <= #t~ret7 && #t~ret7 <= 2147483647;~a~0 := #t~ret7;havoc #t~ret7;havoc #t~mem6.base, #t~mem6.offset;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~n.base, 8 + ~n.offset, 4); {2246#true} is VALID [2020-07-28 18:26:01,617 INFO L263 TraceCheckUtils]: 26: Hoare triple {2246#true} call #t~ret9 := min(#t~mem8.base, #t~mem8.offset); {2246#true} is VALID [2020-07-28 18:26:01,617 INFO L280 TraceCheckUtils]: 27: Hoare triple {2246#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2246#true} is VALID [2020-07-28 18:26:01,617 INFO L280 TraceCheckUtils]: 28: Hoare triple {2246#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {2246#true} is VALID [2020-07-28 18:26:01,618 INFO L280 TraceCheckUtils]: 29: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,618 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2246#true} {2246#true} #149#return; {2246#true} is VALID [2020-07-28 18:26:01,618 INFO L280 TraceCheckUtils]: 31: Hoare triple {2246#true} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~b~0 := #t~ret9;havoc #t~ret9;havoc #t~mem8.base, #t~mem8.offset; {2246#true} is VALID [2020-07-28 18:26:01,618 INFO L280 TraceCheckUtils]: 32: Hoare triple {2246#true} assume ~a~0 <= ~b~0;#res := ~a~0; {2246#true} is VALID [2020-07-28 18:26:01,619 INFO L280 TraceCheckUtils]: 33: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,620 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {2246#true} {2262#(= 0 ULTIMATE.start_task_~t.offset)} #161#return; {2262#(= 0 ULTIMATE.start_task_~t.offset)} is VALID [2020-07-28 18:26:01,620 INFO L280 TraceCheckUtils]: 35: Hoare triple {2262#(= 0 ULTIMATE.start_task_~t.offset)} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {2262#(= 0 ULTIMATE.start_task_~t.offset)} is VALID [2020-07-28 18:26:01,620 INFO L263 TraceCheckUtils]: 36: Hoare triple {2262#(= 0 ULTIMATE.start_task_~t.offset)} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {2246#true} is VALID [2020-07-28 18:26:01,621 INFO L280 TraceCheckUtils]: 37: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2445#(and (= |size_#in~t.base| size_~t.base) (= |size_#in~t.offset| size_~t.offset))} is VALID [2020-07-28 18:26:01,622 INFO L280 TraceCheckUtils]: 38: Hoare triple {2445#(and (= |size_#in~t.base| size_~t.base) (= |size_#in~t.offset| size_~t.offset))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:26:01,622 INFO L263 TraceCheckUtils]: 39: Hoare triple {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {2246#true} is VALID [2020-07-28 18:26:01,622 INFO L280 TraceCheckUtils]: 40: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2246#true} is VALID [2020-07-28 18:26:01,622 INFO L280 TraceCheckUtils]: 41: Hoare triple {2246#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {2246#true} is VALID [2020-07-28 18:26:01,622 INFO L280 TraceCheckUtils]: 42: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,623 INFO L275 TraceCheckUtils]: 43: Hoare quadruple {2246#true} {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #151#return; {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:26:01,623 INFO L280 TraceCheckUtils]: 44: Hoare triple {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret24 && #t~ret24 <= 2147483647;call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:26:01,623 INFO L263 TraceCheckUtils]: 45: Hoare triple {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {2246#true} is VALID [2020-07-28 18:26:01,624 INFO L280 TraceCheckUtils]: 46: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2246#true} is VALID [2020-07-28 18:26:01,624 INFO L280 TraceCheckUtils]: 47: Hoare triple {2246#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {2246#true} is VALID [2020-07-28 18:26:01,624 INFO L280 TraceCheckUtils]: 48: Hoare triple {2246#true} assume true; {2246#true} is VALID [2020-07-28 18:26:01,625 INFO L275 TraceCheckUtils]: 49: Hoare quadruple {2246#true} {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #153#return; {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:26:01,625 INFO L280 TraceCheckUtils]: 50: Hoare triple {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret26 && #t~ret26 <= 2147483647;#res := 1 + (#t~ret24 + #t~ret26);havoc #t~mem25.base, #t~mem25.offset;havoc #t~ret26;havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24; {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:26:01,625 INFO L280 TraceCheckUtils]: 51: Hoare triple {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume true; {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 18:26:01,626 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {2449#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} {2262#(= 0 ULTIMATE.start_task_~t.offset)} #163#return; {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,627 INFO L280 TraceCheckUtils]: 53: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} assume -2147483648 <= task_#t~ret28 && task_#t~ret28 <= 2147483647;task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,627 INFO L280 TraceCheckUtils]: 54: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} assume !(0 == assume_abort_if_not_~cond); {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,627 INFO L280 TraceCheckUtils]: 55: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(4 * task_~n~1);#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,628 INFO L280 TraceCheckUtils]: 56: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {2280#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:01,628 INFO L263 TraceCheckUtils]: 57: Hoare triple {2280#(not (= 0 ULTIMATE.start_task_~t.base))} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {2246#true} is VALID [2020-07-28 18:26:01,629 INFO L280 TraceCheckUtils]: 58: Hoare triple {2246#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {2329#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} is VALID [2020-07-28 18:26:01,629 INFO L280 TraceCheckUtils]: 59: Hoare triple {2329#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {2330#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 18:26:01,629 INFO L280 TraceCheckUtils]: 60: Hoare triple {2330#(= 0 |tree_inorder_#in~t.base|)} assume true; {2330#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 18:26:01,631 INFO L275 TraceCheckUtils]: 61: Hoare quadruple {2330#(= 0 |tree_inorder_#in~t.base|)} {2280#(not (= 0 ULTIMATE.start_task_~t.base))} #165#return; {2247#false} is VALID [2020-07-28 18:26:01,631 INFO L280 TraceCheckUtils]: 62: Hoare triple {2247#false} assume -2147483648 <= task_#t~ret30 && task_#t~ret30 <= 2147483647;havoc task_#t~ret30;call task_#t~mem31 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {2247#false} is VALID [2020-07-28 18:26:01,631 INFO L280 TraceCheckUtils]: 63: Hoare triple {2247#false} assume 0 == __VERIFIER_assert_~cond; {2247#false} is VALID [2020-07-28 18:26:01,631 INFO L280 TraceCheckUtils]: 64: Hoare triple {2247#false} assume !false; {2247#false} is VALID [2020-07-28 18:26:01,634 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 8 proven. 2 refuted. 0 times theorem prover too weak. 23 trivial. 0 not checked. [2020-07-28 18:26:01,634 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 18:26:01,634 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 11] total 15 [2020-07-28 18:26:01,635 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [486570913] [2020-07-28 18:26:01,635 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 65 [2020-07-28 18:26:01,638 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 18:26:01,638 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states. [2020-07-28 18:26:01,760 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 83 edges. 83 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:01,760 INFO L459 AbstractCegarLoop]: Interpolant automaton has 15 states [2020-07-28 18:26:01,761 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 18:26:01,761 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2020-07-28 18:26:01,762 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=182, Unknown=0, NotChecked=0, Total=210 [2020-07-28 18:26:01,762 INFO L87 Difference]: Start difference. First operand 79 states and 100 transitions. Second operand 15 states. [2020-07-28 18:26:04,831 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:04,831 INFO L93 Difference]: Finished difference Result 131 states and 166 transitions. [2020-07-28 18:26:04,831 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2020-07-28 18:26:04,831 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 65 [2020-07-28 18:26:04,832 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 18:26:04,832 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-28 18:26:04,836 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 162 transitions. [2020-07-28 18:26:04,837 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-28 18:26:04,841 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 162 transitions. [2020-07-28 18:26:04,841 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 17 states and 162 transitions. [2020-07-28 18:26:05,135 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 162 edges. 162 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:05,139 INFO L225 Difference]: With dead ends: 131 [2020-07-28 18:26:05,139 INFO L226 Difference]: Without dead ends: 84 [2020-07-28 18:26:05,140 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 106 GetRequests, 82 SyntacticMatches, 0 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 55 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=89, Invalid=561, Unknown=0, NotChecked=0, Total=650 [2020-07-28 18:26:05,141 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 84 states. [2020-07-28 18:26:05,213 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 84 to 83. [2020-07-28 18:26:05,214 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 18:26:05,214 INFO L82 GeneralOperation]: Start isEquivalent. First operand 84 states. Second operand 83 states. [2020-07-28 18:26:05,214 INFO L74 IsIncluded]: Start isIncluded. First operand 84 states. Second operand 83 states. [2020-07-28 18:26:05,214 INFO L87 Difference]: Start difference. First operand 84 states. Second operand 83 states. [2020-07-28 18:26:05,219 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:05,220 INFO L93 Difference]: Finished difference Result 84 states and 106 transitions. [2020-07-28 18:26:05,220 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 106 transitions. [2020-07-28 18:26:05,220 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:05,221 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:05,221 INFO L74 IsIncluded]: Start isIncluded. First operand 83 states. Second operand 84 states. [2020-07-28 18:26:05,221 INFO L87 Difference]: Start difference. First operand 83 states. Second operand 84 states. [2020-07-28 18:26:05,225 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:05,226 INFO L93 Difference]: Finished difference Result 84 states and 106 transitions. [2020-07-28 18:26:05,226 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 106 transitions. [2020-07-28 18:26:05,226 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:05,227 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:05,227 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 18:26:05,227 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 18:26:05,227 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 83 states. [2020-07-28 18:26:05,231 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 83 states to 83 states and 105 transitions. [2020-07-28 18:26:05,231 INFO L78 Accepts]: Start accepts. Automaton has 83 states and 105 transitions. Word has length 65 [2020-07-28 18:26:05,231 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 18:26:05,232 INFO L479 AbstractCegarLoop]: Abstraction has 83 states and 105 transitions. [2020-07-28 18:26:05,232 INFO L480 AbstractCegarLoop]: Interpolant automaton has 15 states. [2020-07-28 18:26:05,232 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 105 transitions. [2020-07-28 18:26:05,233 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 78 [2020-07-28 18:26:05,233 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:26:05,233 INFO L422 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] [2020-07-28 18:26:05,447 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,4 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 18:26:05,448 INFO L427 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:26:05,449 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:26:05,449 INFO L82 PathProgramCache]: Analyzing trace with hash -1231850882, now seen corresponding path program 1 times [2020-07-28 18:26:05,450 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 18:26:05,450 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [702521705] [2020-07-28 18:26:05,451 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 18:26:05,499 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-28 18:26:05,500 INFO L221 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2020-07-28 18:26:05,555 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-28 18:26:05,555 INFO L221 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2020-07-28 18:26:05,603 INFO L174 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2020-07-28 18:26:05,603 INFO L520 BasicCegarLoop]: Counterexample might be feasible [2020-07-28 18:26:05,603 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5 [2020-07-28 18:26:05,659 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,661 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,662 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,663 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,668 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,669 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,669 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,669 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,672 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,672 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,673 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,673 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:05,707 FATAL L488 DefaultTranslator]: Callstack has procedure call flag but succeeding procedure is empty at [CALL] call #t~ret40 := nondet_tree(); [2020-07-28 18:26:05,708 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:216) 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:85) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportResult(TraceAbstractionStarter.java:693) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportCounterexampleResult(TraceAbstractionStarter.java:626) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportResults(TraceAbstractionStarter.java:525) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.iterateNew(TraceAbstractionStarter.java:383) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:175) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:127) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:120) 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:317) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) [2020-07-28 18:26:05,724 INFO L168 Benchmark]: Toolchain (without parser) took 16357.03 ms. Allocated memory was 1.0 GB in the beginning and 1.4 GB in the end (delta: 394.3 MB). Free memory was 960.2 MB in the beginning and 1.3 GB in the end (delta: -388.2 MB). Peak memory consumption was 6.1 MB. Max. memory is 11.5 GB. [2020-07-28 18:26:05,725 INFO L168 Benchmark]: CDTParser took 0.35 ms. Allocated memory is still 1.0 GB. Free memory is still 987.1 MB. There was no memory consumed. Max. memory is 11.5 GB. [2020-07-28 18:26:05,726 INFO L168 Benchmark]: CACSL2BoogieTranslator took 471.79 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 148.9 MB). Free memory was 960.2 MB in the beginning and 1.1 GB in the end (delta: -177.2 MB). Peak memory consumption was 26.3 MB. Max. memory is 11.5 GB. [2020-07-28 18:26:05,727 INFO L168 Benchmark]: Boogie Procedure Inliner took 59.94 ms. Allocated memory is still 1.2 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. [2020-07-28 18:26:05,727 INFO L168 Benchmark]: Boogie Preprocessor took 53.81 ms. Allocated memory is still 1.2 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. [2020-07-28 18:26:05,728 INFO L168 Benchmark]: RCFGBuilder took 822.83 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 69.2 MB). Peak memory consumption was 69.2 MB. Max. memory is 11.5 GB. [2020-07-28 18:26:05,728 INFO L168 Benchmark]: TraceAbstraction took 14941.28 ms. Allocated memory was 1.2 GB in the beginning and 1.4 GB in the end (delta: 245.4 MB). Free memory was 1.1 GB in the beginning and 1.3 GB in the end (delta: -280.2 MB). There was no memory consumed. Max. memory is 11.5 GB. [2020-07-28 18:26:05,736 INFO L336 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.35 ms. Allocated memory is still 1.0 GB. Free memory is still 987.1 MB. There was no memory consumed. Max. memory is 11.5 GB. * CACSL2BoogieTranslator took 471.79 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 148.9 MB). Free memory was 960.2 MB in the beginning and 1.1 GB in the end (delta: -177.2 MB). Peak memory consumption was 26.3 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 59.94 ms. Allocated memory is still 1.2 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. * Boogie Preprocessor took 53.81 ms. Allocated memory is still 1.2 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. * RCFGBuilder took 822.83 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 69.2 MB). Peak memory consumption was 69.2 MB. Max. memory is 11.5 GB. * TraceAbstraction took 14941.28 ms. Allocated memory was 1.2 GB in the beginning and 1.4 GB in the end (delta: 245.4 MB). Free memory was 1.1 GB in the beginning and 1.3 GB in the end (delta: -280.2 MB). There was no memory consumed. Max. memory is 11.5 GB. * Results from de.uni_freiburg.informatik.ultimate.boogie.preprocessor: - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - 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:216) RESULT: Ultimate could not prove your program: Toolchain returned no result. Received shutdown request... ### Bit-precise run ### This is Ultimate 0.1.25-8bd4bc6 [2020-07-28 18:26:07,809 INFO L177 SettingsManager]: Resetting all preferences to default values... [2020-07-28 18:26:07,811 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2020-07-28 18:26:07,824 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2020-07-28 18:26:07,825 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2020-07-28 18:26:07,826 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2020-07-28 18:26:07,827 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2020-07-28 18:26:07,829 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2020-07-28 18:26:07,831 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2020-07-28 18:26:07,832 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2020-07-28 18:26:07,833 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2020-07-28 18:26:07,834 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2020-07-28 18:26:07,835 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2020-07-28 18:26:07,836 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2020-07-28 18:26:07,837 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2020-07-28 18:26:07,838 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2020-07-28 18:26:07,839 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2020-07-28 18:26:07,840 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2020-07-28 18:26:07,842 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2020-07-28 18:26:07,845 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2020-07-28 18:26:07,846 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2020-07-28 18:26:07,848 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2020-07-28 18:26:07,849 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2020-07-28 18:26:07,850 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2020-07-28 18:26:07,853 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2020-07-28 18:26:07,853 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2020-07-28 18:26:07,853 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2020-07-28 18:26:07,854 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2020-07-28 18:26:07,855 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2020-07-28 18:26:07,856 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2020-07-28 18:26:07,856 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2020-07-28 18:26:07,857 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2020-07-28 18:26:07,858 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2020-07-28 18:26:07,859 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2020-07-28 18:26:07,860 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2020-07-28 18:26:07,860 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2020-07-28 18:26:07,861 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2020-07-28 18:26:07,861 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2020-07-28 18:26:07,861 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2020-07-28 18:26:07,862 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2020-07-28 18:26:07,863 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2020-07-28 18:26:07,863 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.epf [2020-07-28 18:26:07,878 INFO L113 SettingsManager]: Loading preferences was successful [2020-07-28 18:26:07,879 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2020-07-28 18:26:07,880 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2020-07-28 18:26:07,880 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2020-07-28 18:26:07,880 INFO L138 SettingsManager]: * Use SBE=true [2020-07-28 18:26:07,881 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2020-07-28 18:26:07,881 INFO L138 SettingsManager]: * sizeof long=4 [2020-07-28 18:26:07,881 INFO L138 SettingsManager]: * sizeof POINTER=4 [2020-07-28 18:26:07,881 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2020-07-28 18:26:07,881 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2020-07-28 18:26:07,882 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2020-07-28 18:26:07,882 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2020-07-28 18:26:07,882 INFO L138 SettingsManager]: * Use bitvectors instead of ints=true [2020-07-28 18:26:07,882 INFO L138 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2020-07-28 18:26:07,882 INFO L138 SettingsManager]: * sizeof long double=12 [2020-07-28 18:26:07,883 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2020-07-28 18:26:07,883 INFO L138 SettingsManager]: * Use constant arrays=true [2020-07-28 18:26:07,883 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2020-07-28 18:26:07,883 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2020-07-28 18:26:07,884 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2020-07-28 18:26:07,884 INFO L138 SettingsManager]: * To the following directory=./dump/ [2020-07-28 18:26:07,884 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2020-07-28 18:26:07,884 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-28 18:26:07,885 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2020-07-28 18:26:07,885 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2020-07-28 18:26:07,885 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2020-07-28 18:26:07,885 INFO L138 SettingsManager]: * Trace refinement strategy=WOLF [2020-07-28 18:26:07,885 INFO L138 SettingsManager]: * Command for external solver=cvc4 --incremental --rewrite-divk --print-success --lang smt [2020-07-28 18:26:07,886 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2020-07-28 18:26:07,886 INFO L138 SettingsManager]: * Trace refinement exception blacklist=NONE [2020-07-28 18:26:07,886 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2020-07-28 18:26:07,886 INFO L138 SettingsManager]: * Logic for external solver=AUFBV 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(__VERIFIER_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> 36cb0ef5259a00c1b842f51350f649f0b8559710 [2020-07-28 18:26:08,205 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2020-07-28 18:26:08,219 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2020-07-28 18:26:08,222 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2020-07-28 18:26:08,224 INFO L271 PluginConnector]: Initializing CDTParser... [2020-07-28 18:26:08,224 INFO L275 PluginConnector]: CDTParser initialized [2020-07-28 18:26:08,225 INFO L429 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/verifythis/tree_del_iter_incorrect.c [2020-07-28 18:26:08,292 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/cdb7d7269/c4b8a32d6dbf4e6ca5e040e6afc7d167/FLAG603747ddc [2020-07-28 18:26:08,767 INFO L306 CDTParser]: Found 1 translation units. [2020-07-28 18:26:08,768 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/tree_del_iter_incorrect.c [2020-07-28 18:26:08,776 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/cdb7d7269/c4b8a32d6dbf4e6ca5e040e6afc7d167/FLAG603747ddc [2020-07-28 18:26:09,120 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/cdb7d7269/c4b8a32d6dbf4e6ca5e040e6afc7d167 [2020-07-28 18:26:09,124 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2020-07-28 18:26:09,128 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2020-07-28 18:26:09,129 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2020-07-28 18:26:09,129 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2020-07-28 18:26:09,133 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2020-07-28 18:26:09,135 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.07 06:26:09" (1/1) ... [2020-07-28 18:26:09,139 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@6fd25971 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09, skipping insertion in model container [2020-07-28 18:26:09,140 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.07 06:26:09" (1/1) ... [2020-07-28 18:26:09,150 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2020-07-28 18:26:09,183 INFO L178 MainTranslator]: Built tables and reachable declarations [2020-07-28 18:26:09,414 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 18:26:09,433 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-28 18:26:09,451 INFO L203 MainTranslator]: Completed pre-run [2020-07-28 18:26:09,551 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 18:26:09,583 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-28 18:26:09,607 INFO L208 MainTranslator]: Completed translation [2020-07-28 18:26:09,608 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09 WrapperNode [2020-07-28 18:26:09,608 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2020-07-28 18:26:09,609 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2020-07-28 18:26:09,609 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2020-07-28 18:26:09,609 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2020-07-28 18:26:09,618 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09" (1/1) ... [2020-07-28 18:26:09,632 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09" (1/1) ... [2020-07-28 18:26:09,670 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2020-07-28 18:26:09,671 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2020-07-28 18:26:09,671 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2020-07-28 18:26:09,671 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2020-07-28 18:26:09,681 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09" (1/1) ... [2020-07-28 18:26:09,681 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09" (1/1) ... [2020-07-28 18:26:09,687 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09" (1/1) ... [2020-07-28 18:26:09,688 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09" (1/1) ... [2020-07-28 18:26:09,710 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09" (1/1) ... [2020-07-28 18:26:09,720 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09" (1/1) ... [2020-07-28 18:26:09,723 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09" (1/1) ... [2020-07-28 18:26:09,729 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2020-07-28 18:26:09,729 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2020-07-28 18:26:09,730 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2020-07-28 18:26:09,730 INFO L275 PluginConnector]: RCFGBuilder initialized [2020-07-28 18:26:09,731 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-28 18:26:09,803 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2020-07-28 18:26:09,803 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2020-07-28 18:26:09,803 INFO L130 BoogieDeclarations]: Found specification of procedure min [2020-07-28 18:26:09,803 INFO L138 BoogieDeclarations]: Found implementation of procedure min [2020-07-28 18:26:09,803 INFO L130 BoogieDeclarations]: Found specification of procedure read~intINTTYPE4 [2020-07-28 18:26:09,806 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2020-07-28 18:26:09,806 INFO L130 BoogieDeclarations]: Found specification of procedure nondet_tree [2020-07-28 18:26:09,806 INFO L138 BoogieDeclarations]: Found implementation of procedure nondet_tree [2020-07-28 18:26:09,806 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2020-07-28 18:26:09,806 INFO L130 BoogieDeclarations]: Found specification of procedure size [2020-07-28 18:26:09,807 INFO L138 BoogieDeclarations]: Found implementation of procedure size [2020-07-28 18:26:09,807 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2020-07-28 18:26:09,807 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2020-07-28 18:26:09,807 INFO L130 BoogieDeclarations]: Found specification of procedure tree_inorder [2020-07-28 18:26:09,807 INFO L138 BoogieDeclarations]: Found implementation of procedure tree_inorder [2020-07-28 18:26:09,808 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2020-07-28 18:26:09,808 INFO L130 BoogieDeclarations]: Found specification of procedure write~intINTTYPE4 [2020-07-28 18:26:10,634 INFO L290 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2020-07-28 18:26:10,635 INFO L295 CfgBuilder]: Removed 24 assume(true) statements. [2020-07-28 18:26:10,640 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.07 06:26:10 BoogieIcfgContainer [2020-07-28 18:26:10,640 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2020-07-28 18:26:10,642 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2020-07-28 18:26:10,642 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2020-07-28 18:26:10,645 INFO L275 PluginConnector]: TraceAbstraction initialized [2020-07-28 18:26:10,646 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 28.07 06:26:09" (1/3) ... [2020-07-28 18:26:10,647 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@39e689e and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.07 06:26:10, skipping insertion in model container [2020-07-28 18:26:10,647 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 06:26:09" (2/3) ... [2020-07-28 18:26:10,648 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@39e689e and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.07 06:26:10, skipping insertion in model container [2020-07-28 18:26:10,648 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.07 06:26:10" (3/3) ... [2020-07-28 18:26:10,650 INFO L109 eAbstractionObserver]: Analyzing ICFG tree_del_iter_incorrect.c [2020-07-28 18:26:10,662 INFO L157 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2020-07-28 18:26:10,671 INFO L169 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2020-07-28 18:26:10,686 INFO L251 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2020-07-28 18:26:10,714 INFO L375 AbstractCegarLoop]: Interprodecural is true [2020-07-28 18:26:10,714 INFO L376 AbstractCegarLoop]: Hoare is true [2020-07-28 18:26:10,714 INFO L377 AbstractCegarLoop]: Compute interpolants for FPandBP [2020-07-28 18:26:10,715 INFO L378 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2020-07-28 18:26:10,715 INFO L379 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2020-07-28 18:26:10,715 INFO L380 AbstractCegarLoop]: Difference is false [2020-07-28 18:26:10,716 INFO L381 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2020-07-28 18:26:10,716 INFO L385 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2020-07-28 18:26:10,738 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states. [2020-07-28 18:26:10,748 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2020-07-28 18:26:10,748 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:26:10,750 INFO L422 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] [2020-07-28 18:26:10,750 INFO L427 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:26:10,756 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:26:10,756 INFO L82 PathProgramCache]: Analyzing trace with hash 1265612665, now seen corresponding path program 1 times [2020-07-28 18:26:10,768 INFO L163 FreeRefinementEngine]: Executing refinement strategy WOLF [2020-07-28 18:26:10,768 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [300295798] [2020-07-28 18:26:10,769 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat Starting monitored process 2 with mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with mathsat -unsat_core_generation=3 [2020-07-28 18:26:10,927 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:10,933 INFO L263 TraceCheckSpWp]: Trace formula consists of 101 conjuncts, 1 conjunts are in the unsatisfiable core [2020-07-28 18:26:10,961 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:10,967 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 18:26:11,049 INFO L280 TraceCheckUtils]: 0: Hoare triple {81#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {81#true} is VALID [2020-07-28 18:26:11,053 INFO L280 TraceCheckUtils]: 1: Hoare triple {81#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {81#true} is VALID [2020-07-28 18:26:11,054 INFO L263 TraceCheckUtils]: 2: Hoare triple {81#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {81#true} is VALID [2020-07-28 18:26:11,055 INFO L280 TraceCheckUtils]: 3: Hoare triple {81#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {81#true} is VALID [2020-07-28 18:26:11,055 INFO L280 TraceCheckUtils]: 4: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:26:11,056 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {81#true} {81#true} #159#return; {81#true} is VALID [2020-07-28 18:26:11,058 INFO L280 TraceCheckUtils]: 6: Hoare triple {81#true} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {81#true} is VALID [2020-07-28 18:26:11,059 INFO L263 TraceCheckUtils]: 7: Hoare triple {81#true} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {81#true} is VALID [2020-07-28 18:26:11,060 INFO L280 TraceCheckUtils]: 8: Hoare triple {81#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {81#true} is VALID [2020-07-28 18:26:11,060 INFO L280 TraceCheckUtils]: 9: Hoare triple {81#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {81#true} is VALID [2020-07-28 18:26:11,061 INFO L280 TraceCheckUtils]: 10: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:26:11,062 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {81#true} {81#true} #161#return; {81#true} is VALID [2020-07-28 18:26:11,063 INFO L280 TraceCheckUtils]: 12: Hoare triple {81#true} task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {81#true} is VALID [2020-07-28 18:26:11,063 INFO L263 TraceCheckUtils]: 13: Hoare triple {81#true} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {81#true} is VALID [2020-07-28 18:26:11,064 INFO L280 TraceCheckUtils]: 14: Hoare triple {81#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {81#true} is VALID [2020-07-28 18:26:11,064 INFO L280 TraceCheckUtils]: 15: Hoare triple {81#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {81#true} is VALID [2020-07-28 18:26:11,065 INFO L280 TraceCheckUtils]: 16: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:26:11,065 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {81#true} {81#true} #163#return; {81#true} is VALID [2020-07-28 18:26:11,066 INFO L280 TraceCheckUtils]: 18: Hoare triple {81#true} task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {81#true} is VALID [2020-07-28 18:26:11,067 INFO L280 TraceCheckUtils]: 19: Hoare triple {81#true} assume 0bv32 == assume_abort_if_not_~cond;assume false; {82#false} is VALID [2020-07-28 18:26:11,068 INFO L280 TraceCheckUtils]: 20: Hoare triple {82#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1));#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {82#false} is VALID [2020-07-28 18:26:11,068 INFO L280 TraceCheckUtils]: 21: Hoare triple {82#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {82#false} is VALID [2020-07-28 18:26:11,069 INFO L263 TraceCheckUtils]: 22: Hoare triple {82#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {82#false} is VALID [2020-07-28 18:26:11,069 INFO L280 TraceCheckUtils]: 23: Hoare triple {82#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {82#false} is VALID [2020-07-28 18:26:11,070 INFO L280 TraceCheckUtils]: 24: Hoare triple {82#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {82#false} is VALID [2020-07-28 18:26:11,070 INFO L280 TraceCheckUtils]: 25: Hoare triple {82#false} assume true; {82#false} is VALID [2020-07-28 18:26:11,071 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {82#false} {82#false} #165#return; {82#false} is VALID [2020-07-28 18:26:11,071 INFO L280 TraceCheckUtils]: 27: Hoare triple {82#false} havoc task_#t~ret30;call task_#t~mem31 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {82#false} is VALID [2020-07-28 18:26:11,072 INFO L280 TraceCheckUtils]: 28: Hoare triple {82#false} assume 0bv32 == __VERIFIER_assert_~cond; {82#false} is VALID [2020-07-28 18:26:11,072 INFO L280 TraceCheckUtils]: 29: Hoare triple {82#false} assume !false; {82#false} is VALID [2020-07-28 18:26:11,079 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 18:26:11,080 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2020-07-28 18:26:11,161 INFO L280 TraceCheckUtils]: 29: Hoare triple {82#false} assume !false; {82#false} is VALID [2020-07-28 18:26:11,162 INFO L280 TraceCheckUtils]: 28: Hoare triple {82#false} assume 0bv32 == __VERIFIER_assert_~cond; {82#false} is VALID [2020-07-28 18:26:11,162 INFO L280 TraceCheckUtils]: 27: Hoare triple {82#false} havoc task_#t~ret30;call task_#t~mem31 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {82#false} is VALID [2020-07-28 18:26:11,163 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {81#true} {82#false} #165#return; {82#false} is VALID [2020-07-28 18:26:11,163 INFO L280 TraceCheckUtils]: 25: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:26:11,164 INFO L280 TraceCheckUtils]: 24: Hoare triple {81#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {81#true} is VALID [2020-07-28 18:26:11,164 INFO L280 TraceCheckUtils]: 23: Hoare triple {81#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {81#true} is VALID [2020-07-28 18:26:11,165 INFO L263 TraceCheckUtils]: 22: Hoare triple {82#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {81#true} is VALID [2020-07-28 18:26:11,166 INFO L280 TraceCheckUtils]: 21: Hoare triple {82#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {82#false} is VALID [2020-07-28 18:26:11,166 INFO L280 TraceCheckUtils]: 20: Hoare triple {82#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1));#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {82#false} is VALID [2020-07-28 18:26:11,167 INFO L280 TraceCheckUtils]: 19: Hoare triple {81#true} assume 0bv32 == assume_abort_if_not_~cond;assume false; {82#false} is VALID [2020-07-28 18:26:11,168 INFO L280 TraceCheckUtils]: 18: Hoare triple {81#true} task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {81#true} is VALID [2020-07-28 18:26:11,168 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {81#true} {81#true} #163#return; {81#true} is VALID [2020-07-28 18:26:11,169 INFO L280 TraceCheckUtils]: 16: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:26:11,169 INFO L280 TraceCheckUtils]: 15: Hoare triple {81#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {81#true} is VALID [2020-07-28 18:26:11,170 INFO L280 TraceCheckUtils]: 14: Hoare triple {81#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {81#true} is VALID [2020-07-28 18:26:11,170 INFO L263 TraceCheckUtils]: 13: Hoare triple {81#true} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {81#true} is VALID [2020-07-28 18:26:11,170 INFO L280 TraceCheckUtils]: 12: Hoare triple {81#true} task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {81#true} is VALID [2020-07-28 18:26:11,171 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {81#true} {81#true} #161#return; {81#true} is VALID [2020-07-28 18:26:11,172 INFO L280 TraceCheckUtils]: 10: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:26:11,172 INFO L280 TraceCheckUtils]: 9: Hoare triple {81#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {81#true} is VALID [2020-07-28 18:26:11,172 INFO L280 TraceCheckUtils]: 8: Hoare triple {81#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {81#true} is VALID [2020-07-28 18:26:11,173 INFO L263 TraceCheckUtils]: 7: Hoare triple {81#true} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {81#true} is VALID [2020-07-28 18:26:11,173 INFO L280 TraceCheckUtils]: 6: Hoare triple {81#true} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {81#true} is VALID [2020-07-28 18:26:11,174 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {81#true} {81#true} #159#return; {81#true} is VALID [2020-07-28 18:26:11,174 INFO L280 TraceCheckUtils]: 4: Hoare triple {81#true} assume true; {81#true} is VALID [2020-07-28 18:26:11,175 INFO L280 TraceCheckUtils]: 3: Hoare triple {81#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {81#true} is VALID [2020-07-28 18:26:11,175 INFO L263 TraceCheckUtils]: 2: Hoare triple {81#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {81#true} is VALID [2020-07-28 18:26:11,176 INFO L280 TraceCheckUtils]: 1: Hoare triple {81#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {81#true} is VALID [2020-07-28 18:26:11,176 INFO L280 TraceCheckUtils]: 0: Hoare triple {81#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {81#true} is VALID [2020-07-28 18:26:11,179 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 18:26:11,180 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [300295798] [2020-07-28 18:26:11,181 INFO L220 FreeRefinementEngine]: Constructing automaton from 2 perfect and 0 imperfect interpolant sequences. [2020-07-28 18:26:11,182 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [2, 2] imperfect sequences [] total 2 [2020-07-28 18:26:11,183 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1591666566] [2020-07-28 18:26:11,192 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 30 [2020-07-28 18:26:11,196 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 18:26:11,200 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2020-07-28 18:26:11,284 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 35 edges. 35 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:11,285 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2020-07-28 18:26:11,285 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2020-07-28 18:26:11,296 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2020-07-28 18:26:11,297 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2020-07-28 18:26:11,300 INFO L87 Difference]: Start difference. First operand 78 states. Second operand 2 states. [2020-07-28 18:26:11,603 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:11,604 INFO L93 Difference]: Finished difference Result 131 states and 170 transitions. [2020-07-28 18:26:11,605 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2020-07-28 18:26:11,605 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 30 [2020-07-28 18:26:11,605 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 18:26:11,607 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2020-07-28 18:26:11,626 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 170 transitions. [2020-07-28 18:26:11,626 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2020-07-28 18:26:11,635 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 170 transitions. [2020-07-28 18:26:11,636 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 170 transitions. [2020-07-28 18:26:11,983 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 170 edges. 170 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:12,013 INFO L225 Difference]: With dead ends: 131 [2020-07-28 18:26:12,013 INFO L226 Difference]: Without dead ends: 73 [2020-07-28 18:26:12,022 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 58 GetRequests, 58 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2020-07-28 18:26:12,047 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states. [2020-07-28 18:26:12,093 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 73. [2020-07-28 18:26:12,094 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 18:26:12,095 INFO L82 GeneralOperation]: Start isEquivalent. First operand 73 states. Second operand 73 states. [2020-07-28 18:26:12,095 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand 73 states. [2020-07-28 18:26:12,096 INFO L87 Difference]: Start difference. First operand 73 states. Second operand 73 states. [2020-07-28 18:26:12,116 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:12,117 INFO L93 Difference]: Finished difference Result 73 states and 90 transitions. [2020-07-28 18:26:12,117 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 90 transitions. [2020-07-28 18:26:12,121 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:12,122 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:12,122 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand 73 states. [2020-07-28 18:26:12,124 INFO L87 Difference]: Start difference. First operand 73 states. Second operand 73 states. [2020-07-28 18:26:12,142 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:12,142 INFO L93 Difference]: Finished difference Result 73 states and 90 transitions. [2020-07-28 18:26:12,142 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 90 transitions. [2020-07-28 18:26:12,144 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:12,146 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:12,146 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 18:26:12,146 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 18:26:12,146 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 73 states. [2020-07-28 18:26:12,158 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 90 transitions. [2020-07-28 18:26:12,160 INFO L78 Accepts]: Start accepts. Automaton has 73 states and 90 transitions. Word has length 30 [2020-07-28 18:26:12,164 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 18:26:12,164 INFO L479 AbstractCegarLoop]: Abstraction has 73 states and 90 transitions. [2020-07-28 18:26:12,165 INFO L480 AbstractCegarLoop]: Interpolant automaton has 2 states. [2020-07-28 18:26:12,165 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 90 transitions. [2020-07-28 18:26:12,169 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2020-07-28 18:26:12,169 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:26:12,170 INFO L422 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] [2020-07-28 18:26:12,382 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 mathsat -unsat_core_generation=3 [2020-07-28 18:26:12,382 INFO L427 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:26:12,383 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:26:12,383 INFO L82 PathProgramCache]: Analyzing trace with hash 1966677243, now seen corresponding path program 1 times [2020-07-28 18:26:12,387 INFO L163 FreeRefinementEngine]: Executing refinement strategy WOLF [2020-07-28 18:26:12,388 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [136239417] [2020-07-28 18:26:12,388 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat Starting monitored process 3 with mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with mathsat -unsat_core_generation=3 [2020-07-28 18:26:12,490 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:12,496 INFO L263 TraceCheckSpWp]: Trace formula consists of 101 conjuncts, 6 conjunts are in the unsatisfiable core [2020-07-28 18:26:12,523 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:12,527 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 18:26:12,631 INFO L280 TraceCheckUtils]: 0: Hoare triple {663#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {663#true} is VALID [2020-07-28 18:26:12,632 INFO L280 TraceCheckUtils]: 1: Hoare triple {663#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {663#true} is VALID [2020-07-28 18:26:12,632 INFO L263 TraceCheckUtils]: 2: Hoare triple {663#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {663#true} is VALID [2020-07-28 18:26:12,632 INFO L280 TraceCheckUtils]: 3: Hoare triple {663#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {663#true} is VALID [2020-07-28 18:26:12,633 INFO L280 TraceCheckUtils]: 4: Hoare triple {663#true} assume true; {663#true} is VALID [2020-07-28 18:26:12,633 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {663#true} {663#true} #159#return; {663#true} is VALID [2020-07-28 18:26:12,637 INFO L280 TraceCheckUtils]: 6: Hoare triple {663#true} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {663#true} is VALID [2020-07-28 18:26:12,637 INFO L263 TraceCheckUtils]: 7: Hoare triple {663#true} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {663#true} is VALID [2020-07-28 18:26:12,638 INFO L280 TraceCheckUtils]: 8: Hoare triple {663#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {663#true} is VALID [2020-07-28 18:26:12,638 INFO L280 TraceCheckUtils]: 9: Hoare triple {663#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {663#true} is VALID [2020-07-28 18:26:12,638 INFO L280 TraceCheckUtils]: 10: Hoare triple {663#true} assume true; {663#true} is VALID [2020-07-28 18:26:12,639 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {663#true} {663#true} #161#return; {663#true} is VALID [2020-07-28 18:26:12,639 INFO L280 TraceCheckUtils]: 12: Hoare triple {663#true} task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {663#true} is VALID [2020-07-28 18:26:12,639 INFO L263 TraceCheckUtils]: 13: Hoare triple {663#true} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {663#true} is VALID [2020-07-28 18:26:12,640 INFO L280 TraceCheckUtils]: 14: Hoare triple {663#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {663#true} is VALID [2020-07-28 18:26:12,641 INFO L280 TraceCheckUtils]: 15: Hoare triple {663#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {713#(= |size_#res| (_ bv0 32))} is VALID [2020-07-28 18:26:12,642 INFO L280 TraceCheckUtils]: 16: Hoare triple {713#(= |size_#res| (_ bv0 32))} assume true; {713#(= |size_#res| (_ bv0 32))} is VALID [2020-07-28 18:26:12,644 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {713#(= |size_#res| (_ bv0 32))} {663#true} #163#return; {720#(= |ULTIMATE.start_task_#t~ret28| (_ bv0 32))} is VALID [2020-07-28 18:26:12,645 INFO L280 TraceCheckUtils]: 18: Hoare triple {720#(= |ULTIMATE.start_task_#t~ret28| (_ bv0 32))} task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {724#(= (_ bv0 32) ULTIMATE.start_assume_abort_if_not_~cond)} is VALID [2020-07-28 18:26:12,646 INFO L280 TraceCheckUtils]: 19: Hoare triple {724#(= (_ bv0 32) ULTIMATE.start_assume_abort_if_not_~cond)} assume !(0bv32 == assume_abort_if_not_~cond); {664#false} is VALID [2020-07-28 18:26:12,646 INFO L280 TraceCheckUtils]: 20: Hoare triple {664#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1));#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {664#false} is VALID [2020-07-28 18:26:12,647 INFO L280 TraceCheckUtils]: 21: Hoare triple {664#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {664#false} is VALID [2020-07-28 18:26:12,647 INFO L263 TraceCheckUtils]: 22: Hoare triple {664#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {664#false} is VALID [2020-07-28 18:26:12,647 INFO L280 TraceCheckUtils]: 23: Hoare triple {664#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {664#false} is VALID [2020-07-28 18:26:12,648 INFO L280 TraceCheckUtils]: 24: Hoare triple {664#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {664#false} is VALID [2020-07-28 18:26:12,648 INFO L280 TraceCheckUtils]: 25: Hoare triple {664#false} assume true; {664#false} is VALID [2020-07-28 18:26:12,648 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {664#false} {664#false} #165#return; {664#false} is VALID [2020-07-28 18:26:12,649 INFO L280 TraceCheckUtils]: 27: Hoare triple {664#false} havoc task_#t~ret30;call task_#t~mem31 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {664#false} is VALID [2020-07-28 18:26:12,649 INFO L280 TraceCheckUtils]: 28: Hoare triple {664#false} assume 0bv32 == __VERIFIER_assert_~cond; {664#false} is VALID [2020-07-28 18:26:12,650 INFO L280 TraceCheckUtils]: 29: Hoare triple {664#false} assume !false; {664#false} is VALID [2020-07-28 18:26:12,652 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 18:26:12,652 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2020-07-28 18:26:12,720 INFO L342 QuantifierPusher]: Applying distributivity to a DISJUNCTION[2, 2, 2, 1] term [2020-07-28 18:26:12,720 INFO L523 QuantifierPusher]: Distributing 2 disjuncts over 2 conjuncts [2020-07-28 18:26:12,777 INFO L280 TraceCheckUtils]: 29: Hoare triple {664#false} assume !false; {664#false} is VALID [2020-07-28 18:26:12,777 INFO L280 TraceCheckUtils]: 28: Hoare triple {664#false} assume 0bv32 == __VERIFIER_assert_~cond; {664#false} is VALID [2020-07-28 18:26:12,778 INFO L280 TraceCheckUtils]: 27: Hoare triple {664#false} havoc task_#t~ret30;call task_#t~mem31 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {664#false} is VALID [2020-07-28 18:26:12,778 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {663#true} {664#false} #165#return; {664#false} is VALID [2020-07-28 18:26:12,779 INFO L280 TraceCheckUtils]: 25: Hoare triple {663#true} assume true; {663#true} is VALID [2020-07-28 18:26:12,779 INFO L280 TraceCheckUtils]: 24: Hoare triple {663#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {663#true} is VALID [2020-07-28 18:26:12,779 INFO L280 TraceCheckUtils]: 23: Hoare triple {663#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {663#true} is VALID [2020-07-28 18:26:12,780 INFO L263 TraceCheckUtils]: 22: Hoare triple {664#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {663#true} is VALID [2020-07-28 18:26:12,780 INFO L280 TraceCheckUtils]: 21: Hoare triple {664#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {664#false} is VALID [2020-07-28 18:26:12,780 INFO L280 TraceCheckUtils]: 20: Hoare triple {664#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1));#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {664#false} is VALID [2020-07-28 18:26:12,782 INFO L280 TraceCheckUtils]: 19: Hoare triple {724#(= (_ bv0 32) ULTIMATE.start_assume_abort_if_not_~cond)} assume !(0bv32 == assume_abort_if_not_~cond); {664#false} is VALID [2020-07-28 18:26:12,783 INFO L280 TraceCheckUtils]: 18: Hoare triple {720#(= |ULTIMATE.start_task_#t~ret28| (_ bv0 32))} task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {724#(= (_ bv0 32) ULTIMATE.start_assume_abort_if_not_~cond)} is VALID [2020-07-28 18:26:12,785 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {713#(= |size_#res| (_ bv0 32))} {663#true} #163#return; {720#(= |ULTIMATE.start_task_#t~ret28| (_ bv0 32))} is VALID [2020-07-28 18:26:12,786 INFO L280 TraceCheckUtils]: 16: Hoare triple {713#(= |size_#res| (_ bv0 32))} assume true; {713#(= |size_#res| (_ bv0 32))} is VALID [2020-07-28 18:26:12,790 INFO L280 TraceCheckUtils]: 15: Hoare triple {663#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {713#(= |size_#res| (_ bv0 32))} is VALID [2020-07-28 18:26:12,791 INFO L280 TraceCheckUtils]: 14: Hoare triple {663#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {663#true} is VALID [2020-07-28 18:26:12,791 INFO L263 TraceCheckUtils]: 13: Hoare triple {663#true} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {663#true} is VALID [2020-07-28 18:26:12,791 INFO L280 TraceCheckUtils]: 12: Hoare triple {663#true} task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {663#true} is VALID [2020-07-28 18:26:12,792 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {663#true} {663#true} #161#return; {663#true} is VALID [2020-07-28 18:26:12,792 INFO L280 TraceCheckUtils]: 10: Hoare triple {663#true} assume true; {663#true} is VALID [2020-07-28 18:26:12,792 INFO L280 TraceCheckUtils]: 9: Hoare triple {663#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {663#true} is VALID [2020-07-28 18:26:12,793 INFO L280 TraceCheckUtils]: 8: Hoare triple {663#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {663#true} is VALID [2020-07-28 18:26:12,793 INFO L263 TraceCheckUtils]: 7: Hoare triple {663#true} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {663#true} is VALID [2020-07-28 18:26:12,793 INFO L280 TraceCheckUtils]: 6: Hoare triple {663#true} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {663#true} is VALID [2020-07-28 18:26:12,794 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {663#true} {663#true} #159#return; {663#true} is VALID [2020-07-28 18:26:12,794 INFO L280 TraceCheckUtils]: 4: Hoare triple {663#true} assume true; {663#true} is VALID [2020-07-28 18:26:12,794 INFO L280 TraceCheckUtils]: 3: Hoare triple {663#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {663#true} is VALID [2020-07-28 18:26:12,794 INFO L263 TraceCheckUtils]: 2: Hoare triple {663#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {663#true} is VALID [2020-07-28 18:26:12,795 INFO L280 TraceCheckUtils]: 1: Hoare triple {663#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {663#true} is VALID [2020-07-28 18:26:12,795 INFO L280 TraceCheckUtils]: 0: Hoare triple {663#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {663#true} is VALID [2020-07-28 18:26:12,797 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 18:26:12,797 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [136239417] [2020-07-28 18:26:12,798 INFO L220 FreeRefinementEngine]: Constructing automaton from 2 perfect and 0 imperfect interpolant sequences. [2020-07-28 18:26:12,798 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5, 5] imperfect sequences [] total 5 [2020-07-28 18:26:12,798 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1655463295] [2020-07-28 18:26:12,800 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 30 [2020-07-28 18:26:12,800 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 18:26:12,800 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2020-07-28 18:26:12,854 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 35 edges. 35 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:12,854 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2020-07-28 18:26:12,854 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2020-07-28 18:26:12,855 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2020-07-28 18:26:12,855 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2020-07-28 18:26:12,855 INFO L87 Difference]: Start difference. First operand 73 states and 90 transitions. Second operand 5 states. [2020-07-28 18:26:13,636 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:13,637 INFO L93 Difference]: Finished difference Result 125 states and 154 transitions. [2020-07-28 18:26:13,637 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2020-07-28 18:26:13,637 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 30 [2020-07-28 18:26:13,638 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 18:26:13,638 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2020-07-28 18:26:13,664 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 154 transitions. [2020-07-28 18:26:13,665 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2020-07-28 18:26:13,673 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 154 transitions. [2020-07-28 18:26:13,674 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 154 transitions. [2020-07-28 18:26:13,942 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 154 edges. 154 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:13,947 INFO L225 Difference]: With dead ends: 125 [2020-07-28 18:26:13,948 INFO L226 Difference]: Without dead ends: 75 [2020-07-28 18:26:13,949 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 58 GetRequests, 55 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2020-07-28 18:26:13,950 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 75 states. [2020-07-28 18:26:13,965 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 75 to 75. [2020-07-28 18:26:13,966 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 18:26:13,966 INFO L82 GeneralOperation]: Start isEquivalent. First operand 75 states. Second operand 75 states. [2020-07-28 18:26:13,966 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 75 states. [2020-07-28 18:26:13,966 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 75 states. [2020-07-28 18:26:13,971 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:13,972 INFO L93 Difference]: Finished difference Result 75 states and 94 transitions. [2020-07-28 18:26:13,972 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 94 transitions. [2020-07-28 18:26:13,973 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:13,973 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:13,974 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 75 states. [2020-07-28 18:26:13,974 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 75 states. [2020-07-28 18:26:13,979 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:13,979 INFO L93 Difference]: Finished difference Result 75 states and 94 transitions. [2020-07-28 18:26:13,979 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 94 transitions. [2020-07-28 18:26:13,981 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:13,981 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:13,981 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 18:26:13,981 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 18:26:13,981 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 75 states. [2020-07-28 18:26:13,986 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 75 states to 75 states and 94 transitions. [2020-07-28 18:26:13,986 INFO L78 Accepts]: Start accepts. Automaton has 75 states and 94 transitions. Word has length 30 [2020-07-28 18:26:13,986 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 18:26:13,986 INFO L479 AbstractCegarLoop]: Abstraction has 75 states and 94 transitions. [2020-07-28 18:26:13,987 INFO L480 AbstractCegarLoop]: Interpolant automaton has 5 states. [2020-07-28 18:26:13,987 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 94 transitions. [2020-07-28 18:26:13,988 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2020-07-28 18:26:13,988 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:26:13,988 INFO L422 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] [2020-07-28 18:26:14,201 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 mathsat -unsat_core_generation=3 [2020-07-28 18:26:14,202 INFO L427 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:26:14,202 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:26:14,202 INFO L82 PathProgramCache]: Analyzing trace with hash -551220880, now seen corresponding path program 1 times [2020-07-28 18:26:14,202 INFO L163 FreeRefinementEngine]: Executing refinement strategy WOLF [2020-07-28 18:26:14,203 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [64972850] [2020-07-28 18:26:14,203 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat Starting monitored process 4 with mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with mathsat -unsat_core_generation=3 [2020-07-28 18:26:14,281 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:14,285 INFO L263 TraceCheckSpWp]: Trace formula consists of 126 conjuncts, 13 conjunts are in the unsatisfiable core [2020-07-28 18:26:14,318 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:14,320 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 18:26:14,479 INFO L280 TraceCheckUtils]: 0: Hoare triple {1248#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {1248#true} is VALID [2020-07-28 18:26:14,479 INFO L280 TraceCheckUtils]: 1: Hoare triple {1248#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {1248#true} is VALID [2020-07-28 18:26:14,480 INFO L263 TraceCheckUtils]: 2: Hoare triple {1248#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {1248#true} is VALID [2020-07-28 18:26:14,481 INFO L280 TraceCheckUtils]: 3: Hoare triple {1248#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {1262#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:14,481 INFO L280 TraceCheckUtils]: 4: Hoare triple {1262#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {1262#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:14,483 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1262#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} {1248#true} #159#return; {1269#(and (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|) (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.offset|))} is VALID [2020-07-28 18:26:14,484 INFO L280 TraceCheckUtils]: 6: Hoare triple {1269#(and (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|) (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.offset|))} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:26:14,484 INFO L263 TraceCheckUtils]: 7: Hoare triple {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {1248#true} is VALID [2020-07-28 18:26:14,484 INFO L280 TraceCheckUtils]: 8: Hoare triple {1248#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1248#true} is VALID [2020-07-28 18:26:14,485 INFO L280 TraceCheckUtils]: 9: Hoare triple {1248#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {1248#true} is VALID [2020-07-28 18:26:14,485 INFO L280 TraceCheckUtils]: 10: Hoare triple {1248#true} assume true; {1248#true} is VALID [2020-07-28 18:26:14,486 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {1248#true} {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} #161#return; {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:26:14,487 INFO L280 TraceCheckUtils]: 12: Hoare triple {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:26:14,488 INFO L263 TraceCheckUtils]: 13: Hoare triple {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {1248#true} is VALID [2020-07-28 18:26:14,489 INFO L280 TraceCheckUtils]: 14: Hoare triple {1248#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1298#(and (= size_~t.base |size_#in~t.base|) (= |size_#in~t.offset| size_~t.offset))} is VALID [2020-07-28 18:26:14,490 INFO L280 TraceCheckUtils]: 15: Hoare triple {1298#(and (= size_~t.base |size_#in~t.base|) (= |size_#in~t.offset| size_~t.offset))} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,490 INFO L263 TraceCheckUtils]: 16: Hoare triple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {1248#true} is VALID [2020-07-28 18:26:14,490 INFO L280 TraceCheckUtils]: 17: Hoare triple {1248#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1248#true} is VALID [2020-07-28 18:26:14,491 INFO L280 TraceCheckUtils]: 18: Hoare triple {1248#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1248#true} is VALID [2020-07-28 18:26:14,491 INFO L280 TraceCheckUtils]: 19: Hoare triple {1248#true} assume true; {1248#true} is VALID [2020-07-28 18:26:14,493 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {1248#true} {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #151#return; {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,494 INFO L280 TraceCheckUtils]: 21: Hoare triple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,494 INFO L263 TraceCheckUtils]: 22: Hoare triple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {1248#true} is VALID [2020-07-28 18:26:14,495 INFO L280 TraceCheckUtils]: 23: Hoare triple {1248#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1248#true} is VALID [2020-07-28 18:26:14,495 INFO L280 TraceCheckUtils]: 24: Hoare triple {1248#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1248#true} is VALID [2020-07-28 18:26:14,495 INFO L280 TraceCheckUtils]: 25: Hoare triple {1248#true} assume true; {1248#true} is VALID [2020-07-28 18:26:14,497 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {1248#true} {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #153#return; {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,498 INFO L280 TraceCheckUtils]: 27: Hoare triple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret24, #t~ret26));havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24;havoc #t~ret26;havoc #t~mem25.base, #t~mem25.offset; {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,498 INFO L280 TraceCheckUtils]: 28: Hoare triple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} assume true; {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,500 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} #163#return; {1249#false} is VALID [2020-07-28 18:26:14,500 INFO L280 TraceCheckUtils]: 30: Hoare triple {1249#false} task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {1249#false} is VALID [2020-07-28 18:26:14,500 INFO L280 TraceCheckUtils]: 31: Hoare triple {1249#false} assume !(0bv32 == assume_abort_if_not_~cond); {1249#false} is VALID [2020-07-28 18:26:14,500 INFO L280 TraceCheckUtils]: 32: Hoare triple {1249#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1));#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {1249#false} is VALID [2020-07-28 18:26:14,501 INFO L280 TraceCheckUtils]: 33: Hoare triple {1249#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {1249#false} is VALID [2020-07-28 18:26:14,501 INFO L263 TraceCheckUtils]: 34: Hoare triple {1249#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1249#false} is VALID [2020-07-28 18:26:14,501 INFO L280 TraceCheckUtils]: 35: Hoare triple {1249#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {1249#false} is VALID [2020-07-28 18:26:14,502 INFO L280 TraceCheckUtils]: 36: Hoare triple {1249#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {1249#false} is VALID [2020-07-28 18:26:14,502 INFO L280 TraceCheckUtils]: 37: Hoare triple {1249#false} assume true; {1249#false} is VALID [2020-07-28 18:26:14,502 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {1249#false} {1249#false} #165#return; {1249#false} is VALID [2020-07-28 18:26:14,502 INFO L280 TraceCheckUtils]: 39: Hoare triple {1249#false} havoc task_#t~ret30;call task_#t~mem31 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {1249#false} is VALID [2020-07-28 18:26:14,503 INFO L280 TraceCheckUtils]: 40: Hoare triple {1249#false} assume 0bv32 == __VERIFIER_assert_~cond; {1249#false} is VALID [2020-07-28 18:26:14,503 INFO L280 TraceCheckUtils]: 41: Hoare triple {1249#false} assume !false; {1249#false} is VALID [2020-07-28 18:26:14,506 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-28 18:26:14,507 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2020-07-28 18:26:14,759 INFO L280 TraceCheckUtils]: 41: Hoare triple {1249#false} assume !false; {1249#false} is VALID [2020-07-28 18:26:14,760 INFO L280 TraceCheckUtils]: 40: Hoare triple {1249#false} assume 0bv32 == __VERIFIER_assert_~cond; {1249#false} is VALID [2020-07-28 18:26:14,760 INFO L280 TraceCheckUtils]: 39: Hoare triple {1249#false} havoc task_#t~ret30;call task_#t~mem31 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {1249#false} is VALID [2020-07-28 18:26:14,760 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {1248#true} {1249#false} #165#return; {1249#false} is VALID [2020-07-28 18:26:14,760 INFO L280 TraceCheckUtils]: 37: Hoare triple {1248#true} assume true; {1248#true} is VALID [2020-07-28 18:26:14,761 INFO L280 TraceCheckUtils]: 36: Hoare triple {1248#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {1248#true} is VALID [2020-07-28 18:26:14,761 INFO L280 TraceCheckUtils]: 35: Hoare triple {1248#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {1248#true} is VALID [2020-07-28 18:26:14,761 INFO L263 TraceCheckUtils]: 34: Hoare triple {1249#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1248#true} is VALID [2020-07-28 18:26:14,762 INFO L280 TraceCheckUtils]: 33: Hoare triple {1249#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {1249#false} is VALID [2020-07-28 18:26:14,762 INFO L280 TraceCheckUtils]: 32: Hoare triple {1249#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1));#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {1249#false} is VALID [2020-07-28 18:26:14,762 INFO L280 TraceCheckUtils]: 31: Hoare triple {1249#false} assume !(0bv32 == assume_abort_if_not_~cond); {1249#false} is VALID [2020-07-28 18:26:14,762 INFO L280 TraceCheckUtils]: 30: Hoare triple {1249#false} task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {1249#false} is VALID [2020-07-28 18:26:14,767 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} #163#return; {1249#false} is VALID [2020-07-28 18:26:14,772 INFO L280 TraceCheckUtils]: 28: Hoare triple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} assume true; {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,773 INFO L280 TraceCheckUtils]: 27: Hoare triple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret24, #t~ret26));havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24;havoc #t~ret26;havoc #t~mem25.base, #t~mem25.offset; {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,774 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {1248#true} {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #153#return; {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,774 INFO L280 TraceCheckUtils]: 25: Hoare triple {1248#true} assume true; {1248#true} is VALID [2020-07-28 18:26:14,774 INFO L280 TraceCheckUtils]: 24: Hoare triple {1248#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1248#true} is VALID [2020-07-28 18:26:14,774 INFO L280 TraceCheckUtils]: 23: Hoare triple {1248#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1248#true} is VALID [2020-07-28 18:26:14,775 INFO L263 TraceCheckUtils]: 22: Hoare triple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {1248#true} is VALID [2020-07-28 18:26:14,775 INFO L280 TraceCheckUtils]: 21: Hoare triple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,777 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {1248#true} {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #151#return; {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,777 INFO L280 TraceCheckUtils]: 19: Hoare triple {1248#true} assume true; {1248#true} is VALID [2020-07-28 18:26:14,777 INFO L280 TraceCheckUtils]: 18: Hoare triple {1248#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1248#true} is VALID [2020-07-28 18:26:14,777 INFO L280 TraceCheckUtils]: 17: Hoare triple {1248#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1248#true} is VALID [2020-07-28 18:26:14,778 INFO L263 TraceCheckUtils]: 16: Hoare triple {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {1248#true} is VALID [2020-07-28 18:26:14,781 INFO L280 TraceCheckUtils]: 15: Hoare triple {1462#(or (and (= (_ bv0 32) size_~t.base) (= (_ bv0 32) size_~t.offset)) (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {1302#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,781 INFO L280 TraceCheckUtils]: 14: Hoare triple {1248#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1462#(or (and (= (_ bv0 32) size_~t.base) (= (_ bv0 32) size_~t.offset)) (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 18:26:14,782 INFO L263 TraceCheckUtils]: 13: Hoare triple {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {1248#true} is VALID [2020-07-28 18:26:14,785 INFO L280 TraceCheckUtils]: 12: Hoare triple {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:26:14,787 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {1248#true} {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} #161#return; {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:26:14,787 INFO L280 TraceCheckUtils]: 10: Hoare triple {1248#true} assume true; {1248#true} is VALID [2020-07-28 18:26:14,787 INFO L280 TraceCheckUtils]: 9: Hoare triple {1248#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {1248#true} is VALID [2020-07-28 18:26:14,788 INFO L280 TraceCheckUtils]: 8: Hoare triple {1248#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1248#true} is VALID [2020-07-28 18:26:14,788 INFO L263 TraceCheckUtils]: 7: Hoare triple {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {1248#true} is VALID [2020-07-28 18:26:14,789 INFO L280 TraceCheckUtils]: 6: Hoare triple {1269#(and (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|) (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.offset|))} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {1273#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 18:26:14,790 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1262#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} {1248#true} #159#return; {1269#(and (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|) (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.offset|))} is VALID [2020-07-28 18:26:14,791 INFO L280 TraceCheckUtils]: 4: Hoare triple {1262#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {1262#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:14,792 INFO L280 TraceCheckUtils]: 3: Hoare triple {1248#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {1262#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:14,792 INFO L263 TraceCheckUtils]: 2: Hoare triple {1248#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {1248#true} is VALID [2020-07-28 18:26:14,792 INFO L280 TraceCheckUtils]: 1: Hoare triple {1248#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {1248#true} is VALID [2020-07-28 18:26:14,792 INFO L280 TraceCheckUtils]: 0: Hoare triple {1248#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {1248#true} is VALID [2020-07-28 18:26:14,795 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-28 18:26:14,795 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [64972850] [2020-07-28 18:26:14,796 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 18:26:14,796 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 8 [2020-07-28 18:26:14,796 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [356847868] [2020-07-28 18:26:14,797 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 42 [2020-07-28 18:26:14,797 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 18:26:14,797 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2020-07-28 18:26:14,872 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:14,872 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2020-07-28 18:26:14,872 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2020-07-28 18:26:14,873 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2020-07-28 18:26:14,873 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=41, Unknown=0, NotChecked=0, Total=56 [2020-07-28 18:26:14,873 INFO L87 Difference]: Start difference. First operand 75 states and 94 transitions. Second operand 8 states. [2020-07-28 18:26:16,222 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:16,222 INFO L93 Difference]: Finished difference Result 133 states and 167 transitions. [2020-07-28 18:26:16,222 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2020-07-28 18:26:16,222 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 42 [2020-07-28 18:26:16,223 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 18:26:16,223 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2020-07-28 18:26:16,227 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 163 transitions. [2020-07-28 18:26:16,227 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2020-07-28 18:26:16,231 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 163 transitions. [2020-07-28 18:26:16,231 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 163 transitions. [2020-07-28 18:26:16,491 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 163 edges. 163 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:16,497 INFO L225 Difference]: With dead ends: 133 [2020-07-28 18:26:16,501 INFO L226 Difference]: Without dead ends: 77 [2020-07-28 18:26:16,502 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 85 GetRequests, 76 SyntacticMatches, 1 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=24, Invalid=66, Unknown=0, NotChecked=0, Total=90 [2020-07-28 18:26:16,505 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 77 states. [2020-07-28 18:26:16,535 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 77 to 77. [2020-07-28 18:26:16,535 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 18:26:16,535 INFO L82 GeneralOperation]: Start isEquivalent. First operand 77 states. Second operand 77 states. [2020-07-28 18:26:16,535 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 77 states. [2020-07-28 18:26:16,536 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 77 states. [2020-07-28 18:26:16,544 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:16,544 INFO L93 Difference]: Finished difference Result 77 states and 97 transitions. [2020-07-28 18:26:16,544 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 97 transitions. [2020-07-28 18:26:16,546 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:16,547 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:16,547 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 77 states. [2020-07-28 18:26:16,547 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 77 states. [2020-07-28 18:26:16,553 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:16,554 INFO L93 Difference]: Finished difference Result 77 states and 97 transitions. [2020-07-28 18:26:16,554 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 97 transitions. [2020-07-28 18:26:16,556 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:16,556 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:16,556 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 18:26:16,557 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 18:26:16,557 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2020-07-28 18:26:16,562 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 97 transitions. [2020-07-28 18:26:16,562 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 97 transitions. Word has length 42 [2020-07-28 18:26:16,565 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 18:26:16,565 INFO L479 AbstractCegarLoop]: Abstraction has 77 states and 97 transitions. [2020-07-28 18:26:16,565 INFO L480 AbstractCegarLoop]: Interpolant automaton has 8 states. [2020-07-28 18:26:16,565 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 97 transitions. [2020-07-28 18:26:16,571 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2020-07-28 18:26:16,571 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:26:16,572 INFO L422 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] [2020-07-28 18:26:16,792 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 4 mathsat -unsat_core_generation=3 [2020-07-28 18:26:16,792 INFO L427 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:26:16,793 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:26:16,793 INFO L82 PathProgramCache]: Analyzing trace with hash -876273741, now seen corresponding path program 1 times [2020-07-28 18:26:16,794 INFO L163 FreeRefinementEngine]: Executing refinement strategy WOLF [2020-07-28 18:26:16,795 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [555241001] [2020-07-28 18:26:16,795 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat Starting monitored process 5 with mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with mathsat -unsat_core_generation=3 [2020-07-28 18:26:16,876 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:16,880 INFO L263 TraceCheckSpWp]: Trace formula consists of 177 conjuncts, 9 conjunts are in the unsatisfiable core [2020-07-28 18:26:16,908 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:16,913 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 18:26:17,056 INFO L280 TraceCheckUtils]: 0: Hoare triple {1929#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {1929#true} is VALID [2020-07-28 18:26:17,070 INFO L280 TraceCheckUtils]: 1: Hoare triple {1929#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {1929#true} is VALID [2020-07-28 18:26:17,070 INFO L263 TraceCheckUtils]: 2: Hoare triple {1929#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {1929#true} is VALID [2020-07-28 18:26:17,075 INFO L280 TraceCheckUtils]: 3: Hoare triple {1929#true} assume !(0bv8 != #t~nondet1);havoc #t~nondet1;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.allocOnHeap(12bv32);~n~0.base, ~n~0.offset := #t~malloc2.base, #t~malloc2.offset;call write~intINTTYPE4(#t~nondet3, ~n~0.base, ~n~0.offset, 4bv32);havoc #t~nondet3; {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:17,075 INFO L263 TraceCheckUtils]: 4: Hoare triple {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1929#true} is VALID [2020-07-28 18:26:17,075 INFO L280 TraceCheckUtils]: 5: Hoare triple {1929#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {1929#true} is VALID [2020-07-28 18:26:17,076 INFO L280 TraceCheckUtils]: 6: Hoare triple {1929#true} assume true; {1929#true} is VALID [2020-07-28 18:26:17,076 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1929#true} {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #155#return; {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:17,077 INFO L280 TraceCheckUtils]: 8: Hoare triple {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, ~bvadd32(4bv32, ~n~0.offset), 4bv32);havoc #t~ret4.base, #t~ret4.offset; {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:17,077 INFO L263 TraceCheckUtils]: 9: Hoare triple {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1929#true} is VALID [2020-07-28 18:26:17,077 INFO L280 TraceCheckUtils]: 10: Hoare triple {1929#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {1929#true} is VALID [2020-07-28 18:26:17,077 INFO L280 TraceCheckUtils]: 11: Hoare triple {1929#true} assume true; {1929#true} is VALID [2020-07-28 18:26:17,078 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1929#true} {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #157#return; {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:17,079 INFO L280 TraceCheckUtils]: 13: Hoare triple {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret5.base, #t~ret5.offset, ~n~0.base, ~bvadd32(8bv32, ~n~0.offset), 4bv32);havoc #t~ret5.base, #t~ret5.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {1974#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:17,079 INFO L280 TraceCheckUtils]: 14: Hoare triple {1974#(not (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {1974#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:17,080 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1974#(not (= (_ bv0 32) |nondet_tree_#res.base|))} {1929#true} #159#return; {1981#(not (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|))} is VALID [2020-07-28 18:26:17,086 INFO L280 TraceCheckUtils]: 16: Hoare triple {1981#(not (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|))} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {1985#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:17,086 INFO L263 TraceCheckUtils]: 17: Hoare triple {1985#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {1929#true} is VALID [2020-07-28 18:26:17,088 INFO L280 TraceCheckUtils]: 18: Hoare triple {1929#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1992#(= |min_#in~n.base| min_~n.base)} is VALID [2020-07-28 18:26:17,088 INFO L280 TraceCheckUtils]: 19: Hoare triple {1992#(= |min_#in~n.base| min_~n.base)} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {1996#(= |min_#in~n.base| (_ bv0 32))} is VALID [2020-07-28 18:26:17,089 INFO L280 TraceCheckUtils]: 20: Hoare triple {1996#(= |min_#in~n.base| (_ bv0 32))} assume true; {1996#(= |min_#in~n.base| (_ bv0 32))} is VALID [2020-07-28 18:26:17,090 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {1996#(= |min_#in~n.base| (_ bv0 32))} {1985#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #161#return; {1930#false} is VALID [2020-07-28 18:26:17,090 INFO L280 TraceCheckUtils]: 22: Hoare triple {1930#false} task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {1930#false} is VALID [2020-07-28 18:26:17,090 INFO L263 TraceCheckUtils]: 23: Hoare triple {1930#false} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {1930#false} is VALID [2020-07-28 18:26:17,091 INFO L280 TraceCheckUtils]: 24: Hoare triple {1930#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1930#false} is VALID [2020-07-28 18:26:17,091 INFO L280 TraceCheckUtils]: 25: Hoare triple {1930#false} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {1930#false} is VALID [2020-07-28 18:26:17,091 INFO L263 TraceCheckUtils]: 26: Hoare triple {1930#false} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {1930#false} is VALID [2020-07-28 18:26:17,091 INFO L280 TraceCheckUtils]: 27: Hoare triple {1930#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1930#false} is VALID [2020-07-28 18:26:17,091 INFO L280 TraceCheckUtils]: 28: Hoare triple {1930#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1930#false} is VALID [2020-07-28 18:26:17,092 INFO L280 TraceCheckUtils]: 29: Hoare triple {1930#false} assume true; {1930#false} is VALID [2020-07-28 18:26:17,092 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1930#false} {1930#false} #151#return; {1930#false} is VALID [2020-07-28 18:26:17,092 INFO L280 TraceCheckUtils]: 31: Hoare triple {1930#false} call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {1930#false} is VALID [2020-07-28 18:26:17,092 INFO L263 TraceCheckUtils]: 32: Hoare triple {1930#false} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {1930#false} is VALID [2020-07-28 18:26:17,092 INFO L280 TraceCheckUtils]: 33: Hoare triple {1930#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1930#false} is VALID [2020-07-28 18:26:17,092 INFO L280 TraceCheckUtils]: 34: Hoare triple {1930#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1930#false} is VALID [2020-07-28 18:26:17,093 INFO L280 TraceCheckUtils]: 35: Hoare triple {1930#false} assume true; {1930#false} is VALID [2020-07-28 18:26:17,093 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {1930#false} {1930#false} #153#return; {1930#false} is VALID [2020-07-28 18:26:17,093 INFO L280 TraceCheckUtils]: 37: Hoare triple {1930#false} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret24, #t~ret26));havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24;havoc #t~ret26;havoc #t~mem25.base, #t~mem25.offset; {1930#false} is VALID [2020-07-28 18:26:17,093 INFO L280 TraceCheckUtils]: 38: Hoare triple {1930#false} assume true; {1930#false} is VALID [2020-07-28 18:26:17,093 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1930#false} {1930#false} #163#return; {1930#false} is VALID [2020-07-28 18:26:17,093 INFO L280 TraceCheckUtils]: 40: Hoare triple {1930#false} task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {1930#false} is VALID [2020-07-28 18:26:17,094 INFO L280 TraceCheckUtils]: 41: Hoare triple {1930#false} assume !(0bv32 == assume_abort_if_not_~cond); {1930#false} is VALID [2020-07-28 18:26:17,094 INFO L280 TraceCheckUtils]: 42: Hoare triple {1930#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1));#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {1930#false} is VALID [2020-07-28 18:26:17,094 INFO L280 TraceCheckUtils]: 43: Hoare triple {1930#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {1930#false} is VALID [2020-07-28 18:26:17,094 INFO L263 TraceCheckUtils]: 44: Hoare triple {1930#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1930#false} is VALID [2020-07-28 18:26:17,095 INFO L280 TraceCheckUtils]: 45: Hoare triple {1930#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {1930#false} is VALID [2020-07-28 18:26:17,095 INFO L280 TraceCheckUtils]: 46: Hoare triple {1930#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {1930#false} is VALID [2020-07-28 18:26:17,095 INFO L280 TraceCheckUtils]: 47: Hoare triple {1930#false} assume true; {1930#false} is VALID [2020-07-28 18:26:17,095 INFO L275 TraceCheckUtils]: 48: Hoare quadruple {1930#false} {1930#false} #165#return; {1930#false} is VALID [2020-07-28 18:26:17,095 INFO L280 TraceCheckUtils]: 49: Hoare triple {1930#false} havoc task_#t~ret30;call task_#t~mem31 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {1930#false} is VALID [2020-07-28 18:26:17,096 INFO L280 TraceCheckUtils]: 50: Hoare triple {1930#false} assume 0bv32 == __VERIFIER_assert_~cond; {1930#false} is VALID [2020-07-28 18:26:17,096 INFO L280 TraceCheckUtils]: 51: Hoare triple {1930#false} assume !false; {1930#false} is VALID [2020-07-28 18:26:17,098 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2020-07-28 18:26:17,098 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2020-07-28 18:26:17,353 INFO L280 TraceCheckUtils]: 51: Hoare triple {1930#false} assume !false; {1930#false} is VALID [2020-07-28 18:26:17,354 INFO L280 TraceCheckUtils]: 50: Hoare triple {1930#false} assume 0bv32 == __VERIFIER_assert_~cond; {1930#false} is VALID [2020-07-28 18:26:17,354 INFO L280 TraceCheckUtils]: 49: Hoare triple {1930#false} havoc task_#t~ret30;call task_#t~mem31 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {1930#false} is VALID [2020-07-28 18:26:17,355 INFO L275 TraceCheckUtils]: 48: Hoare quadruple {1929#true} {1930#false} #165#return; {1930#false} is VALID [2020-07-28 18:26:17,355 INFO L280 TraceCheckUtils]: 47: Hoare triple {1929#true} assume true; {1929#true} is VALID [2020-07-28 18:26:17,355 INFO L280 TraceCheckUtils]: 46: Hoare triple {1929#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {1929#true} is VALID [2020-07-28 18:26:17,356 INFO L280 TraceCheckUtils]: 45: Hoare triple {1929#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {1929#true} is VALID [2020-07-28 18:26:17,356 INFO L263 TraceCheckUtils]: 44: Hoare triple {1930#false} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1929#true} is VALID [2020-07-28 18:26:17,356 INFO L280 TraceCheckUtils]: 43: Hoare triple {1930#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {1930#false} is VALID [2020-07-28 18:26:17,356 INFO L280 TraceCheckUtils]: 42: Hoare triple {1930#false} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1));#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {1930#false} is VALID [2020-07-28 18:26:17,356 INFO L280 TraceCheckUtils]: 41: Hoare triple {1930#false} assume !(0bv32 == assume_abort_if_not_~cond); {1930#false} is VALID [2020-07-28 18:26:17,357 INFO L280 TraceCheckUtils]: 40: Hoare triple {1930#false} task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {1930#false} is VALID [2020-07-28 18:26:17,357 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1929#true} {1930#false} #163#return; {1930#false} is VALID [2020-07-28 18:26:17,357 INFO L280 TraceCheckUtils]: 38: Hoare triple {1929#true} assume true; {1929#true} is VALID [2020-07-28 18:26:17,357 INFO L280 TraceCheckUtils]: 37: Hoare triple {1929#true} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret24, #t~ret26));havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24;havoc #t~ret26;havoc #t~mem25.base, #t~mem25.offset; {1929#true} is VALID [2020-07-28 18:26:17,357 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {1929#true} {1929#true} #153#return; {1929#true} is VALID [2020-07-28 18:26:17,358 INFO L280 TraceCheckUtils]: 35: Hoare triple {1929#true} assume true; {1929#true} is VALID [2020-07-28 18:26:17,358 INFO L280 TraceCheckUtils]: 34: Hoare triple {1929#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1929#true} is VALID [2020-07-28 18:26:17,358 INFO L280 TraceCheckUtils]: 33: Hoare triple {1929#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1929#true} is VALID [2020-07-28 18:26:17,358 INFO L263 TraceCheckUtils]: 32: Hoare triple {1929#true} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {1929#true} is VALID [2020-07-28 18:26:17,358 INFO L280 TraceCheckUtils]: 31: Hoare triple {1929#true} call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {1929#true} is VALID [2020-07-28 18:26:17,359 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1929#true} {1929#true} #151#return; {1929#true} is VALID [2020-07-28 18:26:17,359 INFO L280 TraceCheckUtils]: 29: Hoare triple {1929#true} assume true; {1929#true} is VALID [2020-07-28 18:26:17,359 INFO L280 TraceCheckUtils]: 28: Hoare triple {1929#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1929#true} is VALID [2020-07-28 18:26:17,360 INFO L280 TraceCheckUtils]: 27: Hoare triple {1929#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1929#true} is VALID [2020-07-28 18:26:17,360 INFO L263 TraceCheckUtils]: 26: Hoare triple {1929#true} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {1929#true} is VALID [2020-07-28 18:26:17,360 INFO L280 TraceCheckUtils]: 25: Hoare triple {1929#true} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {1929#true} is VALID [2020-07-28 18:26:17,360 INFO L280 TraceCheckUtils]: 24: Hoare triple {1929#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1929#true} is VALID [2020-07-28 18:26:17,361 INFO L263 TraceCheckUtils]: 23: Hoare triple {1930#false} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {1929#true} is VALID [2020-07-28 18:26:17,361 INFO L280 TraceCheckUtils]: 22: Hoare triple {1930#false} task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {1930#false} is VALID [2020-07-28 18:26:17,362 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {1996#(= |min_#in~n.base| (_ bv0 32))} {1985#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #161#return; {1930#false} is VALID [2020-07-28 18:26:17,363 INFO L280 TraceCheckUtils]: 20: Hoare triple {1996#(= |min_#in~n.base| (_ bv0 32))} assume true; {1996#(= |min_#in~n.base| (_ bv0 32))} is VALID [2020-07-28 18:26:17,363 INFO L280 TraceCheckUtils]: 19: Hoare triple {2192#(or (not (= (_ bv0 32) min_~n.base)) (= |min_#in~n.base| (_ bv0 32)))} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {1996#(= |min_#in~n.base| (_ bv0 32))} is VALID [2020-07-28 18:26:17,364 INFO L280 TraceCheckUtils]: 18: Hoare triple {1929#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2192#(or (not (= (_ bv0 32) min_~n.base)) (= |min_#in~n.base| (_ bv0 32)))} is VALID [2020-07-28 18:26:17,364 INFO L263 TraceCheckUtils]: 17: Hoare triple {1985#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {1929#true} is VALID [2020-07-28 18:26:17,365 INFO L280 TraceCheckUtils]: 16: Hoare triple {1981#(not (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|))} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {1985#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:17,366 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1974#(not (= (_ bv0 32) |nondet_tree_#res.base|))} {1929#true} #159#return; {1981#(not (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|))} is VALID [2020-07-28 18:26:17,366 INFO L280 TraceCheckUtils]: 14: Hoare triple {1974#(not (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {1974#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:17,367 INFO L280 TraceCheckUtils]: 13: Hoare triple {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret5.base, #t~ret5.offset, ~n~0.base, ~bvadd32(8bv32, ~n~0.offset), 4bv32);havoc #t~ret5.base, #t~ret5.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {1974#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:17,368 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1929#true} {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #157#return; {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:17,369 INFO L280 TraceCheckUtils]: 11: Hoare triple {1929#true} assume true; {1929#true} is VALID [2020-07-28 18:26:17,369 INFO L280 TraceCheckUtils]: 10: Hoare triple {1929#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {1929#true} is VALID [2020-07-28 18:26:17,369 INFO L263 TraceCheckUtils]: 9: Hoare triple {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1929#true} is VALID [2020-07-28 18:26:17,370 INFO L280 TraceCheckUtils]: 8: Hoare triple {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, ~bvadd32(4bv32, ~n~0.offset), 4bv32);havoc #t~ret4.base, #t~ret4.offset; {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:17,370 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1929#true} {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #155#return; {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:17,371 INFO L280 TraceCheckUtils]: 6: Hoare triple {1929#true} assume true; {1929#true} is VALID [2020-07-28 18:26:17,371 INFO L280 TraceCheckUtils]: 5: Hoare triple {1929#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {1929#true} is VALID [2020-07-28 18:26:17,371 INFO L263 TraceCheckUtils]: 4: Hoare triple {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1929#true} is VALID [2020-07-28 18:26:17,379 INFO L280 TraceCheckUtils]: 3: Hoare triple {1929#true} assume !(0bv8 != #t~nondet1);havoc #t~nondet1;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.allocOnHeap(12bv32);~n~0.base, ~n~0.offset := #t~malloc2.base, #t~malloc2.offset;call write~intINTTYPE4(#t~nondet3, ~n~0.base, ~n~0.offset, 4bv32);havoc #t~nondet3; {1943#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:17,379 INFO L263 TraceCheckUtils]: 2: Hoare triple {1929#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {1929#true} is VALID [2020-07-28 18:26:17,379 INFO L280 TraceCheckUtils]: 1: Hoare triple {1929#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {1929#true} is VALID [2020-07-28 18:26:17,380 INFO L280 TraceCheckUtils]: 0: Hoare triple {1929#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {1929#true} is VALID [2020-07-28 18:26:17,382 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2020-07-28 18:26:17,383 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [555241001] [2020-07-28 18:26:17,383 INFO L220 FreeRefinementEngine]: Constructing automaton from 2 perfect and 0 imperfect interpolant sequences. [2020-07-28 18:26:17,383 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8, 8] imperfect sequences [] total 9 [2020-07-28 18:26:17,384 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [522189779] [2020-07-28 18:26:17,385 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 52 [2020-07-28 18:26:17,385 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 18:26:17,385 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2020-07-28 18:26:17,484 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:17,485 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2020-07-28 18:26:17,485 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2020-07-28 18:26:17,485 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2020-07-28 18:26:17,486 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=55, Unknown=0, NotChecked=0, Total=72 [2020-07-28 18:26:17,486 INFO L87 Difference]: Start difference. First operand 77 states and 97 transitions. Second operand 9 states. [2020-07-28 18:26:18,660 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:18,661 INFO L93 Difference]: Finished difference Result 133 states and 167 transitions. [2020-07-28 18:26:18,661 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2020-07-28 18:26:18,661 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 52 [2020-07-28 18:26:18,662 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 18:26:18,662 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-28 18:26:18,666 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 159 transitions. [2020-07-28 18:26:18,666 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-28 18:26:18,670 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 159 transitions. [2020-07-28 18:26:18,670 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 159 transitions. [2020-07-28 18:26:18,912 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 159 edges. 159 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:18,916 INFO L225 Difference]: With dead ends: 133 [2020-07-28 18:26:18,916 INFO L226 Difference]: Without dead ends: 79 [2020-07-28 18:26:18,917 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 106 GetRequests, 96 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 3 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=30, Invalid=102, Unknown=0, NotChecked=0, Total=132 [2020-07-28 18:26:18,918 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 79 states. [2020-07-28 18:26:18,963 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 79 to 79. [2020-07-28 18:26:18,963 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 18:26:18,963 INFO L82 GeneralOperation]: Start isEquivalent. First operand 79 states. Second operand 79 states. [2020-07-28 18:26:18,964 INFO L74 IsIncluded]: Start isIncluded. First operand 79 states. Second operand 79 states. [2020-07-28 18:26:18,964 INFO L87 Difference]: Start difference. First operand 79 states. Second operand 79 states. [2020-07-28 18:26:18,968 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:18,968 INFO L93 Difference]: Finished difference Result 79 states and 100 transitions. [2020-07-28 18:26:18,968 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 100 transitions. [2020-07-28 18:26:18,969 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:18,969 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:18,969 INFO L74 IsIncluded]: Start isIncluded. First operand 79 states. Second operand 79 states. [2020-07-28 18:26:18,970 INFO L87 Difference]: Start difference. First operand 79 states. Second operand 79 states. [2020-07-28 18:26:18,974 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:18,974 INFO L93 Difference]: Finished difference Result 79 states and 100 transitions. [2020-07-28 18:26:18,974 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 100 transitions. [2020-07-28 18:26:18,975 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:18,975 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:18,975 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 18:26:18,975 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 18:26:18,976 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 79 states. [2020-07-28 18:26:18,979 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 79 states to 79 states and 100 transitions. [2020-07-28 18:26:18,980 INFO L78 Accepts]: Start accepts. Automaton has 79 states and 100 transitions. Word has length 52 [2020-07-28 18:26:18,980 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 18:26:18,980 INFO L479 AbstractCegarLoop]: Abstraction has 79 states and 100 transitions. [2020-07-28 18:26:18,980 INFO L480 AbstractCegarLoop]: Interpolant automaton has 9 states. [2020-07-28 18:26:18,980 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 100 transitions. [2020-07-28 18:26:18,981 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 66 [2020-07-28 18:26:18,981 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:26:18,981 INFO L422 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] [2020-07-28 18:26:19,193 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 5 mathsat -unsat_core_generation=3 [2020-07-28 18:26:19,194 INFO L427 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:26:19,195 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:26:19,195 INFO L82 PathProgramCache]: Analyzing trace with hash 940517035, now seen corresponding path program 1 times [2020-07-28 18:26:19,196 INFO L163 FreeRefinementEngine]: Executing refinement strategy WOLF [2020-07-28 18:26:19,196 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1347562215] [2020-07-28 18:26:19,197 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat Starting monitored process 6 with mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with mathsat -unsat_core_generation=3 [2020-07-28 18:26:19,283 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:19,288 INFO L263 TraceCheckSpWp]: Trace formula consists of 205 conjuncts, 9 conjunts are in the unsatisfiable core [2020-07-28 18:26:19,314 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 18:26:19,316 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 18:26:19,456 INFO L280 TraceCheckUtils]: 0: Hoare triple {2678#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {2678#true} is VALID [2020-07-28 18:26:19,456 INFO L280 TraceCheckUtils]: 1: Hoare triple {2678#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {2678#true} is VALID [2020-07-28 18:26:19,456 INFO L263 TraceCheckUtils]: 2: Hoare triple {2678#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {2678#true} is VALID [2020-07-28 18:26:19,458 INFO L280 TraceCheckUtils]: 3: Hoare triple {2678#true} assume !(0bv8 != #t~nondet1);havoc #t~nondet1;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.allocOnHeap(12bv32);~n~0.base, ~n~0.offset := #t~malloc2.base, #t~malloc2.offset;call write~intINTTYPE4(#t~nondet3, ~n~0.base, ~n~0.offset, 4bv32);havoc #t~nondet3; {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:19,458 INFO L263 TraceCheckUtils]: 4: Hoare triple {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {2678#true} is VALID [2020-07-28 18:26:19,458 INFO L280 TraceCheckUtils]: 5: Hoare triple {2678#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {2678#true} is VALID [2020-07-28 18:26:19,458 INFO L280 TraceCheckUtils]: 6: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,459 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2678#true} {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #155#return; {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:19,460 INFO L280 TraceCheckUtils]: 8: Hoare triple {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, ~bvadd32(4bv32, ~n~0.offset), 4bv32);havoc #t~ret4.base, #t~ret4.offset; {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:19,460 INFO L263 TraceCheckUtils]: 9: Hoare triple {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {2678#true} is VALID [2020-07-28 18:26:19,460 INFO L280 TraceCheckUtils]: 10: Hoare triple {2678#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {2678#true} is VALID [2020-07-28 18:26:19,461 INFO L280 TraceCheckUtils]: 11: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,462 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {2678#true} {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #157#return; {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:19,463 INFO L280 TraceCheckUtils]: 13: Hoare triple {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret5.base, #t~ret5.offset, ~n~0.base, ~bvadd32(8bv32, ~n~0.offset), 4bv32);havoc #t~ret5.base, #t~ret5.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {2723#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:19,463 INFO L280 TraceCheckUtils]: 14: Hoare triple {2723#(not (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {2723#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:19,464 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {2723#(not (= (_ bv0 32) |nondet_tree_#res.base|))} {2678#true} #159#return; {2730#(not (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|))} is VALID [2020-07-28 18:26:19,465 INFO L280 TraceCheckUtils]: 16: Hoare triple {2730#(not (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|))} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,465 INFO L263 TraceCheckUtils]: 17: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {2678#true} is VALID [2020-07-28 18:26:19,465 INFO L280 TraceCheckUtils]: 18: Hoare triple {2678#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2678#true} is VALID [2020-07-28 18:26:19,465 INFO L280 TraceCheckUtils]: 19: Hoare triple {2678#true} assume !(~n.base == 0bv32 && ~n.offset == 0bv32);call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~n.base, ~bvadd32(4bv32, ~n.offset), 4bv32); {2678#true} is VALID [2020-07-28 18:26:19,466 INFO L263 TraceCheckUtils]: 20: Hoare triple {2678#true} call #t~ret7 := min(#t~mem6.base, #t~mem6.offset); {2678#true} is VALID [2020-07-28 18:26:19,466 INFO L280 TraceCheckUtils]: 21: Hoare triple {2678#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2678#true} is VALID [2020-07-28 18:26:19,466 INFO L280 TraceCheckUtils]: 22: Hoare triple {2678#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {2678#true} is VALID [2020-07-28 18:26:19,466 INFO L280 TraceCheckUtils]: 23: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,467 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {2678#true} {2678#true} #147#return; {2678#true} is VALID [2020-07-28 18:26:19,467 INFO L280 TraceCheckUtils]: 25: Hoare triple {2678#true} ~a~0 := #t~ret7;havoc #t~mem6.base, #t~mem6.offset;havoc #t~ret7;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~n.base, ~bvadd32(8bv32, ~n.offset), 4bv32); {2678#true} is VALID [2020-07-28 18:26:19,467 INFO L263 TraceCheckUtils]: 26: Hoare triple {2678#true} call #t~ret9 := min(#t~mem8.base, #t~mem8.offset); {2678#true} is VALID [2020-07-28 18:26:19,467 INFO L280 TraceCheckUtils]: 27: Hoare triple {2678#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2678#true} is VALID [2020-07-28 18:26:19,467 INFO L280 TraceCheckUtils]: 28: Hoare triple {2678#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {2678#true} is VALID [2020-07-28 18:26:19,468 INFO L280 TraceCheckUtils]: 29: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,468 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2678#true} {2678#true} #149#return; {2678#true} is VALID [2020-07-28 18:26:19,468 INFO L280 TraceCheckUtils]: 31: Hoare triple {2678#true} ~b~0 := #t~ret9;havoc #t~mem8.base, #t~mem8.offset;havoc #t~ret9; {2678#true} is VALID [2020-07-28 18:26:19,469 INFO L280 TraceCheckUtils]: 32: Hoare triple {2678#true} assume ~bvsle32(~a~0, ~b~0);#res := ~a~0; {2678#true} is VALID [2020-07-28 18:26:19,469 INFO L280 TraceCheckUtils]: 33: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,470 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {2678#true} {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #161#return; {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,471 INFO L280 TraceCheckUtils]: 35: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,471 INFO L263 TraceCheckUtils]: 36: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {2678#true} is VALID [2020-07-28 18:26:19,471 INFO L280 TraceCheckUtils]: 37: Hoare triple {2678#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2678#true} is VALID [2020-07-28 18:26:19,472 INFO L280 TraceCheckUtils]: 38: Hoare triple {2678#true} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {2678#true} is VALID [2020-07-28 18:26:19,472 INFO L263 TraceCheckUtils]: 39: Hoare triple {2678#true} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {2678#true} is VALID [2020-07-28 18:26:19,472 INFO L280 TraceCheckUtils]: 40: Hoare triple {2678#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2678#true} is VALID [2020-07-28 18:26:19,472 INFO L280 TraceCheckUtils]: 41: Hoare triple {2678#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {2678#true} is VALID [2020-07-28 18:26:19,472 INFO L280 TraceCheckUtils]: 42: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,473 INFO L275 TraceCheckUtils]: 43: Hoare quadruple {2678#true} {2678#true} #151#return; {2678#true} is VALID [2020-07-28 18:26:19,473 INFO L280 TraceCheckUtils]: 44: Hoare triple {2678#true} call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {2678#true} is VALID [2020-07-28 18:26:19,473 INFO L263 TraceCheckUtils]: 45: Hoare triple {2678#true} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {2678#true} is VALID [2020-07-28 18:26:19,473 INFO L280 TraceCheckUtils]: 46: Hoare triple {2678#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2678#true} is VALID [2020-07-28 18:26:19,474 INFO L280 TraceCheckUtils]: 47: Hoare triple {2678#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {2678#true} is VALID [2020-07-28 18:26:19,474 INFO L280 TraceCheckUtils]: 48: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,474 INFO L275 TraceCheckUtils]: 49: Hoare quadruple {2678#true} {2678#true} #153#return; {2678#true} is VALID [2020-07-28 18:26:19,474 INFO L280 TraceCheckUtils]: 50: Hoare triple {2678#true} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret24, #t~ret26));havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24;havoc #t~ret26;havoc #t~mem25.base, #t~mem25.offset; {2678#true} is VALID [2020-07-28 18:26:19,474 INFO L280 TraceCheckUtils]: 51: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,476 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {2678#true} {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #163#return; {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,476 INFO L280 TraceCheckUtils]: 53: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,477 INFO L280 TraceCheckUtils]: 54: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} assume !(0bv32 == assume_abort_if_not_~cond); {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,477 INFO L280 TraceCheckUtils]: 55: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1));#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,478 INFO L280 TraceCheckUtils]: 56: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,478 INFO L263 TraceCheckUtils]: 57: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {2678#true} is VALID [2020-07-28 18:26:19,479 INFO L280 TraceCheckUtils]: 58: Hoare triple {2678#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {2861#(= tree_inorder_~t.base |tree_inorder_#in~t.base|)} is VALID [2020-07-28 18:26:19,479 INFO L280 TraceCheckUtils]: 59: Hoare triple {2861#(= tree_inorder_~t.base |tree_inorder_#in~t.base|)} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {2865#(= (_ bv0 32) |tree_inorder_#in~t.base|)} is VALID [2020-07-28 18:26:19,480 INFO L280 TraceCheckUtils]: 60: Hoare triple {2865#(= (_ bv0 32) |tree_inorder_#in~t.base|)} assume true; {2865#(= (_ bv0 32) |tree_inorder_#in~t.base|)} is VALID [2020-07-28 18:26:19,481 INFO L275 TraceCheckUtils]: 61: Hoare quadruple {2865#(= (_ bv0 32) |tree_inorder_#in~t.base|)} {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #165#return; {2679#false} is VALID [2020-07-28 18:26:19,481 INFO L280 TraceCheckUtils]: 62: Hoare triple {2679#false} havoc task_#t~ret30;call task_#t~mem31 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {2679#false} is VALID [2020-07-28 18:26:19,481 INFO L280 TraceCheckUtils]: 63: Hoare triple {2679#false} assume 0bv32 == __VERIFIER_assert_~cond; {2679#false} is VALID [2020-07-28 18:26:19,481 INFO L280 TraceCheckUtils]: 64: Hoare triple {2679#false} assume !false; {2679#false} is VALID [2020-07-28 18:26:19,484 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 29 trivial. 0 not checked. [2020-07-28 18:26:19,484 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2020-07-28 18:26:19,762 INFO L280 TraceCheckUtils]: 64: Hoare triple {2679#false} assume !false; {2679#false} is VALID [2020-07-28 18:26:19,762 INFO L280 TraceCheckUtils]: 63: Hoare triple {2679#false} assume 0bv32 == __VERIFIER_assert_~cond; {2679#false} is VALID [2020-07-28 18:26:19,762 INFO L280 TraceCheckUtils]: 62: Hoare triple {2679#false} havoc task_#t~ret30;call task_#t~mem31 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem31 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {2679#false} is VALID [2020-07-28 18:26:19,764 INFO L275 TraceCheckUtils]: 61: Hoare quadruple {2865#(= (_ bv0 32) |tree_inorder_#in~t.base|)} {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #165#return; {2679#false} is VALID [2020-07-28 18:26:19,764 INFO L280 TraceCheckUtils]: 60: Hoare triple {2865#(= (_ bv0 32) |tree_inorder_#in~t.base|)} assume true; {2865#(= (_ bv0 32) |tree_inorder_#in~t.base|)} is VALID [2020-07-28 18:26:19,765 INFO L280 TraceCheckUtils]: 59: Hoare triple {2899#(or (not (= tree_inorder_~t.base (_ bv0 32))) (= (_ bv0 32) |tree_inorder_#in~t.base|))} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {2865#(= (_ bv0 32) |tree_inorder_#in~t.base|)} is VALID [2020-07-28 18:26:19,766 INFO L280 TraceCheckUtils]: 58: Hoare triple {2678#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {2899#(or (not (= tree_inorder_~t.base (_ bv0 32))) (= (_ bv0 32) |tree_inorder_#in~t.base|))} is VALID [2020-07-28 18:26:19,766 INFO L263 TraceCheckUtils]: 57: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret30 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {2678#true} is VALID [2020-07-28 18:26:19,769 INFO L280 TraceCheckUtils]: 56: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~x~0.base, task_~x~0.offset := task_#t~malloc29.base, task_#t~malloc29.offset; {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,770 INFO L280 TraceCheckUtils]: 55: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~malloc29.base, task_#t~malloc29.offset := #Ultimate.allocOnHeap(~bvmul32(4bv32, task_~n~1));#Ultimate.meminit_#ptr.base, #Ultimate.meminit_#ptr.offset, #Ultimate.meminit_#amountOfFields, #Ultimate.meminit_#sizeOfFields, #Ultimate.meminit_#product := task_#t~malloc29.base, task_#t~malloc29.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,772 INFO L280 TraceCheckUtils]: 54: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} assume !(0bv32 == assume_abort_if_not_~cond); {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,775 INFO L280 TraceCheckUtils]: 53: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~n~1 := task_#t~ret28;havoc task_#t~ret28;assume_abort_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_abort_if_not_~cond;assume_abort_if_not_~cond := assume_abort_if_not_#in~cond; {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,779 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {2678#true} {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #163#return; {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,780 INFO L280 TraceCheckUtils]: 51: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,780 INFO L280 TraceCheckUtils]: 50: Hoare triple {2678#true} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret24, #t~ret26));havoc #t~mem23.base, #t~mem23.offset;havoc #t~ret24;havoc #t~ret26;havoc #t~mem25.base, #t~mem25.offset; {2678#true} is VALID [2020-07-28 18:26:19,780 INFO L275 TraceCheckUtils]: 49: Hoare quadruple {2678#true} {2678#true} #153#return; {2678#true} is VALID [2020-07-28 18:26:19,780 INFO L280 TraceCheckUtils]: 48: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,781 INFO L280 TraceCheckUtils]: 47: Hoare triple {2678#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {2678#true} is VALID [2020-07-28 18:26:19,781 INFO L280 TraceCheckUtils]: 46: Hoare triple {2678#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2678#true} is VALID [2020-07-28 18:26:19,781 INFO L263 TraceCheckUtils]: 45: Hoare triple {2678#true} call #t~ret26 := size(#t~mem25.base, #t~mem25.offset); {2678#true} is VALID [2020-07-28 18:26:19,782 INFO L280 TraceCheckUtils]: 44: Hoare triple {2678#true} call #t~mem25.base, #t~mem25.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {2678#true} is VALID [2020-07-28 18:26:19,782 INFO L275 TraceCheckUtils]: 43: Hoare quadruple {2678#true} {2678#true} #151#return; {2678#true} is VALID [2020-07-28 18:26:19,782 INFO L280 TraceCheckUtils]: 42: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,782 INFO L280 TraceCheckUtils]: 41: Hoare triple {2678#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {2678#true} is VALID [2020-07-28 18:26:19,782 INFO L280 TraceCheckUtils]: 40: Hoare triple {2678#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2678#true} is VALID [2020-07-28 18:26:19,782 INFO L263 TraceCheckUtils]: 39: Hoare triple {2678#true} call #t~ret24 := size(#t~mem23.base, #t~mem23.offset); {2678#true} is VALID [2020-07-28 18:26:19,783 INFO L280 TraceCheckUtils]: 38: Hoare triple {2678#true} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem23.base, #t~mem23.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {2678#true} is VALID [2020-07-28 18:26:19,783 INFO L280 TraceCheckUtils]: 37: Hoare triple {2678#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2678#true} is VALID [2020-07-28 18:26:19,783 INFO L263 TraceCheckUtils]: 36: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret28 := size(task_~t.base, task_~t.offset); {2678#true} is VALID [2020-07-28 18:26:19,783 INFO L280 TraceCheckUtils]: 35: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~a~1 := task_#t~ret27;havoc task_#t~ret27;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,784 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {2678#true} {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #161#return; {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,784 INFO L280 TraceCheckUtils]: 33: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,785 INFO L280 TraceCheckUtils]: 32: Hoare triple {2678#true} assume ~bvsle32(~a~0, ~b~0);#res := ~a~0; {2678#true} is VALID [2020-07-28 18:26:19,785 INFO L280 TraceCheckUtils]: 31: Hoare triple {2678#true} ~b~0 := #t~ret9;havoc #t~mem8.base, #t~mem8.offset;havoc #t~ret9; {2678#true} is VALID [2020-07-28 18:26:19,785 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2678#true} {2678#true} #149#return; {2678#true} is VALID [2020-07-28 18:26:19,785 INFO L280 TraceCheckUtils]: 29: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,785 INFO L280 TraceCheckUtils]: 28: Hoare triple {2678#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {2678#true} is VALID [2020-07-28 18:26:19,785 INFO L280 TraceCheckUtils]: 27: Hoare triple {2678#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2678#true} is VALID [2020-07-28 18:26:19,785 INFO L263 TraceCheckUtils]: 26: Hoare triple {2678#true} call #t~ret9 := min(#t~mem8.base, #t~mem8.offset); {2678#true} is VALID [2020-07-28 18:26:19,786 INFO L280 TraceCheckUtils]: 25: Hoare triple {2678#true} ~a~0 := #t~ret7;havoc #t~mem6.base, #t~mem6.offset;havoc #t~ret7;call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~n.base, ~bvadd32(8bv32, ~n.offset), 4bv32); {2678#true} is VALID [2020-07-28 18:26:19,786 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {2678#true} {2678#true} #147#return; {2678#true} is VALID [2020-07-28 18:26:19,786 INFO L280 TraceCheckUtils]: 23: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,786 INFO L280 TraceCheckUtils]: 22: Hoare triple {2678#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {2678#true} is VALID [2020-07-28 18:26:19,786 INFO L280 TraceCheckUtils]: 21: Hoare triple {2678#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2678#true} is VALID [2020-07-28 18:26:19,786 INFO L263 TraceCheckUtils]: 20: Hoare triple {2678#true} call #t~ret7 := min(#t~mem6.base, #t~mem6.offset); {2678#true} is VALID [2020-07-28 18:26:19,787 INFO L280 TraceCheckUtils]: 19: Hoare triple {2678#true} assume !(~n.base == 0bv32 && ~n.offset == 0bv32);call #t~mem6.base, #t~mem6.offset := read~$Pointer$(~n.base, ~bvadd32(4bv32, ~n.offset), 4bv32); {2678#true} is VALID [2020-07-28 18:26:19,787 INFO L280 TraceCheckUtils]: 18: Hoare triple {2678#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2678#true} is VALID [2020-07-28 18:26:19,787 INFO L263 TraceCheckUtils]: 17: Hoare triple {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret27 := min(task_~t.base, task_~t.offset); {2678#true} is VALID [2020-07-28 18:26:19,788 INFO L280 TraceCheckUtils]: 16: Hoare triple {2730#(not (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|))} task_#in~t.base, task_#in~t.offset := main_#t~ret40.base, main_#t~ret40.offset;havoc task_#t~ret27, task_#t~ret28, task_#t~malloc29.base, task_#t~malloc29.offset, task_#t~ret30, task_#t~mem31, task_#t~ret32.base, task_#t~ret32.offset, task_#t~mem33, task_#t~ret34, task_#t~malloc35.base, task_#t~malloc35.offset, task_#t~ret36, task_#t~mem38, task_#t~mem39, task_#t~post37, task_~t.base, task_~t.offset, task_~a~1, task_~#b~1.base, task_~#b~1.offset, task_~n~1, task_~x~0.base, task_~x~0.offset, task_~r~0.base, task_~r~0.offset, task_~m~1, task_~y~0.base, task_~y~0.offset, task_~i~0;task_~t.base, task_~t.offset := task_#in~t.base, task_#in~t.offset; {2734#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 18:26:19,788 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {2723#(not (= (_ bv0 32) |nondet_tree_#res.base|))} {2678#true} #159#return; {2730#(not (= (_ bv0 32) |ULTIMATE.start_main_#t~ret40.base|))} is VALID [2020-07-28 18:26:19,789 INFO L280 TraceCheckUtils]: 14: Hoare triple {2723#(not (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {2723#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:19,790 INFO L280 TraceCheckUtils]: 13: Hoare triple {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret5.base, #t~ret5.offset, ~n~0.base, ~bvadd32(8bv32, ~n~0.offset), 4bv32);havoc #t~ret5.base, #t~ret5.offset;#res.base, #res.offset := ~n~0.base, ~n~0.offset; {2723#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 18:26:19,790 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {2678#true} {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #157#return; {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:19,790 INFO L280 TraceCheckUtils]: 11: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,791 INFO L280 TraceCheckUtils]: 10: Hoare triple {2678#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {2678#true} is VALID [2020-07-28 18:26:19,791 INFO L263 TraceCheckUtils]: 9: Hoare triple {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {2678#true} is VALID [2020-07-28 18:26:19,791 INFO L280 TraceCheckUtils]: 8: Hoare triple {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, ~bvadd32(4bv32, ~n~0.offset), 4bv32);havoc #t~ret4.base, #t~ret4.offset; {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:19,792 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2678#true} {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #155#return; {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:19,792 INFO L280 TraceCheckUtils]: 6: Hoare triple {2678#true} assume true; {2678#true} is VALID [2020-07-28 18:26:19,793 INFO L280 TraceCheckUtils]: 5: Hoare triple {2678#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {2678#true} is VALID [2020-07-28 18:26:19,793 INFO L263 TraceCheckUtils]: 4: Hoare triple {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {2678#true} is VALID [2020-07-28 18:26:19,794 INFO L280 TraceCheckUtils]: 3: Hoare triple {2678#true} assume !(0bv8 != #t~nondet1);havoc #t~nondet1;call #t~malloc2.base, #t~malloc2.offset := #Ultimate.allocOnHeap(12bv32);~n~0.base, ~n~0.offset := #t~malloc2.base, #t~malloc2.offset;call write~intINTTYPE4(#t~nondet3, ~n~0.base, ~n~0.offset, 4bv32);havoc #t~nondet3; {2692#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 18:26:19,794 INFO L263 TraceCheckUtils]: 2: Hoare triple {2678#true} call main_#t~ret40.base, main_#t~ret40.offset := nondet_tree(); {2678#true} is VALID [2020-07-28 18:26:19,795 INFO L280 TraceCheckUtils]: 1: Hoare triple {2678#true} havoc main_#res;havoc main_#t~ret40.base, main_#t~ret40.offset; {2678#true} is VALID [2020-07-28 18:26:19,795 INFO L280 TraceCheckUtils]: 0: Hoare triple {2678#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {2678#true} is VALID [2020-07-28 18:26:19,798 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 29 trivial. 0 not checked. [2020-07-28 18:26:19,798 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1347562215] [2020-07-28 18:26:19,798 INFO L220 FreeRefinementEngine]: Constructing automaton from 2 perfect and 0 imperfect interpolant sequences. [2020-07-28 18:26:19,798 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8, 8] imperfect sequences [] total 9 [2020-07-28 18:26:19,799 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2057461489] [2020-07-28 18:26:19,799 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 65 [2020-07-28 18:26:19,800 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 18:26:19,800 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2020-07-28 18:26:19,884 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:19,884 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2020-07-28 18:26:19,884 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2020-07-28 18:26:19,885 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2020-07-28 18:26:19,885 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=55, Unknown=0, NotChecked=0, Total=72 [2020-07-28 18:26:19,885 INFO L87 Difference]: Start difference. First operand 79 states and 100 transitions. Second operand 9 states. [2020-07-28 18:26:21,254 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:21,254 INFO L93 Difference]: Finished difference Result 128 states and 162 transitions. [2020-07-28 18:26:21,254 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2020-07-28 18:26:21,254 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 65 [2020-07-28 18:26:21,255 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 18:26:21,255 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-28 18:26:21,259 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 151 transitions. [2020-07-28 18:26:21,260 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-28 18:26:21,264 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 151 transitions. [2020-07-28 18:26:21,264 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 151 transitions. [2020-07-28 18:26:21,504 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 151 edges. 151 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 18:26:21,507 INFO L225 Difference]: With dead ends: 128 [2020-07-28 18:26:21,508 INFO L226 Difference]: Without dead ends: 81 [2020-07-28 18:26:21,508 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 132 GetRequests, 122 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 3 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=30, Invalid=102, Unknown=0, NotChecked=0, Total=132 [2020-07-28 18:26:21,509 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 81 states. [2020-07-28 18:26:21,549 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 81 to 81. [2020-07-28 18:26:21,550 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 18:26:21,550 INFO L82 GeneralOperation]: Start isEquivalent. First operand 81 states. Second operand 81 states. [2020-07-28 18:26:21,550 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand 81 states. [2020-07-28 18:26:21,551 INFO L87 Difference]: Start difference. First operand 81 states. Second operand 81 states. [2020-07-28 18:26:21,555 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:21,556 INFO L93 Difference]: Finished difference Result 81 states and 104 transitions. [2020-07-28 18:26:21,556 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 104 transitions. [2020-07-28 18:26:21,557 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:21,557 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:21,557 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand 81 states. [2020-07-28 18:26:21,557 INFO L87 Difference]: Start difference. First operand 81 states. Second operand 81 states. [2020-07-28 18:26:21,561 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 18:26:21,561 INFO L93 Difference]: Finished difference Result 81 states and 104 transitions. [2020-07-28 18:26:21,562 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 104 transitions. [2020-07-28 18:26:21,562 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 18:26:21,562 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 18:26:21,562 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 18:26:21,563 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 18:26:21,563 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 81 states. [2020-07-28 18:26:21,567 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 104 transitions. [2020-07-28 18:26:21,567 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 104 transitions. Word has length 65 [2020-07-28 18:26:21,567 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 18:26:21,567 INFO L479 AbstractCegarLoop]: Abstraction has 81 states and 104 transitions. [2020-07-28 18:26:21,567 INFO L480 AbstractCegarLoop]: Interpolant automaton has 9 states. [2020-07-28 18:26:21,568 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 104 transitions. [2020-07-28 18:26:21,568 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 78 [2020-07-28 18:26:21,569 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 18:26:21,569 INFO L422 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] [2020-07-28 18:26:21,787 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 6 mathsat -unsat_core_generation=3 [2020-07-28 18:26:21,788 INFO L427 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 18:26:21,789 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 18:26:21,789 INFO L82 PathProgramCache]: Analyzing trace with hash -1231850882, now seen corresponding path program 1 times [2020-07-28 18:26:21,790 INFO L163 FreeRefinementEngine]: Executing refinement strategy WOLF [2020-07-28 18:26:21,790 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [466314379] [2020-07-28 18:26:21,790 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat Starting monitored process 7 with mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with mathsat -unsat_core_generation=3 [2020-07-28 18:26:21,937 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-28 18:26:21,937 INFO L221 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2020-07-28 18:26:22,048 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-28 18:26:22,048 INFO L221 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2020-07-28 18:26:22,135 INFO L174 FreeRefinementEngine]: Strategy WOLF found a feasible trace [2020-07-28 18:26:22,136 INFO L520 BasicCegarLoop]: Counterexample might be feasible [2020-07-28 18:26:22,350 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 7 mathsat -unsat_core_generation=3 [2020-07-28 18:26:22,377 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,378 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,379 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,379 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,384 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,384 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,385 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,385 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,385 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,386 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,386 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,387 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 18:26:22,410 FATAL L488 DefaultTranslator]: Callstack has procedure call flag but succeeding procedure is empty at [CALL] call #t~ret40 := nondet_tree(); [2020-07-28 18:26:22,417 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:216) 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:85) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportResult(TraceAbstractionStarter.java:693) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportCounterexampleResult(TraceAbstractionStarter.java:626) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportResults(TraceAbstractionStarter.java:525) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.iterateNew(TraceAbstractionStarter.java:383) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:175) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:127) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:120) 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:317) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) [2020-07-28 18:26:22,422 INFO L168 Benchmark]: Toolchain (without parser) took 13295.82 ms. Allocated memory was 1.0 GB in the beginning and 1.3 GB in the end (delta: 308.3 MB). Free memory was 961.6 MB in the beginning and 1.2 GB in the end (delta: -200.1 MB). Peak memory consumption was 108.2 MB. Max. memory is 11.5 GB. [2020-07-28 18:26:22,422 INFO L168 Benchmark]: CDTParser took 0.21 ms. Allocated memory is still 1.0 GB. Free memory is still 987.1 MB. There was no memory consumed. Max. memory is 11.5 GB. [2020-07-28 18:26:22,423 INFO L168 Benchmark]: CACSL2BoogieTranslator took 479.26 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 135.8 MB). Free memory was 961.6 MB in the beginning and 1.1 GB in the end (delta: -162.4 MB). Peak memory consumption was 21.8 MB. Max. memory is 11.5 GB. [2020-07-28 18:26:22,423 INFO L168 Benchmark]: Boogie Procedure Inliner took 61.91 ms. Allocated memory is still 1.2 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. [2020-07-28 18:26:22,424 INFO L168 Benchmark]: Boogie Preprocessor took 58.06 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 6.6 MB). Peak memory consumption was 6.6 MB. Max. memory is 11.5 GB. [2020-07-28 18:26:22,425 INFO L168 Benchmark]: RCFGBuilder took 911.17 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 58.2 MB). Peak memory consumption was 58.2 MB. Max. memory is 11.5 GB. [2020-07-28 18:26:22,425 INFO L168 Benchmark]: TraceAbstraction took 11777.53 ms. Allocated memory was 1.2 GB in the beginning and 1.3 GB in the end (delta: 172.5 MB). Free memory was 1.1 GB in the beginning and 1.2 GB in the end (delta: -102.4 MB). Peak memory consumption was 70.1 MB. Max. memory is 11.5 GB. [2020-07-28 18:26:22,428 INFO L336 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.21 ms. Allocated memory is still 1.0 GB. Free memory is still 987.1 MB. There was no memory consumed. Max. memory is 11.5 GB. * CACSL2BoogieTranslator took 479.26 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 135.8 MB). Free memory was 961.6 MB in the beginning and 1.1 GB in the end (delta: -162.4 MB). Peak memory consumption was 21.8 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 61.91 ms. Allocated memory is still 1.2 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. * Boogie Preprocessor took 58.06 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 6.6 MB). Peak memory consumption was 6.6 MB. Max. memory is 11.5 GB. * RCFGBuilder took 911.17 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 58.2 MB). Peak memory consumption was 58.2 MB. Max. memory is 11.5 GB. * TraceAbstraction took 11777.53 ms. Allocated memory was 1.2 GB in the beginning and 1.3 GB in the end (delta: 172.5 MB). Free memory was 1.1 GB in the beginning and 1.2 GB in the end (delta: -102.4 MB). Peak memory consumption was 70.1 MB. Max. memory is 11.5 GB. * Results from de.uni_freiburg.informatik.ultimate.boogie.preprocessor: - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - 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:216) RESULT: Ultimate could not prove your program: Toolchain returned no result. Received shutdown request...