./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/verifythis/tree_del_rec.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_rec.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 2b3c0b370148d7776e878a6aeb1fe79bd3f02f60 ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... 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_rec.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 2b3c0b370148d7776e878a6aeb1fe79bd3f02f60 ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... 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 19:13:43,473 INFO L177 SettingsManager]: Resetting all preferences to default values... [2020-07-28 19:13:43,475 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2020-07-28 19:13:43,487 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2020-07-28 19:13:43,487 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2020-07-28 19:13:43,488 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2020-07-28 19:13:43,490 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2020-07-28 19:13:43,492 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2020-07-28 19:13:43,494 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2020-07-28 19:13:43,495 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2020-07-28 19:13:43,496 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2020-07-28 19:13:43,497 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2020-07-28 19:13:43,497 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2020-07-28 19:13:43,498 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2020-07-28 19:13:43,500 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2020-07-28 19:13:43,501 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2020-07-28 19:13:43,502 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2020-07-28 19:13:43,503 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2020-07-28 19:13:43,505 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2020-07-28 19:13:43,507 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2020-07-28 19:13:43,508 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2020-07-28 19:13:43,509 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2020-07-28 19:13:43,510 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2020-07-28 19:13:43,511 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2020-07-28 19:13:43,514 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2020-07-28 19:13:43,514 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2020-07-28 19:13:43,514 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2020-07-28 19:13:43,515 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2020-07-28 19:13:43,516 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2020-07-28 19:13:43,517 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2020-07-28 19:13:43,517 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2020-07-28 19:13:43,518 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2020-07-28 19:13:43,519 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2020-07-28 19:13:43,520 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2020-07-28 19:13:43,521 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2020-07-28 19:13:43,521 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2020-07-28 19:13:43,522 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2020-07-28 19:13:43,522 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2020-07-28 19:13:43,523 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2020-07-28 19:13:43,524 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2020-07-28 19:13:43,524 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2020-07-28 19:13:43,525 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf [2020-07-28 19:13:43,539 INFO L113 SettingsManager]: Loading preferences was successful [2020-07-28 19:13:43,540 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2020-07-28 19:13:43,541 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2020-07-28 19:13:43,541 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2020-07-28 19:13:43,542 INFO L138 SettingsManager]: * Use SBE=true [2020-07-28 19:13:43,542 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2020-07-28 19:13:43,542 INFO L138 SettingsManager]: * sizeof long=4 [2020-07-28 19:13:43,543 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2020-07-28 19:13:43,543 INFO L138 SettingsManager]: * sizeof POINTER=4 [2020-07-28 19:13:43,543 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2020-07-28 19:13:43,543 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2020-07-28 19:13:43,544 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2020-07-28 19:13:43,544 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2020-07-28 19:13:43,544 INFO L138 SettingsManager]: * sizeof long double=12 [2020-07-28 19:13:43,544 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2020-07-28 19:13:43,545 INFO L138 SettingsManager]: * Use constant arrays=true [2020-07-28 19:13:43,545 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2020-07-28 19:13:43,545 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2020-07-28 19:13:43,546 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2020-07-28 19:13:43,546 INFO L138 SettingsManager]: * To the following directory=./dump/ [2020-07-28 19:13:43,546 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2020-07-28 19:13:43,546 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-28 19:13:43,547 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2020-07-28 19:13:43,547 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2020-07-28 19:13:43,547 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2020-07-28 19:13:43,548 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2020-07-28 19:13:43,548 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2020-07-28 19:13:43,548 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2020-07-28 19:13:43,548 INFO L138 SettingsManager]: * Trace refinement exception blacklist=NONE [2020-07-28 19:13:43,549 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 -> 2b3c0b370148d7776e878a6aeb1fe79bd3f02f60 [2020-07-28 19:13:43,858 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2020-07-28 19:13:43,877 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2020-07-28 19:13:43,882 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2020-07-28 19:13:43,883 INFO L271 PluginConnector]: Initializing CDTParser... [2020-07-28 19:13:43,885 INFO L275 PluginConnector]: CDTParser initialized [2020-07-28 19:13:43,886 INFO L429 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/verifythis/tree_del_rec.c [2020-07-28 19:13:43,947 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/6474924ba/d811d5f7fc7f42478d9e2482fee49fc6/FLAGe6ed3e769 [2020-07-28 19:13:44,383 INFO L306 CDTParser]: Found 1 translation units. [2020-07-28 19:13:44,384 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/tree_del_rec.c [2020-07-28 19:13:44,392 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/6474924ba/d811d5f7fc7f42478d9e2482fee49fc6/FLAGe6ed3e769 [2020-07-28 19:13:44,769 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/6474924ba/d811d5f7fc7f42478d9e2482fee49fc6 [2020-07-28 19:13:44,773 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2020-07-28 19:13:44,776 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2020-07-28 19:13:44,777 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2020-07-28 19:13:44,777 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2020-07-28 19:13:44,781 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2020-07-28 19:13:44,783 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.07 07:13:44" (1/1) ... [2020-07-28 19:13:44,786 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@68895592 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:44, skipping insertion in model container [2020-07-28 19:13:44,787 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.07 07:13:44" (1/1) ... [2020-07-28 19:13:44,795 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2020-07-28 19:13:44,827 INFO L178 MainTranslator]: Built tables and reachable declarations [2020-07-28 19:13:45,020 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 19:13:45,023 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 19:13:45,047 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-28 19:13:45,065 INFO L203 MainTranslator]: Completed pre-run [2020-07-28 19:13:45,171 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 19:13:45,174 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 19:13:45,196 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-28 19:13:45,219 INFO L208 MainTranslator]: Completed translation [2020-07-28 19:13:45,220 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45 WrapperNode [2020-07-28 19:13:45,220 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2020-07-28 19:13:45,221 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2020-07-28 19:13:45,221 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2020-07-28 19:13:45,221 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2020-07-28 19:13:45,230 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45" (1/1) ... [2020-07-28 19:13:45,244 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45" (1/1) ... [2020-07-28 19:13:45,280 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2020-07-28 19:13:45,281 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2020-07-28 19:13:45,281 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2020-07-28 19:13:45,281 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2020-07-28 19:13:45,292 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45" (1/1) ... [2020-07-28 19:13:45,292 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45" (1/1) ... [2020-07-28 19:13:45,297 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45" (1/1) ... [2020-07-28 19:13:45,298 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45" (1/1) ... [2020-07-28 19:13:45,323 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45" (1/1) ... [2020-07-28 19:13:45,341 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45" (1/1) ... [2020-07-28 19:13:45,344 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45" (1/1) ... [2020-07-28 19:13:45,351 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2020-07-28 19:13:45,352 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2020-07-28 19:13:45,352 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2020-07-28 19:13:45,352 INFO L275 PluginConnector]: RCFGBuilder initialized [2020-07-28 19:13:45,358 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45" (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 19:13:45,426 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2020-07-28 19:13:45,427 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2020-07-28 19:13:45,427 INFO L130 BoogieDeclarations]: Found specification of procedure tree_del [2020-07-28 19:13:45,427 INFO L138 BoogieDeclarations]: Found implementation of procedure tree_del [2020-07-28 19:13:45,427 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2020-07-28 19:13:45,428 INFO L130 BoogieDeclarations]: Found specification of procedure min [2020-07-28 19:13:45,428 INFO L138 BoogieDeclarations]: Found implementation of procedure min [2020-07-28 19:13:45,428 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2020-07-28 19:13:45,428 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2020-07-28 19:13:45,429 INFO L130 BoogieDeclarations]: Found specification of procedure nondet_tree [2020-07-28 19:13:45,429 INFO L138 BoogieDeclarations]: Found implementation of procedure nondet_tree [2020-07-28 19:13:45,429 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2020-07-28 19:13:45,429 INFO L130 BoogieDeclarations]: Found specification of procedure size [2020-07-28 19:13:45,430 INFO L138 BoogieDeclarations]: Found implementation of procedure size [2020-07-28 19:13:45,430 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2020-07-28 19:13:45,430 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2020-07-28 19:13:45,430 INFO L130 BoogieDeclarations]: Found specification of procedure tree_inorder [2020-07-28 19:13:45,431 INFO L138 BoogieDeclarations]: Found implementation of procedure tree_inorder [2020-07-28 19:13:45,431 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2020-07-28 19:13:46,177 INFO L290 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2020-07-28 19:13:46,178 INFO L295 CfgBuilder]: Removed 22 assume(true) statements. [2020-07-28 19:13:46,183 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.07 07:13:46 BoogieIcfgContainer [2020-07-28 19:13:46,183 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2020-07-28 19:13:46,185 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2020-07-28 19:13:46,185 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2020-07-28 19:13:46,188 INFO L275 PluginConnector]: TraceAbstraction initialized [2020-07-28 19:13:46,189 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 28.07 07:13:44" (1/3) ... [2020-07-28 19:13:46,190 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@331a97f1 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.07 07:13:46, skipping insertion in model container [2020-07-28 19:13:46,190 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:13:45" (2/3) ... [2020-07-28 19:13:46,191 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@331a97f1 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.07 07:13:46, skipping insertion in model container [2020-07-28 19:13:46,191 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.07 07:13:46" (3/3) ... [2020-07-28 19:13:46,193 INFO L109 eAbstractionObserver]: Analyzing ICFG tree_del_rec.c [2020-07-28 19:13:46,204 INFO L157 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2020-07-28 19:13:46,213 INFO L169 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2020-07-28 19:13:46,228 INFO L251 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2020-07-28 19:13:46,253 INFO L375 AbstractCegarLoop]: Interprodecural is true [2020-07-28 19:13:46,254 INFO L376 AbstractCegarLoop]: Hoare is true [2020-07-28 19:13:46,254 INFO L377 AbstractCegarLoop]: Compute interpolants for FPandBP [2020-07-28 19:13:46,254 INFO L378 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2020-07-28 19:13:46,254 INFO L379 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2020-07-28 19:13:46,254 INFO L380 AbstractCegarLoop]: Difference is false [2020-07-28 19:13:46,255 INFO L381 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2020-07-28 19:13:46,255 INFO L385 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2020-07-28 19:13:46,275 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states. [2020-07-28 19:13:46,284 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2020-07-28 19:13:46,284 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 19:13:46,285 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 19:13:46,286 INFO L427 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 19:13:46,292 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 19:13:46,292 INFO L82 PathProgramCache]: Analyzing trace with hash 1169561837, now seen corresponding path program 1 times [2020-07-28 19:13:46,300 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 19:13:46,301 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1828037064] [2020-07-28 19:13:46,301 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 19:13:46,443 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:46,630 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 19:13:46,634 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:46,659 INFO L280 TraceCheckUtils]: 0: Hoare triple {105#(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; {86#true} is VALID [2020-07-28 19:13:46,660 INFO L280 TraceCheckUtils]: 1: Hoare triple {86#true} assume true; {86#true} is VALID [2020-07-28 19:13:46,662 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {86#true} {86#true} #165#return; {86#true} is VALID [2020-07-28 19:13:46,665 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 7 [2020-07-28 19:13:46,669 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:46,678 INFO L280 TraceCheckUtils]: 0: Hoare triple {86#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {86#true} is VALID [2020-07-28 19:13:46,679 INFO L280 TraceCheckUtils]: 1: Hoare triple {86#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {86#true} is VALID [2020-07-28 19:13:46,679 INFO L280 TraceCheckUtils]: 2: Hoare triple {86#true} assume true; {86#true} is VALID [2020-07-28 19:13:46,680 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {86#true} {86#true} #167#return; {86#true} is VALID [2020-07-28 19:13:46,680 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 13 [2020-07-28 19:13:46,686 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:46,736 INFO L280 TraceCheckUtils]: 0: Hoare triple {86#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {86#true} is VALID [2020-07-28 19:13:46,738 INFO L280 TraceCheckUtils]: 1: Hoare triple {86#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {106#(= 0 |size_#res|)} is VALID [2020-07-28 19:13:46,740 INFO L280 TraceCheckUtils]: 2: Hoare triple {106#(= 0 |size_#res|)} assume true; {106#(= 0 |size_#res|)} is VALID [2020-07-28 19:13:46,744 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {106#(= 0 |size_#res|)} {86#true} #169#return; {99#(= 0 |ULTIMATE.start_task_#t~ret27|)} is VALID [2020-07-28 19:13:46,772 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 22 [2020-07-28 19:13:46,778 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:46,786 INFO L280 TraceCheckUtils]: 0: Hoare triple {107#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {86#true} is VALID [2020-07-28 19:13:46,787 INFO L280 TraceCheckUtils]: 1: Hoare triple {86#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {86#true} is VALID [2020-07-28 19:13:46,787 INFO L280 TraceCheckUtils]: 2: Hoare triple {86#true} assume true; {86#true} is VALID [2020-07-28 19:13:46,787 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {86#true} {87#false} #171#return; {87#false} is VALID [2020-07-28 19:13:46,788 INFO L280 TraceCheckUtils]: 0: Hoare triple {86#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {86#true} is VALID [2020-07-28 19:13:46,788 INFO L280 TraceCheckUtils]: 1: Hoare triple {86#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {86#true} is VALID [2020-07-28 19:13:46,791 INFO L263 TraceCheckUtils]: 2: Hoare triple {86#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {105#(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 19:13:46,791 INFO L280 TraceCheckUtils]: 3: Hoare triple {105#(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; {86#true} is VALID [2020-07-28 19:13:46,792 INFO L280 TraceCheckUtils]: 4: Hoare triple {86#true} assume true; {86#true} is VALID [2020-07-28 19:13:46,792 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {86#true} {86#true} #165#return; {86#true} is VALID [2020-07-28 19:13:46,793 INFO L280 TraceCheckUtils]: 6: Hoare triple {86#true} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {86#true} is VALID [2020-07-28 19:13:46,793 INFO L263 TraceCheckUtils]: 7: Hoare triple {86#true} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {86#true} is VALID [2020-07-28 19:13:46,793 INFO L280 TraceCheckUtils]: 8: Hoare triple {86#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {86#true} is VALID [2020-07-28 19:13:46,794 INFO L280 TraceCheckUtils]: 9: Hoare triple {86#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {86#true} is VALID [2020-07-28 19:13:46,794 INFO L280 TraceCheckUtils]: 10: Hoare triple {86#true} assume true; {86#true} is VALID [2020-07-28 19:13:46,795 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {86#true} {86#true} #167#return; {86#true} is VALID [2020-07-28 19:13:46,796 INFO L280 TraceCheckUtils]: 12: Hoare triple {86#true} assume -2147483648 <= task_#t~ret26 && task_#t~ret26 <= 2147483647;task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {86#true} is VALID [2020-07-28 19:13:46,796 INFO L263 TraceCheckUtils]: 13: Hoare triple {86#true} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {86#true} is VALID [2020-07-28 19:13:46,796 INFO L280 TraceCheckUtils]: 14: Hoare triple {86#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {86#true} is VALID [2020-07-28 19:13:46,800 INFO L280 TraceCheckUtils]: 15: Hoare triple {86#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {106#(= 0 |size_#res|)} is VALID [2020-07-28 19:13:46,801 INFO L280 TraceCheckUtils]: 16: Hoare triple {106#(= 0 |size_#res|)} assume true; {106#(= 0 |size_#res|)} is VALID [2020-07-28 19:13:46,804 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {106#(= 0 |size_#res|)} {86#true} #169#return; {99#(= 0 |ULTIMATE.start_task_#t~ret27|)} is VALID [2020-07-28 19:13:46,806 INFO L280 TraceCheckUtils]: 18: Hoare triple {99#(= 0 |ULTIMATE.start_task_#t~ret27|)} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {100#(= ULTIMATE.start_assume_cycle_if_not_~cond 0)} is VALID [2020-07-28 19:13:46,807 INFO L280 TraceCheckUtils]: 19: Hoare triple {100#(= ULTIMATE.start_assume_cycle_if_not_~cond 0)} assume !(0 == assume_cycle_if_not_~cond); {87#false} is VALID [2020-07-28 19:13:46,808 INFO L280 TraceCheckUtils]: 20: Hoare triple {87#false} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {87#false} is VALID [2020-07-28 19:13:46,808 INFO L280 TraceCheckUtils]: 21: Hoare triple {87#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {87#false} is VALID [2020-07-28 19:13:46,809 INFO L263 TraceCheckUtils]: 22: Hoare triple {87#false} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {107#(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 19:13:46,809 INFO L280 TraceCheckUtils]: 23: Hoare triple {107#(and (= |#memory_int| |old(#memory_int)|) (= |#memory_$Pointer$.base| |old(#memory_$Pointer$.base)|) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {86#true} is VALID [2020-07-28 19:13:46,809 INFO L280 TraceCheckUtils]: 24: Hoare triple {86#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {86#true} is VALID [2020-07-28 19:13:46,810 INFO L280 TraceCheckUtils]: 25: Hoare triple {86#true} assume true; {86#true} is VALID [2020-07-28 19:13:46,810 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {86#true} {87#false} #171#return; {87#false} is VALID [2020-07-28 19:13:46,811 INFO L280 TraceCheckUtils]: 27: Hoare triple {87#false} assume -2147483648 <= task_#t~ret29 && task_#t~ret29 <= 2147483647;havoc task_#t~ret29;call task_#t~mem30 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {87#false} is VALID [2020-07-28 19:13:46,811 INFO L280 TraceCheckUtils]: 28: Hoare triple {87#false} assume 0 == __VERIFIER_assert_~cond; {87#false} is VALID [2020-07-28 19:13:46,813 INFO L280 TraceCheckUtils]: 29: Hoare triple {87#false} assume !false; {87#false} is VALID [2020-07-28 19:13:46,821 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 19:13:46,823 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1828037064] [2020-07-28 19:13:46,824 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-28 19:13:46,825 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2020-07-28 19:13:46,826 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1309669357] [2020-07-28 19:13:46,836 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 30 [2020-07-28 19:13:46,846 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 19:13:46,850 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2020-07-28 19:13:46,918 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 19:13:46,918 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2020-07-28 19:13:46,918 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 19:13:46,928 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2020-07-28 19:13:46,930 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2020-07-28 19:13:46,933 INFO L87 Difference]: Start difference. First operand 83 states. Second operand 7 states. [2020-07-28 19:13:48,480 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:48,481 INFO L93 Difference]: Finished difference Result 148 states and 197 transitions. [2020-07-28 19:13:48,481 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2020-07-28 19:13:48,481 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 30 [2020-07-28 19:13:48,482 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 19:13:48,483 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-28 19:13:48,512 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 197 transitions. [2020-07-28 19:13:48,512 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-28 19:13:48,524 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 197 transitions. [2020-07-28 19:13:48,524 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 197 transitions. [2020-07-28 19:13:48,901 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 197 edges. 197 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 19:13:48,925 INFO L225 Difference]: With dead ends: 148 [2020-07-28 19:13:48,925 INFO L226 Difference]: Without dead ends: 84 [2020-07-28 19:13:48,933 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 8 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2020-07-28 19:13:48,949 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 84 states. [2020-07-28 19:13:49,006 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 84 to 79. [2020-07-28 19:13:49,006 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 19:13:49,007 INFO L82 GeneralOperation]: Start isEquivalent. First operand 84 states. Second operand 79 states. [2020-07-28 19:13:49,007 INFO L74 IsIncluded]: Start isIncluded. First operand 84 states. Second operand 79 states. [2020-07-28 19:13:49,007 INFO L87 Difference]: Start difference. First operand 84 states. Second operand 79 states. [2020-07-28 19:13:49,019 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:49,019 INFO L93 Difference]: Finished difference Result 84 states and 109 transitions. [2020-07-28 19:13:49,020 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 109 transitions. [2020-07-28 19:13:49,022 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:13:49,022 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:13:49,023 INFO L74 IsIncluded]: Start isIncluded. First operand 79 states. Second operand 84 states. [2020-07-28 19:13:49,023 INFO L87 Difference]: Start difference. First operand 79 states. Second operand 84 states. [2020-07-28 19:13:49,032 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:49,033 INFO L93 Difference]: Finished difference Result 84 states and 109 transitions. [2020-07-28 19:13:49,033 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 109 transitions. [2020-07-28 19:13:49,035 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:13:49,035 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:13:49,036 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 19:13:49,036 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 19:13:49,036 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 79 states. [2020-07-28 19:13:49,043 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 79 states to 79 states and 99 transitions. [2020-07-28 19:13:49,045 INFO L78 Accepts]: Start accepts. Automaton has 79 states and 99 transitions. Word has length 30 [2020-07-28 19:13:49,045 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 19:13:49,045 INFO L479 AbstractCegarLoop]: Abstraction has 79 states and 99 transitions. [2020-07-28 19:13:49,045 INFO L480 AbstractCegarLoop]: Interpolant automaton has 7 states. [2020-07-28 19:13:49,046 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 99 transitions. [2020-07-28 19:13:49,048 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2020-07-28 19:13:49,048 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 19:13:49,049 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 19:13:49,049 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2020-07-28 19:13:49,049 INFO L427 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 19:13:49,050 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 19:13:49,050 INFO L82 PathProgramCache]: Analyzing trace with hash 309270478, now seen corresponding path program 1 times [2020-07-28 19:13:49,050 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 19:13:49,051 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1698754847] [2020-07-28 19:13:49,051 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 19:13:49,071 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:49,141 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 19:13:49,148 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:49,189 INFO L280 TraceCheckUtils]: 0: Hoare triple {596#(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; {597#(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 19:13:49,190 INFO L280 TraceCheckUtils]: 1: Hoare triple {597#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} assume true; {597#(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 19:13:49,192 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {597#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} {565#true} #165#return; {570#(and (= 0 |ULTIMATE.start_main_#t~ret39.base|) (= 0 |ULTIMATE.start_main_#t~ret39.offset|))} is VALID [2020-07-28 19:13:49,192 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 7 [2020-07-28 19:13:49,196 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:49,201 INFO L280 TraceCheckUtils]: 0: Hoare triple {565#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {565#true} is VALID [2020-07-28 19:13:49,201 INFO L280 TraceCheckUtils]: 1: Hoare triple {565#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {565#true} is VALID [2020-07-28 19:13:49,202 INFO L280 TraceCheckUtils]: 2: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,203 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {565#true} {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #167#return; {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:13:49,203 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 13 [2020-07-28 19:13:49,210 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:49,270 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 19:13:49,272 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:49,277 INFO L280 TraceCheckUtils]: 0: Hoare triple {565#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {565#true} is VALID [2020-07-28 19:13:49,277 INFO L280 TraceCheckUtils]: 1: Hoare triple {565#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {565#true} is VALID [2020-07-28 19:13:49,278 INFO L280 TraceCheckUtils]: 2: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,279 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {565#true} {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #161#return; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,279 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2020-07-28 19:13:49,282 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:49,287 INFO L280 TraceCheckUtils]: 0: Hoare triple {565#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {565#true} is VALID [2020-07-28 19:13:49,288 INFO L280 TraceCheckUtils]: 1: Hoare triple {565#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {565#true} is VALID [2020-07-28 19:13:49,288 INFO L280 TraceCheckUtils]: 2: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,289 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {565#true} {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #163#return; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,290 INFO L280 TraceCheckUtils]: 0: Hoare triple {565#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {598#(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 19:13:49,292 INFO L280 TraceCheckUtils]: 1: Hoare triple {598#(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~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,292 INFO L263 TraceCheckUtils]: 2: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {565#true} is VALID [2020-07-28 19:13:49,292 INFO L280 TraceCheckUtils]: 3: Hoare triple {565#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {565#true} is VALID [2020-07-28 19:13:49,293 INFO L280 TraceCheckUtils]: 4: Hoare triple {565#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {565#true} is VALID [2020-07-28 19:13:49,293 INFO L280 TraceCheckUtils]: 5: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,295 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {565#true} {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #161#return; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,296 INFO L280 TraceCheckUtils]: 7: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret23 && #t~ret23 <= 2147483647;call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,296 INFO L263 TraceCheckUtils]: 8: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {565#true} is VALID [2020-07-28 19:13:49,297 INFO L280 TraceCheckUtils]: 9: Hoare triple {565#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {565#true} is VALID [2020-07-28 19:13:49,297 INFO L280 TraceCheckUtils]: 10: Hoare triple {565#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {565#true} is VALID [2020-07-28 19:13:49,298 INFO L280 TraceCheckUtils]: 11: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,299 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {565#true} {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #163#return; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,300 INFO L280 TraceCheckUtils]: 13: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret25 && #t~ret25 <= 2147483647;#res := 1 + (#t~ret23 + #t~ret25);havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret23;havoc #t~mem22.base, #t~mem22.offset;havoc #t~ret25; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,301 INFO L280 TraceCheckUtils]: 14: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume true; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,303 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #169#return; {566#false} is VALID [2020-07-28 19:13:49,322 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 34 [2020-07-28 19:13:49,325 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:49,329 INFO L280 TraceCheckUtils]: 0: Hoare triple {608#(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; {565#true} is VALID [2020-07-28 19:13:49,329 INFO L280 TraceCheckUtils]: 1: Hoare triple {565#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {565#true} is VALID [2020-07-28 19:13:49,330 INFO L280 TraceCheckUtils]: 2: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,330 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {565#true} {566#false} #171#return; {566#false} is VALID [2020-07-28 19:13:49,330 INFO L280 TraceCheckUtils]: 0: Hoare triple {565#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {565#true} is VALID [2020-07-28 19:13:49,331 INFO L280 TraceCheckUtils]: 1: Hoare triple {565#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {565#true} is VALID [2020-07-28 19:13:49,332 INFO L263 TraceCheckUtils]: 2: Hoare triple {565#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {596#(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 19:13:49,333 INFO L280 TraceCheckUtils]: 3: Hoare triple {596#(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; {597#(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 19:13:49,334 INFO L280 TraceCheckUtils]: 4: Hoare triple {597#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} assume true; {597#(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 19:13:49,335 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {597#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} {565#true} #165#return; {570#(and (= 0 |ULTIMATE.start_main_#t~ret39.base|) (= 0 |ULTIMATE.start_main_#t~ret39.offset|))} is VALID [2020-07-28 19:13:49,336 INFO L280 TraceCheckUtils]: 6: Hoare triple {570#(and (= 0 |ULTIMATE.start_main_#t~ret39.base|) (= 0 |ULTIMATE.start_main_#t~ret39.offset|))} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:13:49,337 INFO L263 TraceCheckUtils]: 7: Hoare triple {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {565#true} is VALID [2020-07-28 19:13:49,337 INFO L280 TraceCheckUtils]: 8: Hoare triple {565#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {565#true} is VALID [2020-07-28 19:13:49,338 INFO L280 TraceCheckUtils]: 9: Hoare triple {565#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {565#true} is VALID [2020-07-28 19:13:49,338 INFO L280 TraceCheckUtils]: 10: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,340 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {565#true} {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #167#return; {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:13:49,341 INFO L280 TraceCheckUtils]: 12: Hoare triple {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} assume -2147483648 <= task_#t~ret26 && task_#t~ret26 <= 2147483647;task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:13:49,342 INFO L263 TraceCheckUtils]: 13: Hoare triple {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {565#true} is VALID [2020-07-28 19:13:49,343 INFO L280 TraceCheckUtils]: 14: Hoare triple {565#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {598#(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 19:13:49,344 INFO L280 TraceCheckUtils]: 15: Hoare triple {598#(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~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,344 INFO L263 TraceCheckUtils]: 16: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {565#true} is VALID [2020-07-28 19:13:49,344 INFO L280 TraceCheckUtils]: 17: Hoare triple {565#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {565#true} is VALID [2020-07-28 19:13:49,345 INFO L280 TraceCheckUtils]: 18: Hoare triple {565#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {565#true} is VALID [2020-07-28 19:13:49,345 INFO L280 TraceCheckUtils]: 19: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,346 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {565#true} {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #161#return; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,347 INFO L280 TraceCheckUtils]: 21: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret23 && #t~ret23 <= 2147483647;call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,348 INFO L263 TraceCheckUtils]: 22: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {565#true} is VALID [2020-07-28 19:13:49,348 INFO L280 TraceCheckUtils]: 23: Hoare triple {565#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {565#true} is VALID [2020-07-28 19:13:49,348 INFO L280 TraceCheckUtils]: 24: Hoare triple {565#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {565#true} is VALID [2020-07-28 19:13:49,348 INFO L280 TraceCheckUtils]: 25: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,350 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {565#true} {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #163#return; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,350 INFO L280 TraceCheckUtils]: 27: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret25 && #t~ret25 <= 2147483647;#res := 1 + (#t~ret23 + #t~ret25);havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret23;havoc #t~mem22.base, #t~mem22.offset;havoc #t~ret25; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,351 INFO L280 TraceCheckUtils]: 28: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume true; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,352 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #169#return; {566#false} is VALID [2020-07-28 19:13:49,353 INFO L280 TraceCheckUtils]: 30: Hoare triple {566#false} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {566#false} is VALID [2020-07-28 19:13:49,353 INFO L280 TraceCheckUtils]: 31: Hoare triple {566#false} assume !(0 == assume_cycle_if_not_~cond); {566#false} is VALID [2020-07-28 19:13:49,353 INFO L280 TraceCheckUtils]: 32: Hoare triple {566#false} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {566#false} is VALID [2020-07-28 19:13:49,354 INFO L280 TraceCheckUtils]: 33: Hoare triple {566#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {566#false} is VALID [2020-07-28 19:13:49,354 INFO L263 TraceCheckUtils]: 34: Hoare triple {566#false} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {608#(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 19:13:49,354 INFO L280 TraceCheckUtils]: 35: Hoare triple {608#(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; {565#true} is VALID [2020-07-28 19:13:49,354 INFO L280 TraceCheckUtils]: 36: Hoare triple {565#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {565#true} is VALID [2020-07-28 19:13:49,355 INFO L280 TraceCheckUtils]: 37: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,355 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {565#true} {566#false} #171#return; {566#false} is VALID [2020-07-28 19:13:49,355 INFO L280 TraceCheckUtils]: 39: Hoare triple {566#false} assume -2147483648 <= task_#t~ret29 && task_#t~ret29 <= 2147483647;havoc task_#t~ret29;call task_#t~mem30 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {566#false} is VALID [2020-07-28 19:13:49,356 INFO L280 TraceCheckUtils]: 40: Hoare triple {566#false} assume 0 == __VERIFIER_assert_~cond; {566#false} is VALID [2020-07-28 19:13:49,356 INFO L280 TraceCheckUtils]: 41: Hoare triple {566#false} assume !false; {566#false} is VALID [2020-07-28 19:13:49,360 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 19:13:49,360 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1698754847] [2020-07-28 19:13:49,361 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1521721922] [2020-07-28 19:13:49,361 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 19:13:49,448 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:49,451 INFO L263 TraceCheckSpWp]: Trace formula consists of 213 conjuncts, 25 conjunts are in the unsatisfiable core [2020-07-28 19:13:49,477 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:49,485 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 19:13:49,711 INFO L280 TraceCheckUtils]: 0: Hoare triple {565#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {565#true} is VALID [2020-07-28 19:13:49,712 INFO L280 TraceCheckUtils]: 1: Hoare triple {565#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {565#true} is VALID [2020-07-28 19:13:49,712 INFO L263 TraceCheckUtils]: 2: Hoare triple {565#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {565#true} is VALID [2020-07-28 19:13:49,729 INFO L280 TraceCheckUtils]: 3: Hoare triple {565#true} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {597#(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 19:13:49,730 INFO L280 TraceCheckUtils]: 4: Hoare triple {597#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} assume true; {597#(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 19:13:49,732 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {597#(and (<= |nondet_tree_#res.base| 0) (<= 0 |nondet_tree_#res.offset|) (<= |nondet_tree_#res.offset| 0) (<= 0 |nondet_tree_#res.base|))} {565#true} #165#return; {570#(and (= 0 |ULTIMATE.start_main_#t~ret39.base|) (= 0 |ULTIMATE.start_main_#t~ret39.offset|))} is VALID [2020-07-28 19:13:49,736 INFO L280 TraceCheckUtils]: 6: Hoare triple {570#(and (= 0 |ULTIMATE.start_main_#t~ret39.base|) (= 0 |ULTIMATE.start_main_#t~ret39.offset|))} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:13:49,737 INFO L263 TraceCheckUtils]: 7: Hoare triple {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {565#true} is VALID [2020-07-28 19:13:49,737 INFO L280 TraceCheckUtils]: 8: Hoare triple {565#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {565#true} is VALID [2020-07-28 19:13:49,737 INFO L280 TraceCheckUtils]: 9: Hoare triple {565#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {565#true} is VALID [2020-07-28 19:13:49,737 INFO L280 TraceCheckUtils]: 10: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,739 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {565#true} {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #167#return; {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:13:49,740 INFO L280 TraceCheckUtils]: 12: Hoare triple {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} assume -2147483648 <= task_#t~ret26 && task_#t~ret26 <= 2147483647;task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:13:49,741 INFO L263 TraceCheckUtils]: 13: Hoare triple {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {565#true} is VALID [2020-07-28 19:13:49,742 INFO L280 TraceCheckUtils]: 14: Hoare triple {565#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {654#(and (= |size_#in~t.base| size_~t.base) (= |size_#in~t.offset| size_~t.offset))} is VALID [2020-07-28 19:13:49,743 INFO L280 TraceCheckUtils]: 15: Hoare triple {654#(and (= |size_#in~t.base| size_~t.base) (= |size_#in~t.offset| size_~t.offset))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,743 INFO L263 TraceCheckUtils]: 16: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {565#true} is VALID [2020-07-28 19:13:49,744 INFO L280 TraceCheckUtils]: 17: Hoare triple {565#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {565#true} is VALID [2020-07-28 19:13:49,744 INFO L280 TraceCheckUtils]: 18: Hoare triple {565#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {565#true} is VALID [2020-07-28 19:13:49,744 INFO L280 TraceCheckUtils]: 19: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,746 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {565#true} {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #161#return; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,747 INFO L280 TraceCheckUtils]: 21: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret23 && #t~ret23 <= 2147483647;call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,748 INFO L263 TraceCheckUtils]: 22: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {565#true} is VALID [2020-07-28 19:13:49,748 INFO L280 TraceCheckUtils]: 23: Hoare triple {565#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {565#true} is VALID [2020-07-28 19:13:49,748 INFO L280 TraceCheckUtils]: 24: Hoare triple {565#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {565#true} is VALID [2020-07-28 19:13:49,748 INFO L280 TraceCheckUtils]: 25: Hoare triple {565#true} assume true; {565#true} is VALID [2020-07-28 19:13:49,750 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {565#true} {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #163#return; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,752 INFO L280 TraceCheckUtils]: 27: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret25 && #t~ret25 <= 2147483647;#res := 1 + (#t~ret23 + #t~ret25);havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret23;havoc #t~mem22.base, #t~mem22.offset;havoc #t~ret25; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,754 INFO L280 TraceCheckUtils]: 28: Hoare triple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume true; {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:49,756 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {599#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} {571#(and (= 0 ULTIMATE.start_task_~t.base) (= 0 ULTIMATE.start_task_~t.offset))} #169#return; {566#false} is VALID [2020-07-28 19:13:49,756 INFO L280 TraceCheckUtils]: 30: Hoare triple {566#false} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {566#false} is VALID [2020-07-28 19:13:49,756 INFO L280 TraceCheckUtils]: 31: Hoare triple {566#false} assume !(0 == assume_cycle_if_not_~cond); {566#false} is VALID [2020-07-28 19:13:49,757 INFO L280 TraceCheckUtils]: 32: Hoare triple {566#false} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {566#false} is VALID [2020-07-28 19:13:49,757 INFO L280 TraceCheckUtils]: 33: Hoare triple {566#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {566#false} is VALID [2020-07-28 19:13:49,757 INFO L263 TraceCheckUtils]: 34: Hoare triple {566#false} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {566#false} is VALID [2020-07-28 19:13:49,758 INFO L280 TraceCheckUtils]: 35: Hoare triple {566#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {566#false} is VALID [2020-07-28 19:13:49,758 INFO L280 TraceCheckUtils]: 36: Hoare triple {566#false} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {566#false} is VALID [2020-07-28 19:13:49,759 INFO L280 TraceCheckUtils]: 37: Hoare triple {566#false} assume true; {566#false} is VALID [2020-07-28 19:13:49,759 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {566#false} {566#false} #171#return; {566#false} is VALID [2020-07-28 19:13:49,759 INFO L280 TraceCheckUtils]: 39: Hoare triple {566#false} assume -2147483648 <= task_#t~ret29 && task_#t~ret29 <= 2147483647;havoc task_#t~ret29;call task_#t~mem30 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {566#false} is VALID [2020-07-28 19:13:49,760 INFO L280 TraceCheckUtils]: 40: Hoare triple {566#false} assume 0 == __VERIFIER_assert_~cond; {566#false} is VALID [2020-07-28 19:13:49,760 INFO L280 TraceCheckUtils]: 41: Hoare triple {566#false} assume !false; {566#false} is VALID [2020-07-28 19:13:49,766 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 19:13:49,767 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 19:13:49,768 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 7] total 10 [2020-07-28 19:13:49,769 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [560316063] [2020-07-28 19:13:49,771 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 42 [2020-07-28 19:13:49,775 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 19:13:49,776 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2020-07-28 19:13:49,853 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 19:13:49,853 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2020-07-28 19:13:49,854 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 19:13:49,854 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2020-07-28 19:13:49,855 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=71, Unknown=0, NotChecked=0, Total=90 [2020-07-28 19:13:49,855 INFO L87 Difference]: Start difference. First operand 79 states and 99 transitions. Second operand 10 states. [2020-07-28 19:13:51,579 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:51,579 INFO L93 Difference]: Finished difference Result 143 states and 181 transitions. [2020-07-28 19:13:51,579 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2020-07-28 19:13:51,580 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 42 [2020-07-28 19:13:51,580 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 19:13:51,582 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 19:13:51,588 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 177 transitions. [2020-07-28 19:13:51,588 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 19:13:51,594 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 177 transitions. [2020-07-28 19:13:51,594 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 177 transitions. [2020-07-28 19:13:51,850 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 177 edges. 177 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 19:13:51,855 INFO L225 Difference]: With dead ends: 143 [2020-07-28 19:13:51,856 INFO L226 Difference]: Without dead ends: 84 [2020-07-28 19:13:51,857 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 19:13:51,858 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 84 states. [2020-07-28 19:13:51,888 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 84 to 81. [2020-07-28 19:13:51,888 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 19:13:51,889 INFO L82 GeneralOperation]: Start isEquivalent. First operand 84 states. Second operand 81 states. [2020-07-28 19:13:51,889 INFO L74 IsIncluded]: Start isIncluded. First operand 84 states. Second operand 81 states. [2020-07-28 19:13:51,889 INFO L87 Difference]: Start difference. First operand 84 states. Second operand 81 states. [2020-07-28 19:13:51,895 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:51,895 INFO L93 Difference]: Finished difference Result 84 states and 108 transitions. [2020-07-28 19:13:51,895 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 108 transitions. [2020-07-28 19:13:51,897 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:13:51,897 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:13:51,897 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand 84 states. [2020-07-28 19:13:51,897 INFO L87 Difference]: Start difference. First operand 81 states. Second operand 84 states. [2020-07-28 19:13:51,904 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:51,904 INFO L93 Difference]: Finished difference Result 84 states and 108 transitions. [2020-07-28 19:13:51,904 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 108 transitions. [2020-07-28 19:13:51,905 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:13:51,905 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:13:51,906 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 19:13:51,906 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 19:13:51,906 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 81 states. [2020-07-28 19:13:51,911 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 102 transitions. [2020-07-28 19:13:51,911 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 102 transitions. Word has length 42 [2020-07-28 19:13:51,911 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 19:13:51,911 INFO L479 AbstractCegarLoop]: Abstraction has 81 states and 102 transitions. [2020-07-28 19:13:51,912 INFO L480 AbstractCegarLoop]: Interpolant automaton has 10 states. [2020-07-28 19:13:51,912 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 102 transitions. [2020-07-28 19:13:51,913 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2020-07-28 19:13:51,913 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 19:13:51,914 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 19:13:52,126 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable1 [2020-07-28 19:13:52,127 INFO L427 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 19:13:52,128 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 19:13:52,128 INFO L82 PathProgramCache]: Analyzing trace with hash 962350225, now seen corresponding path program 1 times [2020-07-28 19:13:52,128 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 19:13:52,129 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1262445333] [2020-07-28 19:13:52,129 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 19:13:52,160 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:52,252 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 19:13:52,266 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:52,333 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2020-07-28 19:13:52,337 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:52,346 INFO L280 TraceCheckUtils]: 0: Hoare triple {1236#(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; {1195#true} is VALID [2020-07-28 19:13:52,347 INFO L280 TraceCheckUtils]: 1: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,348 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1195#true} {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} #151#return; {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} is VALID [2020-07-28 19:13:52,348 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2020-07-28 19:13:52,351 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:52,356 INFO L280 TraceCheckUtils]: 0: Hoare triple {1236#(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; {1195#true} is VALID [2020-07-28 19:13:52,357 INFO L280 TraceCheckUtils]: 1: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,358 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1195#true} {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} #153#return; {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} is VALID [2020-07-28 19:13:52,360 INFO L280 TraceCheckUtils]: 0: Hoare triple {1236#(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; {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} is VALID [2020-07-28 19:13:52,362 INFO L263 TraceCheckUtils]: 1: Hoare triple {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1236#(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 19:13:52,362 INFO L280 TraceCheckUtils]: 2: Hoare triple {1236#(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; {1195#true} is VALID [2020-07-28 19:13:52,362 INFO L280 TraceCheckUtils]: 3: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,363 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {1195#true} {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} #151#return; {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} is VALID [2020-07-28 19:13:52,364 INFO L280 TraceCheckUtils]: 5: Hoare triple {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret4.base, #t~ret4.offset; {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} is VALID [2020-07-28 19:13:52,365 INFO L263 TraceCheckUtils]: 6: Hoare triple {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1236#(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 19:13:52,366 INFO L280 TraceCheckUtils]: 7: Hoare triple {1236#(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; {1195#true} is VALID [2020-07-28 19:13:52,366 INFO L280 TraceCheckUtils]: 8: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,367 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {1195#true} {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} #153#return; {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} is VALID [2020-07-28 19:13:52,368 INFO L280 TraceCheckUtils]: 10: Hoare triple {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} 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; {1244#(or (<= (+ |nondet_tree_#res.base| 1) 0) (<= 1 |nondet_tree_#res.base|))} is VALID [2020-07-28 19:13:52,369 INFO L280 TraceCheckUtils]: 11: Hoare triple {1244#(or (<= (+ |nondet_tree_#res.base| 1) 0) (<= 1 |nondet_tree_#res.base|))} assume true; {1244#(or (<= (+ |nondet_tree_#res.base| 1) 0) (<= 1 |nondet_tree_#res.base|))} is VALID [2020-07-28 19:13:52,370 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1244#(or (<= (+ |nondet_tree_#res.base| 1) 0) (<= 1 |nondet_tree_#res.base|))} {1195#true} #165#return; {1210#(not (= 0 |ULTIMATE.start_main_#t~ret39.base|))} is VALID [2020-07-28 19:13:52,371 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2020-07-28 19:13:52,372 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:52,401 INFO L280 TraceCheckUtils]: 0: Hoare triple {1195#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1245#(= min_~n.base |min_#in~n.base|)} is VALID [2020-07-28 19:13:52,402 INFO L280 TraceCheckUtils]: 1: Hoare triple {1245#(= min_~n.base |min_#in~n.base|)} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1246#(= 0 |min_#in~n.base|)} is VALID [2020-07-28 19:13:52,403 INFO L280 TraceCheckUtils]: 2: Hoare triple {1246#(= 0 |min_#in~n.base|)} assume true; {1246#(= 0 |min_#in~n.base|)} is VALID [2020-07-28 19:13:52,404 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1246#(= 0 |min_#in~n.base|)} {1211#(not (= 0 ULTIMATE.start_task_~t.base))} #167#return; {1196#false} is VALID [2020-07-28 19:13:52,404 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2020-07-28 19:13:52,408 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:52,414 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 19:13:52,415 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:52,418 INFO L280 TraceCheckUtils]: 0: Hoare triple {1195#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1195#true} is VALID [2020-07-28 19:13:52,418 INFO L280 TraceCheckUtils]: 1: Hoare triple {1195#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1195#true} is VALID [2020-07-28 19:13:52,418 INFO L280 TraceCheckUtils]: 2: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,419 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1195#true} {1195#true} #161#return; {1195#true} is VALID [2020-07-28 19:13:52,419 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2020-07-28 19:13:52,420 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:52,423 INFO L280 TraceCheckUtils]: 0: Hoare triple {1195#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1195#true} is VALID [2020-07-28 19:13:52,423 INFO L280 TraceCheckUtils]: 1: Hoare triple {1195#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1195#true} is VALID [2020-07-28 19:13:52,424 INFO L280 TraceCheckUtils]: 2: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,424 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1195#true} {1195#true} #163#return; {1195#true} is VALID [2020-07-28 19:13:52,424 INFO L280 TraceCheckUtils]: 0: Hoare triple {1195#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1195#true} is VALID [2020-07-28 19:13:52,424 INFO L280 TraceCheckUtils]: 1: Hoare triple {1195#true} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1195#true} is VALID [2020-07-28 19:13:52,425 INFO L263 TraceCheckUtils]: 2: Hoare triple {1195#true} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {1195#true} is VALID [2020-07-28 19:13:52,425 INFO L280 TraceCheckUtils]: 3: Hoare triple {1195#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1195#true} is VALID [2020-07-28 19:13:52,425 INFO L280 TraceCheckUtils]: 4: Hoare triple {1195#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1195#true} is VALID [2020-07-28 19:13:52,425 INFO L280 TraceCheckUtils]: 5: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,426 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {1195#true} {1195#true} #161#return; {1195#true} is VALID [2020-07-28 19:13:52,426 INFO L280 TraceCheckUtils]: 7: Hoare triple {1195#true} assume -2147483648 <= #t~ret23 && #t~ret23 <= 2147483647;call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1195#true} is VALID [2020-07-28 19:13:52,426 INFO L263 TraceCheckUtils]: 8: Hoare triple {1195#true} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {1195#true} is VALID [2020-07-28 19:13:52,426 INFO L280 TraceCheckUtils]: 9: Hoare triple {1195#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1195#true} is VALID [2020-07-28 19:13:52,427 INFO L280 TraceCheckUtils]: 10: Hoare triple {1195#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1195#true} is VALID [2020-07-28 19:13:52,427 INFO L280 TraceCheckUtils]: 11: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,427 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1195#true} {1195#true} #163#return; {1195#true} is VALID [2020-07-28 19:13:52,427 INFO L280 TraceCheckUtils]: 13: Hoare triple {1195#true} assume -2147483648 <= #t~ret25 && #t~ret25 <= 2147483647;#res := 1 + (#t~ret23 + #t~ret25);havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret23;havoc #t~mem22.base, #t~mem22.offset;havoc #t~ret25; {1195#true} is VALID [2020-07-28 19:13:52,428 INFO L280 TraceCheckUtils]: 14: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,428 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1195#true} {1196#false} #169#return; {1196#false} is VALID [2020-07-28 19:13:52,447 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 44 [2020-07-28 19:13:52,448 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:52,456 INFO L280 TraceCheckUtils]: 0: Hoare triple {1255#(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; {1195#true} is VALID [2020-07-28 19:13:52,456 INFO L280 TraceCheckUtils]: 1: Hoare triple {1195#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {1195#true} is VALID [2020-07-28 19:13:52,456 INFO L280 TraceCheckUtils]: 2: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,457 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1195#true} {1196#false} #171#return; {1196#false} is VALID [2020-07-28 19:13:52,457 INFO L280 TraceCheckUtils]: 0: Hoare triple {1195#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {1195#true} is VALID [2020-07-28 19:13:52,457 INFO L280 TraceCheckUtils]: 1: Hoare triple {1195#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {1195#true} is VALID [2020-07-28 19:13:52,458 INFO L263 TraceCheckUtils]: 2: Hoare triple {1195#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {1236#(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 19:13:52,460 INFO L280 TraceCheckUtils]: 3: Hoare triple {1236#(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; {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} is VALID [2020-07-28 19:13:52,462 INFO L263 TraceCheckUtils]: 4: Hoare triple {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1236#(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 19:13:52,462 INFO L280 TraceCheckUtils]: 5: Hoare triple {1236#(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; {1195#true} is VALID [2020-07-28 19:13:52,462 INFO L280 TraceCheckUtils]: 6: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,463 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1195#true} {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} #151#return; {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} is VALID [2020-07-28 19:13:52,464 INFO L280 TraceCheckUtils]: 8: Hoare triple {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} call write~$Pointer$(#t~ret4.base, #t~ret4.offset, ~n~0.base, 4 + ~n~0.offset, 4);havoc #t~ret4.base, #t~ret4.offset; {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} is VALID [2020-07-28 19:13:52,465 INFO L263 TraceCheckUtils]: 9: Hoare triple {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1236#(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 19:13:52,465 INFO L280 TraceCheckUtils]: 10: Hoare triple {1236#(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; {1195#true} is VALID [2020-07-28 19:13:52,465 INFO L280 TraceCheckUtils]: 11: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,467 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1195#true} {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} #153#return; {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} is VALID [2020-07-28 19:13:52,468 INFO L280 TraceCheckUtils]: 13: Hoare triple {1237#(or (<= (+ nondet_tree_~n~0.base 1) 0) (<= 1 nondet_tree_~n~0.base))} 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; {1244#(or (<= (+ |nondet_tree_#res.base| 1) 0) (<= 1 |nondet_tree_#res.base|))} is VALID [2020-07-28 19:13:52,468 INFO L280 TraceCheckUtils]: 14: Hoare triple {1244#(or (<= (+ |nondet_tree_#res.base| 1) 0) (<= 1 |nondet_tree_#res.base|))} assume true; {1244#(or (<= (+ |nondet_tree_#res.base| 1) 0) (<= 1 |nondet_tree_#res.base|))} is VALID [2020-07-28 19:13:52,470 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1244#(or (<= (+ |nondet_tree_#res.base| 1) 0) (<= 1 |nondet_tree_#res.base|))} {1195#true} #165#return; {1210#(not (= 0 |ULTIMATE.start_main_#t~ret39.base|))} is VALID [2020-07-28 19:13:52,470 INFO L280 TraceCheckUtils]: 16: Hoare triple {1210#(not (= 0 |ULTIMATE.start_main_#t~ret39.base|))} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {1211#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:52,471 INFO L263 TraceCheckUtils]: 17: Hoare triple {1211#(not (= 0 ULTIMATE.start_task_~t.base))} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {1195#true} is VALID [2020-07-28 19:13:52,471 INFO L280 TraceCheckUtils]: 18: Hoare triple {1195#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1245#(= min_~n.base |min_#in~n.base|)} is VALID [2020-07-28 19:13:52,472 INFO L280 TraceCheckUtils]: 19: Hoare triple {1245#(= min_~n.base |min_#in~n.base|)} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1246#(= 0 |min_#in~n.base|)} is VALID [2020-07-28 19:13:52,473 INFO L280 TraceCheckUtils]: 20: Hoare triple {1246#(= 0 |min_#in~n.base|)} assume true; {1246#(= 0 |min_#in~n.base|)} is VALID [2020-07-28 19:13:52,474 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {1246#(= 0 |min_#in~n.base|)} {1211#(not (= 0 ULTIMATE.start_task_~t.base))} #167#return; {1196#false} is VALID [2020-07-28 19:13:52,474 INFO L280 TraceCheckUtils]: 22: Hoare triple {1196#false} assume -2147483648 <= task_#t~ret26 && task_#t~ret26 <= 2147483647;task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {1196#false} is VALID [2020-07-28 19:13:52,474 INFO L263 TraceCheckUtils]: 23: Hoare triple {1196#false} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {1195#true} is VALID [2020-07-28 19:13:52,475 INFO L280 TraceCheckUtils]: 24: Hoare triple {1195#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1195#true} is VALID [2020-07-28 19:13:52,475 INFO L280 TraceCheckUtils]: 25: Hoare triple {1195#true} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1195#true} is VALID [2020-07-28 19:13:52,475 INFO L263 TraceCheckUtils]: 26: Hoare triple {1195#true} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {1195#true} is VALID [2020-07-28 19:13:52,475 INFO L280 TraceCheckUtils]: 27: Hoare triple {1195#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1195#true} is VALID [2020-07-28 19:13:52,476 INFO L280 TraceCheckUtils]: 28: Hoare triple {1195#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1195#true} is VALID [2020-07-28 19:13:52,476 INFO L280 TraceCheckUtils]: 29: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,476 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1195#true} {1195#true} #161#return; {1195#true} is VALID [2020-07-28 19:13:52,476 INFO L280 TraceCheckUtils]: 31: Hoare triple {1195#true} assume -2147483648 <= #t~ret23 && #t~ret23 <= 2147483647;call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1195#true} is VALID [2020-07-28 19:13:52,476 INFO L263 TraceCheckUtils]: 32: Hoare triple {1195#true} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {1195#true} is VALID [2020-07-28 19:13:52,477 INFO L280 TraceCheckUtils]: 33: Hoare triple {1195#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1195#true} is VALID [2020-07-28 19:13:52,477 INFO L280 TraceCheckUtils]: 34: Hoare triple {1195#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1195#true} is VALID [2020-07-28 19:13:52,477 INFO L280 TraceCheckUtils]: 35: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,477 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {1195#true} {1195#true} #163#return; {1195#true} is VALID [2020-07-28 19:13:52,478 INFO L280 TraceCheckUtils]: 37: Hoare triple {1195#true} assume -2147483648 <= #t~ret25 && #t~ret25 <= 2147483647;#res := 1 + (#t~ret23 + #t~ret25);havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret23;havoc #t~mem22.base, #t~mem22.offset;havoc #t~ret25; {1195#true} is VALID [2020-07-28 19:13:52,478 INFO L280 TraceCheckUtils]: 38: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,478 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1195#true} {1196#false} #169#return; {1196#false} is VALID [2020-07-28 19:13:52,478 INFO L280 TraceCheckUtils]: 40: Hoare triple {1196#false} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {1196#false} is VALID [2020-07-28 19:13:52,479 INFO L280 TraceCheckUtils]: 41: Hoare triple {1196#false} assume !(0 == assume_cycle_if_not_~cond); {1196#false} is VALID [2020-07-28 19:13:52,479 INFO L280 TraceCheckUtils]: 42: Hoare triple {1196#false} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {1196#false} is VALID [2020-07-28 19:13:52,479 INFO L280 TraceCheckUtils]: 43: Hoare triple {1196#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {1196#false} is VALID [2020-07-28 19:13:52,479 INFO L263 TraceCheckUtils]: 44: Hoare triple {1196#false} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1255#(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 19:13:52,479 INFO L280 TraceCheckUtils]: 45: Hoare triple {1255#(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; {1195#true} is VALID [2020-07-28 19:13:52,480 INFO L280 TraceCheckUtils]: 46: Hoare triple {1195#true} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {1195#true} is VALID [2020-07-28 19:13:52,480 INFO L280 TraceCheckUtils]: 47: Hoare triple {1195#true} assume true; {1195#true} is VALID [2020-07-28 19:13:52,480 INFO L275 TraceCheckUtils]: 48: Hoare quadruple {1195#true} {1196#false} #171#return; {1196#false} is VALID [2020-07-28 19:13:52,480 INFO L280 TraceCheckUtils]: 49: Hoare triple {1196#false} assume -2147483648 <= task_#t~ret29 && task_#t~ret29 <= 2147483647;havoc task_#t~ret29;call task_#t~mem30 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {1196#false} is VALID [2020-07-28 19:13:52,481 INFO L280 TraceCheckUtils]: 50: Hoare triple {1196#false} assume 0 == __VERIFIER_assert_~cond; {1196#false} is VALID [2020-07-28 19:13:52,481 INFO L280 TraceCheckUtils]: 51: Hoare triple {1196#false} assume !false; {1196#false} is VALID [2020-07-28 19:13:52,485 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 19:13:52,486 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1262445333] [2020-07-28 19:13:52,486 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-28 19:13:52,486 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2020-07-28 19:13:52,486 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1757209767] [2020-07-28 19:13:52,487 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 52 [2020-07-28 19:13:52,487 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 19:13:52,487 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2020-07-28 19:13:52,546 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 19:13:52,546 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2020-07-28 19:13:52,546 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 19:13:52,547 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2020-07-28 19:13:52,547 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=18, Invalid=72, Unknown=0, NotChecked=0, Total=90 [2020-07-28 19:13:52,547 INFO L87 Difference]: Start difference. First operand 81 states and 102 transitions. Second operand 10 states. [2020-07-28 19:13:54,235 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:54,235 INFO L93 Difference]: Finished difference Result 143 states and 181 transitions. [2020-07-28 19:13:54,235 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-28 19:13:54,236 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 52 [2020-07-28 19:13:54,238 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 19:13:54,238 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 19:13:54,244 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 173 transitions. [2020-07-28 19:13:54,248 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 19:13:54,254 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 173 transitions. [2020-07-28 19:13:54,254 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 173 transitions. [2020-07-28 19:13:54,567 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 173 edges. 173 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 19:13:54,572 INFO L225 Difference]: With dead ends: 143 [2020-07-28 19:13:54,573 INFO L226 Difference]: Without dead ends: 86 [2020-07-28 19:13:54,574 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 27 GetRequests, 15 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 5 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=38, Invalid=144, Unknown=0, NotChecked=0, Total=182 [2020-07-28 19:13:54,575 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 86 states. [2020-07-28 19:13:54,608 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 86 to 83. [2020-07-28 19:13:54,608 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 19:13:54,608 INFO L82 GeneralOperation]: Start isEquivalent. First operand 86 states. Second operand 83 states. [2020-07-28 19:13:54,608 INFO L74 IsIncluded]: Start isIncluded. First operand 86 states. Second operand 83 states. [2020-07-28 19:13:54,608 INFO L87 Difference]: Start difference. First operand 86 states. Second operand 83 states. [2020-07-28 19:13:54,614 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:54,614 INFO L93 Difference]: Finished difference Result 86 states and 111 transitions. [2020-07-28 19:13:54,614 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 111 transitions. [2020-07-28 19:13:54,615 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:13:54,615 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:13:54,615 INFO L74 IsIncluded]: Start isIncluded. First operand 83 states. Second operand 86 states. [2020-07-28 19:13:54,615 INFO L87 Difference]: Start difference. First operand 83 states. Second operand 86 states. [2020-07-28 19:13:54,621 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:54,621 INFO L93 Difference]: Finished difference Result 86 states and 111 transitions. [2020-07-28 19:13:54,621 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 111 transitions. [2020-07-28 19:13:54,622 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:13:54,622 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:13:54,622 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 19:13:54,623 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 19:13:54,623 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 83 states. [2020-07-28 19:13:54,627 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 83 states to 83 states and 105 transitions. [2020-07-28 19:13:54,628 INFO L78 Accepts]: Start accepts. Automaton has 83 states and 105 transitions. Word has length 52 [2020-07-28 19:13:54,628 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 19:13:54,628 INFO L479 AbstractCegarLoop]: Abstraction has 83 states and 105 transitions. [2020-07-28 19:13:54,628 INFO L480 AbstractCegarLoop]: Interpolant automaton has 10 states. [2020-07-28 19:13:54,628 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 105 transitions. [2020-07-28 19:13:54,630 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 66 [2020-07-28 19:13:54,630 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 19:13:54,630 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 19:13:54,630 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2020-07-28 19:13:54,630 INFO L427 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 19:13:54,631 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 19:13:54,631 INFO L82 PathProgramCache]: Analyzing trace with hash -431413566, now seen corresponding path program 1 times [2020-07-28 19:13:54,631 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 19:13:54,631 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [712311719] [2020-07-28 19:13:54,631 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 19:13:54,662 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:54,731 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 19:13:54,740 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:54,770 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2020-07-28 19:13:54,773 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:54,777 INFO L280 TraceCheckUtils]: 0: Hoare triple {1778#(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; {1723#true} is VALID [2020-07-28 19:13:54,777 INFO L280 TraceCheckUtils]: 1: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,778 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1723#true} {1779#(= nondet_tree_~n~0.offset 0)} #151#return; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:54,778 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2020-07-28 19:13:54,780 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:54,784 INFO L280 TraceCheckUtils]: 0: Hoare triple {1778#(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; {1723#true} is VALID [2020-07-28 19:13:54,784 INFO L280 TraceCheckUtils]: 1: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,785 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1723#true} {1779#(= nondet_tree_~n~0.offset 0)} #153#return; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:54,787 INFO L280 TraceCheckUtils]: 0: Hoare triple {1778#(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; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:54,787 INFO L263 TraceCheckUtils]: 1: Hoare triple {1779#(= nondet_tree_~n~0.offset 0)} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1778#(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 19:13:54,788 INFO L280 TraceCheckUtils]: 2: Hoare triple {1778#(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; {1723#true} is VALID [2020-07-28 19:13:54,788 INFO L280 TraceCheckUtils]: 3: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,789 INFO L275 TraceCheckUtils]: 4: Hoare quadruple {1723#true} {1779#(= nondet_tree_~n~0.offset 0)} #151#return; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:54,789 INFO L280 TraceCheckUtils]: 5: Hoare triple {1779#(= 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; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:54,790 INFO L263 TraceCheckUtils]: 6: Hoare triple {1779#(= nondet_tree_~n~0.offset 0)} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1778#(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 19:13:54,790 INFO L280 TraceCheckUtils]: 7: Hoare triple {1778#(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; {1723#true} is VALID [2020-07-28 19:13:54,791 INFO L280 TraceCheckUtils]: 8: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,791 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {1723#true} {1779#(= nondet_tree_~n~0.offset 0)} #153#return; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:54,792 INFO L280 TraceCheckUtils]: 10: Hoare triple {1779#(= 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; {1786#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 19:13:54,793 INFO L280 TraceCheckUtils]: 11: Hoare triple {1786#(= 0 |nondet_tree_#res.offset|)} assume true; {1786#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 19:13:54,794 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1786#(= 0 |nondet_tree_#res.offset|)} {1723#true} #165#return; {1738#(= 0 |ULTIMATE.start_main_#t~ret39.offset|)} is VALID [2020-07-28 19:13:54,794 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2020-07-28 19:13:54,800 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:54,889 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 19:13:54,891 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:54,901 INFO L280 TraceCheckUtils]: 0: Hoare triple {1723#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1723#true} is VALID [2020-07-28 19:13:54,901 INFO L280 TraceCheckUtils]: 1: Hoare triple {1723#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1723#true} is VALID [2020-07-28 19:13:54,901 INFO L280 TraceCheckUtils]: 2: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,902 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1723#true} {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #157#return; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:54,903 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2020-07-28 19:13:54,904 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:54,907 INFO L280 TraceCheckUtils]: 0: Hoare triple {1723#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1723#true} is VALID [2020-07-28 19:13:54,907 INFO L280 TraceCheckUtils]: 1: Hoare triple {1723#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1723#true} is VALID [2020-07-28 19:13:54,908 INFO L280 TraceCheckUtils]: 2: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,909 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1723#true} {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #159#return; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:54,909 INFO L280 TraceCheckUtils]: 0: Hoare triple {1723#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1787#(and (= min_~n.base |min_#in~n.base|) (= min_~n.offset |min_#in~n.offset|))} is VALID [2020-07-28 19:13:54,910 INFO L280 TraceCheckUtils]: 1: Hoare triple {1787#(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 := read~int(~n.base, ~n.offset, 4);~a~0 := #t~mem6;havoc #t~mem6;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~n.base, 4 + ~n.offset, 4); {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:54,911 INFO L263 TraceCheckUtils]: 2: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} call #t~ret8 := min(#t~mem7.base, #t~mem7.offset); {1723#true} is VALID [2020-07-28 19:13:54,911 INFO L280 TraceCheckUtils]: 3: Hoare triple {1723#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1723#true} is VALID [2020-07-28 19:13:54,911 INFO L280 TraceCheckUtils]: 4: Hoare triple {1723#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1723#true} is VALID [2020-07-28 19:13:54,911 INFO L280 TraceCheckUtils]: 5: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,912 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {1723#true} {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #157#return; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:54,913 INFO L280 TraceCheckUtils]: 7: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume -2147483648 <= #t~ret8 && #t~ret8 <= 2147483647;~b~0 := #t~ret8;havoc #t~ret8;havoc #t~mem7.base, #t~mem7.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~n.base, 8 + ~n.offset, 4); {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:54,913 INFO L263 TraceCheckUtils]: 8: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} call #t~ret10 := min(#t~mem9.base, #t~mem9.offset); {1723#true} is VALID [2020-07-28 19:13:54,913 INFO L280 TraceCheckUtils]: 9: Hoare triple {1723#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1723#true} is VALID [2020-07-28 19:13:54,913 INFO L280 TraceCheckUtils]: 10: Hoare triple {1723#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1723#true} is VALID [2020-07-28 19:13:54,914 INFO L280 TraceCheckUtils]: 11: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,915 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1723#true} {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #159#return; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:54,915 INFO L280 TraceCheckUtils]: 13: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume -2147483648 <= #t~ret10 && #t~ret10 <= 2147483647;~c~0 := #t~ret10;havoc #t~mem9.base, #t~mem9.offset;havoc #t~ret10; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:54,916 INFO L280 TraceCheckUtils]: 14: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume ~b~0 <= ~a~0 && ~b~0 <= ~c~0;#res := ~b~0; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:54,916 INFO L280 TraceCheckUtils]: 15: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume true; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:54,921 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} {1739#(= 0 ULTIMATE.start_task_~t.offset)} #167#return; {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:54,922 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 36 [2020-07-28 19:13:54,929 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:54,934 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2020-07-28 19:13:54,935 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:54,937 INFO L280 TraceCheckUtils]: 0: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1723#true} is VALID [2020-07-28 19:13:54,937 INFO L280 TraceCheckUtils]: 1: Hoare triple {1723#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1723#true} is VALID [2020-07-28 19:13:54,937 INFO L280 TraceCheckUtils]: 2: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,937 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1723#true} {1723#true} #161#return; {1723#true} is VALID [2020-07-28 19:13:54,938 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2020-07-28 19:13:54,938 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:54,941 INFO L280 TraceCheckUtils]: 0: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1723#true} is VALID [2020-07-28 19:13:54,941 INFO L280 TraceCheckUtils]: 1: Hoare triple {1723#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1723#true} is VALID [2020-07-28 19:13:54,942 INFO L280 TraceCheckUtils]: 2: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,942 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1723#true} {1723#true} #163#return; {1723#true} is VALID [2020-07-28 19:13:54,942 INFO L280 TraceCheckUtils]: 0: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1723#true} is VALID [2020-07-28 19:13:54,942 INFO L280 TraceCheckUtils]: 1: Hoare triple {1723#true} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1723#true} is VALID [2020-07-28 19:13:54,943 INFO L263 TraceCheckUtils]: 2: Hoare triple {1723#true} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {1723#true} is VALID [2020-07-28 19:13:54,943 INFO L280 TraceCheckUtils]: 3: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1723#true} is VALID [2020-07-28 19:13:54,943 INFO L280 TraceCheckUtils]: 4: Hoare triple {1723#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1723#true} is VALID [2020-07-28 19:13:54,943 INFO L280 TraceCheckUtils]: 5: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,944 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {1723#true} {1723#true} #161#return; {1723#true} is VALID [2020-07-28 19:13:54,944 INFO L280 TraceCheckUtils]: 7: Hoare triple {1723#true} assume -2147483648 <= #t~ret23 && #t~ret23 <= 2147483647;call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1723#true} is VALID [2020-07-28 19:13:54,944 INFO L263 TraceCheckUtils]: 8: Hoare triple {1723#true} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {1723#true} is VALID [2020-07-28 19:13:54,944 INFO L280 TraceCheckUtils]: 9: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1723#true} is VALID [2020-07-28 19:13:54,944 INFO L280 TraceCheckUtils]: 10: Hoare triple {1723#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1723#true} is VALID [2020-07-28 19:13:54,945 INFO L280 TraceCheckUtils]: 11: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,945 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1723#true} {1723#true} #163#return; {1723#true} is VALID [2020-07-28 19:13:54,945 INFO L280 TraceCheckUtils]: 13: Hoare triple {1723#true} assume -2147483648 <= #t~ret25 && #t~ret25 <= 2147483647;#res := 1 + (#t~ret23 + #t~ret25);havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret23;havoc #t~mem22.base, #t~mem22.offset;havoc #t~ret25; {1723#true} is VALID [2020-07-28 19:13:54,945 INFO L280 TraceCheckUtils]: 14: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:54,949 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1723#true} {1757#(not (= 0 ULTIMATE.start_task_~t.base))} #169#return; {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:54,966 INFO L375 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 57 [2020-07-28 19:13:54,969 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:55,015 INFO L280 TraceCheckUtils]: 0: Hoare triple {1805#(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; {1806#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} is VALID [2020-07-28 19:13:55,016 INFO L280 TraceCheckUtils]: 1: Hoare triple {1806#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {1807#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 19:13:55,017 INFO L280 TraceCheckUtils]: 2: Hoare triple {1807#(= 0 |tree_inorder_#in~t.base|)} assume true; {1807#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 19:13:55,018 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1807#(= 0 |tree_inorder_#in~t.base|)} {1757#(not (= 0 ULTIMATE.start_task_~t.base))} #171#return; {1724#false} is VALID [2020-07-28 19:13:55,018 INFO L280 TraceCheckUtils]: 0: Hoare triple {1723#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {1723#true} is VALID [2020-07-28 19:13:55,018 INFO L280 TraceCheckUtils]: 1: Hoare triple {1723#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {1723#true} is VALID [2020-07-28 19:13:55,019 INFO L263 TraceCheckUtils]: 2: Hoare triple {1723#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {1778#(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 19:13:55,020 INFO L280 TraceCheckUtils]: 3: Hoare triple {1778#(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; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:55,021 INFO L263 TraceCheckUtils]: 4: Hoare triple {1779#(= nondet_tree_~n~0.offset 0)} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1778#(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 19:13:55,021 INFO L280 TraceCheckUtils]: 5: Hoare triple {1778#(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; {1723#true} is VALID [2020-07-28 19:13:55,021 INFO L280 TraceCheckUtils]: 6: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,022 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1723#true} {1779#(= nondet_tree_~n~0.offset 0)} #151#return; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:55,022 INFO L280 TraceCheckUtils]: 8: Hoare triple {1779#(= 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; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:55,023 INFO L263 TraceCheckUtils]: 9: Hoare triple {1779#(= nondet_tree_~n~0.offset 0)} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1778#(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 19:13:55,023 INFO L280 TraceCheckUtils]: 10: Hoare triple {1778#(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; {1723#true} is VALID [2020-07-28 19:13:55,024 INFO L280 TraceCheckUtils]: 11: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,024 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1723#true} {1779#(= nondet_tree_~n~0.offset 0)} #153#return; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:55,025 INFO L280 TraceCheckUtils]: 13: Hoare triple {1779#(= 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; {1786#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 19:13:55,025 INFO L280 TraceCheckUtils]: 14: Hoare triple {1786#(= 0 |nondet_tree_#res.offset|)} assume true; {1786#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 19:13:55,026 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1786#(= 0 |nondet_tree_#res.offset|)} {1723#true} #165#return; {1738#(= 0 |ULTIMATE.start_main_#t~ret39.offset|)} is VALID [2020-07-28 19:13:55,027 INFO L280 TraceCheckUtils]: 16: Hoare triple {1738#(= 0 |ULTIMATE.start_main_#t~ret39.offset|)} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {1739#(= 0 ULTIMATE.start_task_~t.offset)} is VALID [2020-07-28 19:13:55,027 INFO L263 TraceCheckUtils]: 17: Hoare triple {1739#(= 0 ULTIMATE.start_task_~t.offset)} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {1723#true} is VALID [2020-07-28 19:13:55,027 INFO L280 TraceCheckUtils]: 18: Hoare triple {1723#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1787#(and (= min_~n.base |min_#in~n.base|) (= min_~n.offset |min_#in~n.offset|))} is VALID [2020-07-28 19:13:55,028 INFO L280 TraceCheckUtils]: 19: Hoare triple {1787#(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 := read~int(~n.base, ~n.offset, 4);~a~0 := #t~mem6;havoc #t~mem6;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~n.base, 4 + ~n.offset, 4); {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:55,028 INFO L263 TraceCheckUtils]: 20: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} call #t~ret8 := min(#t~mem7.base, #t~mem7.offset); {1723#true} is VALID [2020-07-28 19:13:55,028 INFO L280 TraceCheckUtils]: 21: Hoare triple {1723#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1723#true} is VALID [2020-07-28 19:13:55,029 INFO L280 TraceCheckUtils]: 22: Hoare triple {1723#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1723#true} is VALID [2020-07-28 19:13:55,029 INFO L280 TraceCheckUtils]: 23: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,029 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {1723#true} {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #157#return; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:55,030 INFO L280 TraceCheckUtils]: 25: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume -2147483648 <= #t~ret8 && #t~ret8 <= 2147483647;~b~0 := #t~ret8;havoc #t~ret8;havoc #t~mem7.base, #t~mem7.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~n.base, 8 + ~n.offset, 4); {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:55,030 INFO L263 TraceCheckUtils]: 26: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} call #t~ret10 := min(#t~mem9.base, #t~mem9.offset); {1723#true} is VALID [2020-07-28 19:13:55,030 INFO L280 TraceCheckUtils]: 27: Hoare triple {1723#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1723#true} is VALID [2020-07-28 19:13:55,031 INFO L280 TraceCheckUtils]: 28: Hoare triple {1723#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1723#true} is VALID [2020-07-28 19:13:55,031 INFO L280 TraceCheckUtils]: 29: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,033 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1723#true} {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} #159#return; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:55,041 INFO L280 TraceCheckUtils]: 31: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume -2147483648 <= #t~ret10 && #t~ret10 <= 2147483647;~c~0 := #t~ret10;havoc #t~mem9.base, #t~mem9.offset;havoc #t~ret10; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:55,042 INFO L280 TraceCheckUtils]: 32: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume ~b~0 <= ~a~0 && ~b~0 <= ~c~0;#res := ~b~0; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:55,043 INFO L280 TraceCheckUtils]: 33: Hoare triple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} assume true; {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} is VALID [2020-07-28 19:13:55,044 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {1788#(or (not (= 0 |min_#in~n.base|)) (not (= 0 |min_#in~n.offset|)))} {1739#(= 0 ULTIMATE.start_task_~t.offset)} #167#return; {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,045 INFO L280 TraceCheckUtils]: 35: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} assume -2147483648 <= task_#t~ret26 && task_#t~ret26 <= 2147483647;task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,045 INFO L263 TraceCheckUtils]: 36: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {1723#true} is VALID [2020-07-28 19:13:55,045 INFO L280 TraceCheckUtils]: 37: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1723#true} is VALID [2020-07-28 19:13:55,046 INFO L280 TraceCheckUtils]: 38: Hoare triple {1723#true} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1723#true} is VALID [2020-07-28 19:13:55,046 INFO L263 TraceCheckUtils]: 39: Hoare triple {1723#true} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {1723#true} is VALID [2020-07-28 19:13:55,046 INFO L280 TraceCheckUtils]: 40: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1723#true} is VALID [2020-07-28 19:13:55,047 INFO L280 TraceCheckUtils]: 41: Hoare triple {1723#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1723#true} is VALID [2020-07-28 19:13:55,047 INFO L280 TraceCheckUtils]: 42: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,047 INFO L275 TraceCheckUtils]: 43: Hoare quadruple {1723#true} {1723#true} #161#return; {1723#true} is VALID [2020-07-28 19:13:55,047 INFO L280 TraceCheckUtils]: 44: Hoare triple {1723#true} assume -2147483648 <= #t~ret23 && #t~ret23 <= 2147483647;call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1723#true} is VALID [2020-07-28 19:13:55,048 INFO L263 TraceCheckUtils]: 45: Hoare triple {1723#true} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {1723#true} is VALID [2020-07-28 19:13:55,048 INFO L280 TraceCheckUtils]: 46: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1723#true} is VALID [2020-07-28 19:13:55,048 INFO L280 TraceCheckUtils]: 47: Hoare triple {1723#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1723#true} is VALID [2020-07-28 19:13:55,048 INFO L280 TraceCheckUtils]: 48: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,048 INFO L275 TraceCheckUtils]: 49: Hoare quadruple {1723#true} {1723#true} #163#return; {1723#true} is VALID [2020-07-28 19:13:55,049 INFO L280 TraceCheckUtils]: 50: Hoare triple {1723#true} assume -2147483648 <= #t~ret25 && #t~ret25 <= 2147483647;#res := 1 + (#t~ret23 + #t~ret25);havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret23;havoc #t~mem22.base, #t~mem22.offset;havoc #t~ret25; {1723#true} is VALID [2020-07-28 19:13:55,049 INFO L280 TraceCheckUtils]: 51: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,060 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {1723#true} {1757#(not (= 0 ULTIMATE.start_task_~t.base))} #169#return; {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,060 INFO L280 TraceCheckUtils]: 53: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,061 INFO L280 TraceCheckUtils]: 54: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} assume !(0 == assume_cycle_if_not_~cond); {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,062 INFO L280 TraceCheckUtils]: 55: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,063 INFO L280 TraceCheckUtils]: 56: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,064 INFO L263 TraceCheckUtils]: 57: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1805#(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 19:13:55,065 INFO L280 TraceCheckUtils]: 58: Hoare triple {1805#(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; {1806#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} is VALID [2020-07-28 19:13:55,066 INFO L280 TraceCheckUtils]: 59: Hoare triple {1806#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {1807#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 19:13:55,066 INFO L280 TraceCheckUtils]: 60: Hoare triple {1807#(= 0 |tree_inorder_#in~t.base|)} assume true; {1807#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 19:13:55,068 INFO L275 TraceCheckUtils]: 61: Hoare quadruple {1807#(= 0 |tree_inorder_#in~t.base|)} {1757#(not (= 0 ULTIMATE.start_task_~t.base))} #171#return; {1724#false} is VALID [2020-07-28 19:13:55,068 INFO L280 TraceCheckUtils]: 62: Hoare triple {1724#false} assume -2147483648 <= task_#t~ret29 && task_#t~ret29 <= 2147483647;havoc task_#t~ret29;call task_#t~mem30 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {1724#false} is VALID [2020-07-28 19:13:55,068 INFO L280 TraceCheckUtils]: 63: Hoare triple {1724#false} assume 0 == __VERIFIER_assert_~cond; {1724#false} is VALID [2020-07-28 19:13:55,068 INFO L280 TraceCheckUtils]: 64: Hoare triple {1724#false} assume !false; {1724#false} is VALID [2020-07-28 19:13:55,076 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 19:13:55,076 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [712311719] [2020-07-28 19:13:55,077 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [438449618] [2020-07-28 19:13:55,077 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 19:13:55,167 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:55,170 INFO L263 TraceCheckSpWp]: Trace formula consists of 334 conjuncts, 27 conjunts are in the unsatisfiable core [2020-07-28 19:13:55,194 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:13:55,198 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 19:13:55,374 INFO L280 TraceCheckUtils]: 0: Hoare triple {1723#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier; {1723#true} is VALID [2020-07-28 19:13:55,374 INFO L280 TraceCheckUtils]: 1: Hoare triple {1723#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {1723#true} is VALID [2020-07-28 19:13:55,374 INFO L263 TraceCheckUtils]: 2: Hoare triple {1723#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {1723#true} is VALID [2020-07-28 19:13:55,375 INFO L280 TraceCheckUtils]: 3: Hoare triple {1723#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; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:55,376 INFO L263 TraceCheckUtils]: 4: Hoare triple {1779#(= nondet_tree_~n~0.offset 0)} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1723#true} is VALID [2020-07-28 19:13:55,376 INFO L280 TraceCheckUtils]: 5: Hoare triple {1723#true} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {1723#true} is VALID [2020-07-28 19:13:55,376 INFO L280 TraceCheckUtils]: 6: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,377 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1723#true} {1779#(= nondet_tree_~n~0.offset 0)} #151#return; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:55,377 INFO L280 TraceCheckUtils]: 8: Hoare triple {1779#(= 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; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:55,378 INFO L263 TraceCheckUtils]: 9: Hoare triple {1779#(= nondet_tree_~n~0.offset 0)} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1723#true} is VALID [2020-07-28 19:13:55,378 INFO L280 TraceCheckUtils]: 10: Hoare triple {1723#true} assume 0 != #t~nondet1 % 256;havoc #t~nondet1;#res.base, #res.offset := 0, 0; {1723#true} is VALID [2020-07-28 19:13:55,378 INFO L280 TraceCheckUtils]: 11: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,378 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1723#true} {1779#(= nondet_tree_~n~0.offset 0)} #153#return; {1779#(= nondet_tree_~n~0.offset 0)} is VALID [2020-07-28 19:13:55,380 INFO L280 TraceCheckUtils]: 13: Hoare triple {1779#(= 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; {1786#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 19:13:55,380 INFO L280 TraceCheckUtils]: 14: Hoare triple {1786#(= 0 |nondet_tree_#res.offset|)} assume true; {1786#(= 0 |nondet_tree_#res.offset|)} is VALID [2020-07-28 19:13:55,381 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1786#(= 0 |nondet_tree_#res.offset|)} {1723#true} #165#return; {1738#(= 0 |ULTIMATE.start_main_#t~ret39.offset|)} is VALID [2020-07-28 19:13:55,381 INFO L280 TraceCheckUtils]: 16: Hoare triple {1738#(= 0 |ULTIMATE.start_main_#t~ret39.offset|)} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {1739#(= 0 ULTIMATE.start_task_~t.offset)} is VALID [2020-07-28 19:13:55,381 INFO L263 TraceCheckUtils]: 17: Hoare triple {1739#(= 0 ULTIMATE.start_task_~t.offset)} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {1723#true} is VALID [2020-07-28 19:13:55,381 INFO L280 TraceCheckUtils]: 18: Hoare triple {1723#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1723#true} is VALID [2020-07-28 19:13:55,382 INFO L280 TraceCheckUtils]: 19: Hoare triple {1723#true} assume !(~n.base == 0 && ~n.offset == 0);call #t~mem6 := read~int(~n.base, ~n.offset, 4);~a~0 := #t~mem6;havoc #t~mem6;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~n.base, 4 + ~n.offset, 4); {1723#true} is VALID [2020-07-28 19:13:55,382 INFO L263 TraceCheckUtils]: 20: Hoare triple {1723#true} call #t~ret8 := min(#t~mem7.base, #t~mem7.offset); {1723#true} is VALID [2020-07-28 19:13:55,382 INFO L280 TraceCheckUtils]: 21: Hoare triple {1723#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1723#true} is VALID [2020-07-28 19:13:55,383 INFO L280 TraceCheckUtils]: 22: Hoare triple {1723#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1723#true} is VALID [2020-07-28 19:13:55,383 INFO L280 TraceCheckUtils]: 23: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,385 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {1723#true} {1723#true} #157#return; {1723#true} is VALID [2020-07-28 19:13:55,385 INFO L280 TraceCheckUtils]: 25: Hoare triple {1723#true} assume -2147483648 <= #t~ret8 && #t~ret8 <= 2147483647;~b~0 := #t~ret8;havoc #t~ret8;havoc #t~mem7.base, #t~mem7.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~n.base, 8 + ~n.offset, 4); {1723#true} is VALID [2020-07-28 19:13:55,385 INFO L263 TraceCheckUtils]: 26: Hoare triple {1723#true} call #t~ret10 := min(#t~mem9.base, #t~mem9.offset); {1723#true} is VALID [2020-07-28 19:13:55,385 INFO L280 TraceCheckUtils]: 27: Hoare triple {1723#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1723#true} is VALID [2020-07-28 19:13:55,385 INFO L280 TraceCheckUtils]: 28: Hoare triple {1723#true} assume ~n.base == 0 && ~n.offset == 0;#res := 2147483647; {1723#true} is VALID [2020-07-28 19:13:55,385 INFO L280 TraceCheckUtils]: 29: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,386 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1723#true} {1723#true} #159#return; {1723#true} is VALID [2020-07-28 19:13:55,386 INFO L280 TraceCheckUtils]: 31: Hoare triple {1723#true} assume -2147483648 <= #t~ret10 && #t~ret10 <= 2147483647;~c~0 := #t~ret10;havoc #t~mem9.base, #t~mem9.offset;havoc #t~ret10; {1723#true} is VALID [2020-07-28 19:13:55,386 INFO L280 TraceCheckUtils]: 32: Hoare triple {1723#true} assume ~b~0 <= ~a~0 && ~b~0 <= ~c~0;#res := ~b~0; {1723#true} is VALID [2020-07-28 19:13:55,386 INFO L280 TraceCheckUtils]: 33: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,387 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {1723#true} {1739#(= 0 ULTIMATE.start_task_~t.offset)} #167#return; {1739#(= 0 ULTIMATE.start_task_~t.offset)} is VALID [2020-07-28 19:13:55,387 INFO L280 TraceCheckUtils]: 35: Hoare triple {1739#(= 0 ULTIMATE.start_task_~t.offset)} assume -2147483648 <= task_#t~ret26 && task_#t~ret26 <= 2147483647;task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4); {1739#(= 0 ULTIMATE.start_task_~t.offset)} is VALID [2020-07-28 19:13:55,387 INFO L263 TraceCheckUtils]: 36: Hoare triple {1739#(= 0 ULTIMATE.start_task_~t.offset)} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {1723#true} is VALID [2020-07-28 19:13:55,388 INFO L280 TraceCheckUtils]: 37: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1922#(and (= |size_#in~t.base| size_~t.base) (= |size_#in~t.offset| size_~t.offset))} is VALID [2020-07-28 19:13:55,388 INFO L280 TraceCheckUtils]: 38: Hoare triple {1922#(and (= |size_#in~t.base| size_~t.base) (= |size_#in~t.offset| size_~t.offset))} assume !(~t.base == 0 && ~t.offset == 0);call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, 4 + ~t.offset, 4); {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:55,389 INFO L263 TraceCheckUtils]: 39: Hoare triple {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {1723#true} is VALID [2020-07-28 19:13:55,389 INFO L280 TraceCheckUtils]: 40: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1723#true} is VALID [2020-07-28 19:13:55,389 INFO L280 TraceCheckUtils]: 41: Hoare triple {1723#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1723#true} is VALID [2020-07-28 19:13:55,389 INFO L280 TraceCheckUtils]: 42: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,390 INFO L275 TraceCheckUtils]: 43: Hoare quadruple {1723#true} {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #161#return; {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:55,391 INFO L280 TraceCheckUtils]: 44: Hoare triple {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret23 && #t~ret23 <= 2147483647;call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, 8 + ~t.offset, 4); {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:55,392 INFO L263 TraceCheckUtils]: 45: Hoare triple {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {1723#true} is VALID [2020-07-28 19:13:55,392 INFO L280 TraceCheckUtils]: 46: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1723#true} is VALID [2020-07-28 19:13:55,392 INFO L280 TraceCheckUtils]: 47: Hoare triple {1723#true} assume ~t.base == 0 && ~t.offset == 0;#res := 0; {1723#true} is VALID [2020-07-28 19:13:55,392 INFO L280 TraceCheckUtils]: 48: Hoare triple {1723#true} assume true; {1723#true} is VALID [2020-07-28 19:13:55,394 INFO L275 TraceCheckUtils]: 49: Hoare quadruple {1723#true} {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} #163#return; {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:55,395 INFO L280 TraceCheckUtils]: 50: Hoare triple {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume -2147483648 <= #t~ret25 && #t~ret25 <= 2147483647;#res := 1 + (#t~ret23 + #t~ret25);havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret23;havoc #t~mem22.base, #t~mem22.offset;havoc #t~ret25; {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:55,395 INFO L280 TraceCheckUtils]: 51: Hoare triple {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} assume true; {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} is VALID [2020-07-28 19:13:55,396 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {1926#(or (not (= |size_#in~t.offset| 0)) (not (= 0 |size_#in~t.base|)))} {1739#(= 0 ULTIMATE.start_task_~t.offset)} #169#return; {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,397 INFO L280 TraceCheckUtils]: 53: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} assume -2147483648 <= task_#t~ret27 && task_#t~ret27 <= 2147483647;task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0 != task_~n~1 then 1 else 0);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,397 INFO L280 TraceCheckUtils]: 54: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} assume !(0 == assume_cycle_if_not_~cond); {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,399 INFO L280 TraceCheckUtils]: 55: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4, 4 * task_~n~1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,399 INFO L280 TraceCheckUtils]: 56: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {1757#(not (= 0 ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:13:55,399 INFO L263 TraceCheckUtils]: 57: Hoare triple {1757#(not (= 0 ULTIMATE.start_task_~t.base))} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1723#true} is VALID [2020-07-28 19:13:55,400 INFO L280 TraceCheckUtils]: 58: Hoare triple {1723#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {1806#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} is VALID [2020-07-28 19:13:55,400 INFO L280 TraceCheckUtils]: 59: Hoare triple {1806#(= |tree_inorder_#in~t.base| tree_inorder_~t.base)} assume ~t.base == 0 && ~t.offset == 0;#res := ~i; {1807#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 19:13:55,401 INFO L280 TraceCheckUtils]: 60: Hoare triple {1807#(= 0 |tree_inorder_#in~t.base|)} assume true; {1807#(= 0 |tree_inorder_#in~t.base|)} is VALID [2020-07-28 19:13:55,403 INFO L275 TraceCheckUtils]: 61: Hoare quadruple {1807#(= 0 |tree_inorder_#in~t.base|)} {1757#(not (= 0 ULTIMATE.start_task_~t.base))} #171#return; {1724#false} is VALID [2020-07-28 19:13:55,403 INFO L280 TraceCheckUtils]: 62: Hoare triple {1724#false} assume -2147483648 <= task_#t~ret29 && task_#t~ret29 <= 2147483647;havoc task_#t~ret29;call task_#t~mem30 := read~int(task_~x~0.base, task_~x~0.offset, 4);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1 else 0);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {1724#false} is VALID [2020-07-28 19:13:55,403 INFO L280 TraceCheckUtils]: 63: Hoare triple {1724#false} assume 0 == __VERIFIER_assert_~cond; {1724#false} is VALID [2020-07-28 19:13:55,403 INFO L280 TraceCheckUtils]: 64: Hoare triple {1724#false} assume !false; {1724#false} is VALID [2020-07-28 19:13:55,407 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 19:13:55,408 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 19:13:55,408 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 11] total 15 [2020-07-28 19:13:55,408 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [83238762] [2020-07-28 19:13:55,409 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 65 [2020-07-28 19:13:55,413 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 19:13:55,413 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states. [2020-07-28 19:13:55,509 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 19:13:55,509 INFO L459 AbstractCegarLoop]: Interpolant automaton has 15 states [2020-07-28 19:13:55,510 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 19:13:55,510 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2020-07-28 19:13:55,510 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=182, Unknown=0, NotChecked=0, Total=210 [2020-07-28 19:13:55,511 INFO L87 Difference]: Start difference. First operand 83 states and 105 transitions. Second operand 15 states. [2020-07-28 19:13:58,600 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:58,600 INFO L93 Difference]: Finished difference Result 138 states and 174 transitions. [2020-07-28 19:13:58,600 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2020-07-28 19:13:58,600 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 65 [2020-07-28 19:13:58,601 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 19:13:58,601 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-28 19:13:58,606 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 170 transitions. [2020-07-28 19:13:58,606 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-28 19:13:58,611 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 170 transitions. [2020-07-28 19:13:58,611 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 17 states and 170 transitions. [2020-07-28 19:13:58,860 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 19:13:58,864 INFO L225 Difference]: With dead ends: 138 [2020-07-28 19:13:58,864 INFO L226 Difference]: Without dead ends: 88 [2020-07-28 19:13:58,865 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 106 GetRequests, 82 SyntacticMatches, 0 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 55 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=89, Invalid=561, Unknown=0, NotChecked=0, Total=650 [2020-07-28 19:13:58,866 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 88 states. [2020-07-28 19:13:58,921 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 88 to 87. [2020-07-28 19:13:58,921 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 19:13:58,921 INFO L82 GeneralOperation]: Start isEquivalent. First operand 88 states. Second operand 87 states. [2020-07-28 19:13:58,921 INFO L74 IsIncluded]: Start isIncluded. First operand 88 states. Second operand 87 states. [2020-07-28 19:13:58,922 INFO L87 Difference]: Start difference. First operand 88 states. Second operand 87 states. [2020-07-28 19:13:58,927 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:58,927 INFO L93 Difference]: Finished difference Result 88 states and 110 transitions. [2020-07-28 19:13:58,927 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 110 transitions. [2020-07-28 19:13:58,928 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:13:58,928 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:13:58,928 INFO L74 IsIncluded]: Start isIncluded. First operand 87 states. Second operand 88 states. [2020-07-28 19:13:58,928 INFO L87 Difference]: Start difference. First operand 87 states. Second operand 88 states. [2020-07-28 19:13:58,933 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:13:58,934 INFO L93 Difference]: Finished difference Result 88 states and 110 transitions. [2020-07-28 19:13:58,934 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 110 transitions. [2020-07-28 19:13:58,934 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:13:58,935 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:13:58,935 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 19:13:58,935 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 19:13:58,935 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 87 states. [2020-07-28 19:13:58,939 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 87 states to 87 states and 109 transitions. [2020-07-28 19:13:58,939 INFO L78 Accepts]: Start accepts. Automaton has 87 states and 109 transitions. Word has length 65 [2020-07-28 19:13:58,940 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 19:13:58,940 INFO L479 AbstractCegarLoop]: Abstraction has 87 states and 109 transitions. [2020-07-28 19:13:58,940 INFO L480 AbstractCegarLoop]: Interpolant automaton has 15 states. [2020-07-28 19:13:58,940 INFO L276 IsEmpty]: Start isEmpty. Operand 87 states and 109 transitions. [2020-07-28 19:13:58,941 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 78 [2020-07-28 19:13:58,941 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 19:13:58,941 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 19:13:59,156 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,3 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 19:13:59,157 INFO L427 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 19:13:59,158 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 19:13:59,158 INFO L82 PathProgramCache]: Analyzing trace with hash 1851220005, now seen corresponding path program 1 times [2020-07-28 19:13:59,159 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 19:13:59,159 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1935229644] [2020-07-28 19:13:59,160 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 19:13:59,242 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-28 19:13:59,242 INFO L221 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2020-07-28 19:13:59,309 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-28 19:13:59,309 INFO L221 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2020-07-28 19:13:59,367 INFO L174 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2020-07-28 19:13:59,368 INFO L520 BasicCegarLoop]: Counterexample might be feasible [2020-07-28 19:13:59,368 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4 [2020-07-28 19:13:59,420 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,422 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,422 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,423 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,428 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,429 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,429 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,429 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,429 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,430 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,430 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,430 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:13:59,451 FATAL L488 DefaultTranslator]: Callstack has procedure call flag but succeeding procedure is empty at [CALL] call #t~ret39 := nondet_tree(); [2020-07-28 19:13:59,452 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 19:13:59,459 INFO L168 Benchmark]: Toolchain (without parser) took 14683.98 ms. Allocated memory was 1.0 GB in the beginning and 1.4 GB in the end (delta: 376.4 MB). Free memory was 961.6 MB in the beginning and 1.0 GB in the end (delta: -40.3 MB). Peak memory consumption was 336.1 MB. Max. memory is 11.5 GB. [2020-07-28 19:13:59,460 INFO L168 Benchmark]: CDTParser took 0.79 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 19:13:59,466 INFO L168 Benchmark]: CACSL2BoogieTranslator took 443.27 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 138.9 MB). Free memory was 961.6 MB in the beginning and 1.1 GB in the end (delta: -167.2 MB). Peak memory consumption was 20.5 MB. Max. memory is 11.5 GB. [2020-07-28 19:13:59,466 INFO L168 Benchmark]: Boogie Procedure Inliner took 59.62 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 19:13:59,467 INFO L168 Benchmark]: Boogie Preprocessor took 70.84 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: 8.3 MB). Peak memory consumption was 8.3 MB. Max. memory is 11.5 GB. [2020-07-28 19:13:59,467 INFO L168 Benchmark]: RCFGBuilder took 831.73 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.5 MB). Peak memory consumption was 58.5 MB. Max. memory is 11.5 GB. [2020-07-28 19:13:59,468 INFO L168 Benchmark]: TraceAbstraction took 13271.52 ms. Allocated memory was 1.2 GB in the beginning and 1.4 GB in the end (delta: 237.5 MB). Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 60.1 MB). Peak memory consumption was 297.6 MB. Max. memory is 11.5 GB. [2020-07-28 19:13:59,475 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.79 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 443.27 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 138.9 MB). Free memory was 961.6 MB in the beginning and 1.1 GB in the end (delta: -167.2 MB). Peak memory consumption was 20.5 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 59.62 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 70.84 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: 8.3 MB). Peak memory consumption was 8.3 MB. Max. memory is 11.5 GB. * RCFGBuilder took 831.73 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.5 MB). Peak memory consumption was 58.5 MB. Max. memory is 11.5 GB. * TraceAbstraction took 13271.52 ms. Allocated memory was 1.2 GB in the beginning and 1.4 GB in the end (delta: 237.5 MB). Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 60.1 MB). Peak memory consumption was 297.6 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... ### Bit-precise run ### This is Ultimate 0.1.25-8bd4bc6 [2020-07-28 19:14:01,475 INFO L177 SettingsManager]: Resetting all preferences to default values... [2020-07-28 19:14:01,478 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2020-07-28 19:14:01,490 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2020-07-28 19:14:01,491 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2020-07-28 19:14:01,492 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2020-07-28 19:14:01,493 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2020-07-28 19:14:01,495 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2020-07-28 19:14:01,500 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2020-07-28 19:14:01,505 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2020-07-28 19:14:01,508 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2020-07-28 19:14:01,510 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2020-07-28 19:14:01,511 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2020-07-28 19:14:01,514 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2020-07-28 19:14:01,516 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2020-07-28 19:14:01,517 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2020-07-28 19:14:01,518 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2020-07-28 19:14:01,522 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2020-07-28 19:14:01,525 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2020-07-28 19:14:01,527 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2020-07-28 19:14:01,530 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2020-07-28 19:14:01,533 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2020-07-28 19:14:01,536 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2020-07-28 19:14:01,538 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2020-07-28 19:14:01,544 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2020-07-28 19:14:01,545 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2020-07-28 19:14:01,546 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2020-07-28 19:14:01,547 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2020-07-28 19:14:01,548 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2020-07-28 19:14:01,549 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2020-07-28 19:14:01,550 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2020-07-28 19:14:01,550 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2020-07-28 19:14:01,552 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2020-07-28 19:14:01,553 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2020-07-28 19:14:01,555 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2020-07-28 19:14:01,555 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2020-07-28 19:14:01,556 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2020-07-28 19:14:01,557 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2020-07-28 19:14:01,557 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2020-07-28 19:14:01,558 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2020-07-28 19:14:01,560 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2020-07-28 19:14:01,560 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.epf [2020-07-28 19:14:01,580 INFO L113 SettingsManager]: Loading preferences was successful [2020-07-28 19:14:01,580 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2020-07-28 19:14:01,581 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2020-07-28 19:14:01,582 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2020-07-28 19:14:01,582 INFO L138 SettingsManager]: * Use SBE=true [2020-07-28 19:14:01,583 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2020-07-28 19:14:01,583 INFO L138 SettingsManager]: * sizeof long=4 [2020-07-28 19:14:01,583 INFO L138 SettingsManager]: * sizeof POINTER=4 [2020-07-28 19:14:01,583 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2020-07-28 19:14:01,584 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2020-07-28 19:14:01,584 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2020-07-28 19:14:01,584 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2020-07-28 19:14:01,585 INFO L138 SettingsManager]: * Use bitvectors instead of ints=true [2020-07-28 19:14:01,585 INFO L138 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2020-07-28 19:14:01,585 INFO L138 SettingsManager]: * sizeof long double=12 [2020-07-28 19:14:01,585 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2020-07-28 19:14:01,586 INFO L138 SettingsManager]: * Use constant arrays=true [2020-07-28 19:14:01,586 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2020-07-28 19:14:01,586 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2020-07-28 19:14:01,587 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2020-07-28 19:14:01,587 INFO L138 SettingsManager]: * To the following directory=./dump/ [2020-07-28 19:14:01,587 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2020-07-28 19:14:01,588 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-28 19:14:01,588 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2020-07-28 19:14:01,588 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2020-07-28 19:14:01,589 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2020-07-28 19:14:01,589 INFO L138 SettingsManager]: * Trace refinement strategy=WOLF [2020-07-28 19:14:01,589 INFO L138 SettingsManager]: * Command for external solver=cvc4 --incremental --rewrite-divk --print-success --lang smt [2020-07-28 19:14:01,589 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2020-07-28 19:14:01,590 INFO L138 SettingsManager]: * Trace refinement exception blacklist=NONE [2020-07-28 19:14:01,590 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2020-07-28 19:14:01,590 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 -> 2b3c0b370148d7776e878a6aeb1fe79bd3f02f60 [2020-07-28 19:14:01,917 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2020-07-28 19:14:01,936 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2020-07-28 19:14:01,940 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2020-07-28 19:14:01,941 INFO L271 PluginConnector]: Initializing CDTParser... [2020-07-28 19:14:01,942 INFO L275 PluginConnector]: CDTParser initialized [2020-07-28 19:14:01,942 INFO L429 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/verifythis/tree_del_rec.c [2020-07-28 19:14:02,002 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/21756be6d/b9b6bb7386d14985bfa27ba3f855aac2/FLAG3795a59aa [2020-07-28 19:14:02,442 INFO L306 CDTParser]: Found 1 translation units. [2020-07-28 19:14:02,443 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/tree_del_rec.c [2020-07-28 19:14:02,449 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/21756be6d/b9b6bb7386d14985bfa27ba3f855aac2/FLAG3795a59aa [2020-07-28 19:14:02,821 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/21756be6d/b9b6bb7386d14985bfa27ba3f855aac2 [2020-07-28 19:14:02,825 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2020-07-28 19:14:02,829 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2020-07-28 19:14:02,830 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2020-07-28 19:14:02,830 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2020-07-28 19:14:02,834 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2020-07-28 19:14:02,835 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.07 07:14:02" (1/1) ... [2020-07-28 19:14:02,839 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@4aeb4518 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:02, skipping insertion in model container [2020-07-28 19:14:02,839 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.07 07:14:02" (1/1) ... [2020-07-28 19:14:02,847 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2020-07-28 19:14:02,879 INFO L178 MainTranslator]: Built tables and reachable declarations [2020-07-28 19:14:03,091 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 19:14:03,096 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 19:14:03,116 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-28 19:14:03,134 INFO L203 MainTranslator]: Completed pre-run [2020-07-28 19:14:03,214 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 19:14:03,216 WARN L1484 CHandler]: Possible shadowing of function min [2020-07-28 19:14:03,231 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-28 19:14:03,255 INFO L208 MainTranslator]: Completed translation [2020-07-28 19:14:03,256 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03 WrapperNode [2020-07-28 19:14:03,256 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2020-07-28 19:14:03,257 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2020-07-28 19:14:03,258 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2020-07-28 19:14:03,258 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2020-07-28 19:14:03,267 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03" (1/1) ... [2020-07-28 19:14:03,282 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03" (1/1) ... [2020-07-28 19:14:03,314 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2020-07-28 19:14:03,315 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2020-07-28 19:14:03,315 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2020-07-28 19:14:03,316 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2020-07-28 19:14:03,325 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03" (1/1) ... [2020-07-28 19:14:03,325 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03" (1/1) ... [2020-07-28 19:14:03,332 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03" (1/1) ... [2020-07-28 19:14:03,332 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03" (1/1) ... [2020-07-28 19:14:03,370 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03" (1/1) ... [2020-07-28 19:14:03,383 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03" (1/1) ... [2020-07-28 19:14:03,386 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03" (1/1) ... [2020-07-28 19:14:03,395 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2020-07-28 19:14:03,395 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2020-07-28 19:14:03,396 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2020-07-28 19:14:03,396 INFO L275 PluginConnector]: RCFGBuilder initialized [2020-07-28 19:14:03,397 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03" (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 19:14:03,461 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2020-07-28 19:14:03,462 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2020-07-28 19:14:03,462 INFO L130 BoogieDeclarations]: Found specification of procedure tree_del [2020-07-28 19:14:03,462 INFO L138 BoogieDeclarations]: Found implementation of procedure tree_del [2020-07-28 19:14:03,463 INFO L130 BoogieDeclarations]: Found specification of procedure min [2020-07-28 19:14:03,463 INFO L138 BoogieDeclarations]: Found implementation of procedure min [2020-07-28 19:14:03,463 INFO L130 BoogieDeclarations]: Found specification of procedure read~intINTTYPE4 [2020-07-28 19:14:03,463 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2020-07-28 19:14:03,463 INFO L130 BoogieDeclarations]: Found specification of procedure nondet_tree [2020-07-28 19:14:03,464 INFO L138 BoogieDeclarations]: Found implementation of procedure nondet_tree [2020-07-28 19:14:03,464 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2020-07-28 19:14:03,464 INFO L130 BoogieDeclarations]: Found specification of procedure size [2020-07-28 19:14:03,464 INFO L138 BoogieDeclarations]: Found implementation of procedure size [2020-07-28 19:14:03,465 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2020-07-28 19:14:03,465 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2020-07-28 19:14:03,465 INFO L130 BoogieDeclarations]: Found specification of procedure tree_inorder [2020-07-28 19:14:03,465 INFO L138 BoogieDeclarations]: Found implementation of procedure tree_inorder [2020-07-28 19:14:03,466 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2020-07-28 19:14:03,466 INFO L130 BoogieDeclarations]: Found specification of procedure write~intINTTYPE4 [2020-07-28 19:14:04,278 INFO L290 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2020-07-28 19:14:04,279 INFO L295 CfgBuilder]: Removed 22 assume(true) statements. [2020-07-28 19:14:04,286 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.07 07:14:04 BoogieIcfgContainer [2020-07-28 19:14:04,287 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2020-07-28 19:14:04,288 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2020-07-28 19:14:04,288 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2020-07-28 19:14:04,292 INFO L275 PluginConnector]: TraceAbstraction initialized [2020-07-28 19:14:04,292 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 28.07 07:14:02" (1/3) ... [2020-07-28 19:14:04,293 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7746b378 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.07 07:14:04, skipping insertion in model container [2020-07-28 19:14:04,293 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 07:14:03" (2/3) ... [2020-07-28 19:14:04,294 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7746b378 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.07 07:14:04, skipping insertion in model container [2020-07-28 19:14:04,294 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.07 07:14:04" (3/3) ... [2020-07-28 19:14:04,296 INFO L109 eAbstractionObserver]: Analyzing ICFG tree_del_rec.c [2020-07-28 19:14:04,307 INFO L157 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2020-07-28 19:14:04,316 INFO L169 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2020-07-28 19:14:04,331 INFO L251 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2020-07-28 19:14:04,358 INFO L375 AbstractCegarLoop]: Interprodecural is true [2020-07-28 19:14:04,358 INFO L376 AbstractCegarLoop]: Hoare is true [2020-07-28 19:14:04,359 INFO L377 AbstractCegarLoop]: Compute interpolants for FPandBP [2020-07-28 19:14:04,359 INFO L378 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2020-07-28 19:14:04,359 INFO L379 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2020-07-28 19:14:04,360 INFO L380 AbstractCegarLoop]: Difference is false [2020-07-28 19:14:04,360 INFO L381 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2020-07-28 19:14:04,360 INFO L385 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2020-07-28 19:14:04,383 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states. [2020-07-28 19:14:04,392 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2020-07-28 19:14:04,392 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 19:14:04,394 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 19:14:04,394 INFO L427 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 19:14:04,400 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 19:14:04,401 INFO L82 PathProgramCache]: Analyzing trace with hash 1169561837, now seen corresponding path program 1 times [2020-07-28 19:14:04,412 INFO L163 FreeRefinementEngine]: Executing refinement strategy WOLF [2020-07-28 19:14:04,412 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [771186227] [2020-07-28 19:14:04,413 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 19:14:04,522 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:14:04,528 INFO L263 TraceCheckSpWp]: Trace formula consists of 101 conjuncts, 6 conjunts are in the unsatisfiable core [2020-07-28 19:14:04,553 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:14:04,564 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 19:14:04,682 INFO L280 TraceCheckUtils]: 0: Hoare triple {86#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {86#true} is VALID [2020-07-28 19:14:04,683 INFO L280 TraceCheckUtils]: 1: Hoare triple {86#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {86#true} is VALID [2020-07-28 19:14:04,684 INFO L263 TraceCheckUtils]: 2: Hoare triple {86#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {86#true} is VALID [2020-07-28 19:14:04,685 INFO L280 TraceCheckUtils]: 3: Hoare triple {86#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {86#true} is VALID [2020-07-28 19:14:04,685 INFO L280 TraceCheckUtils]: 4: Hoare triple {86#true} assume true; {86#true} is VALID [2020-07-28 19:14:04,686 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {86#true} {86#true} #165#return; {86#true} is VALID [2020-07-28 19:14:04,686 INFO L280 TraceCheckUtils]: 6: Hoare triple {86#true} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {86#true} is VALID [2020-07-28 19:14:04,687 INFO L263 TraceCheckUtils]: 7: Hoare triple {86#true} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {86#true} is VALID [2020-07-28 19:14:04,687 INFO L280 TraceCheckUtils]: 8: Hoare triple {86#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {86#true} is VALID [2020-07-28 19:14:04,688 INFO L280 TraceCheckUtils]: 9: Hoare triple {86#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {86#true} is VALID [2020-07-28 19:14:04,688 INFO L280 TraceCheckUtils]: 10: Hoare triple {86#true} assume true; {86#true} is VALID [2020-07-28 19:14:04,689 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {86#true} {86#true} #167#return; {86#true} is VALID [2020-07-28 19:14:04,689 INFO L280 TraceCheckUtils]: 12: Hoare triple {86#true} task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {86#true} is VALID [2020-07-28 19:14:04,689 INFO L263 TraceCheckUtils]: 13: Hoare triple {86#true} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {86#true} is VALID [2020-07-28 19:14:04,690 INFO L280 TraceCheckUtils]: 14: Hoare triple {86#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {86#true} is VALID [2020-07-28 19:14:04,691 INFO L280 TraceCheckUtils]: 15: Hoare triple {86#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {136#(= |size_#res| (_ bv0 32))} is VALID [2020-07-28 19:14:04,694 INFO L280 TraceCheckUtils]: 16: Hoare triple {136#(= |size_#res| (_ bv0 32))} assume true; {136#(= |size_#res| (_ bv0 32))} is VALID [2020-07-28 19:14:04,696 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {136#(= |size_#res| (_ bv0 32))} {86#true} #169#return; {143#(= |ULTIMATE.start_task_#t~ret27| (_ bv0 32))} is VALID [2020-07-28 19:14:04,698 INFO L280 TraceCheckUtils]: 18: Hoare triple {143#(= |ULTIMATE.start_task_#t~ret27| (_ bv0 32))} task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {147#(= (_ bv0 32) ULTIMATE.start_assume_cycle_if_not_~cond)} is VALID [2020-07-28 19:14:04,699 INFO L280 TraceCheckUtils]: 19: Hoare triple {147#(= (_ bv0 32) ULTIMATE.start_assume_cycle_if_not_~cond)} assume !(0bv32 == assume_cycle_if_not_~cond); {87#false} is VALID [2020-07-28 19:14:04,700 INFO L280 TraceCheckUtils]: 20: Hoare triple {87#false} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {87#false} is VALID [2020-07-28 19:14:04,701 INFO L280 TraceCheckUtils]: 21: Hoare triple {87#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {87#false} is VALID [2020-07-28 19:14:04,701 INFO L263 TraceCheckUtils]: 22: Hoare triple {87#false} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {87#false} is VALID [2020-07-28 19:14:04,701 INFO L280 TraceCheckUtils]: 23: Hoare triple {87#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {87#false} is VALID [2020-07-28 19:14:04,702 INFO L280 TraceCheckUtils]: 24: Hoare triple {87#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {87#false} is VALID [2020-07-28 19:14:04,702 INFO L280 TraceCheckUtils]: 25: Hoare triple {87#false} assume true; {87#false} is VALID [2020-07-28 19:14:04,702 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {87#false} {87#false} #171#return; {87#false} is VALID [2020-07-28 19:14:04,703 INFO L280 TraceCheckUtils]: 27: Hoare triple {87#false} havoc task_#t~ret29;call task_#t~mem30 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {87#false} is VALID [2020-07-28 19:14:04,704 INFO L280 TraceCheckUtils]: 28: Hoare triple {87#false} assume 0bv32 == __VERIFIER_assert_~cond; {87#false} is VALID [2020-07-28 19:14:04,704 INFO L280 TraceCheckUtils]: 29: Hoare triple {87#false} assume !false; {87#false} is VALID [2020-07-28 19:14:04,710 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 19:14:04,711 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2020-07-28 19:14:04,801 INFO L342 QuantifierPusher]: Applying distributivity to a DISJUNCTION[2, 2, 2, 1] term [2020-07-28 19:14:04,801 INFO L523 QuantifierPusher]: Distributing 2 disjuncts over 2 conjuncts [2020-07-28 19:14:04,868 INFO L280 TraceCheckUtils]: 29: Hoare triple {87#false} assume !false; {87#false} is VALID [2020-07-28 19:14:04,869 INFO L280 TraceCheckUtils]: 28: Hoare triple {87#false} assume 0bv32 == __VERIFIER_assert_~cond; {87#false} is VALID [2020-07-28 19:14:04,869 INFO L280 TraceCheckUtils]: 27: Hoare triple {87#false} havoc task_#t~ret29;call task_#t~mem30 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {87#false} is VALID [2020-07-28 19:14:04,870 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {86#true} {87#false} #171#return; {87#false} is VALID [2020-07-28 19:14:04,870 INFO L280 TraceCheckUtils]: 25: Hoare triple {86#true} assume true; {86#true} is VALID [2020-07-28 19:14:04,870 INFO L280 TraceCheckUtils]: 24: Hoare triple {86#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {86#true} is VALID [2020-07-28 19:14:04,871 INFO L280 TraceCheckUtils]: 23: Hoare triple {86#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {86#true} is VALID [2020-07-28 19:14:04,871 INFO L263 TraceCheckUtils]: 22: Hoare triple {87#false} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {86#true} is VALID [2020-07-28 19:14:04,872 INFO L280 TraceCheckUtils]: 21: Hoare triple {87#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {87#false} is VALID [2020-07-28 19:14:04,872 INFO L280 TraceCheckUtils]: 20: Hoare triple {87#false} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {87#false} is VALID [2020-07-28 19:14:04,873 INFO L280 TraceCheckUtils]: 19: Hoare triple {147#(= (_ bv0 32) ULTIMATE.start_assume_cycle_if_not_~cond)} assume !(0bv32 == assume_cycle_if_not_~cond); {87#false} is VALID [2020-07-28 19:14:04,874 INFO L280 TraceCheckUtils]: 18: Hoare triple {143#(= |ULTIMATE.start_task_#t~ret27| (_ bv0 32))} task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {147#(= (_ bv0 32) ULTIMATE.start_assume_cycle_if_not_~cond)} is VALID [2020-07-28 19:14:04,876 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {136#(= |size_#res| (_ bv0 32))} {86#true} #169#return; {143#(= |ULTIMATE.start_task_#t~ret27| (_ bv0 32))} is VALID [2020-07-28 19:14:04,877 INFO L280 TraceCheckUtils]: 16: Hoare triple {136#(= |size_#res| (_ bv0 32))} assume true; {136#(= |size_#res| (_ bv0 32))} is VALID [2020-07-28 19:14:04,878 INFO L280 TraceCheckUtils]: 15: Hoare triple {86#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {136#(= |size_#res| (_ bv0 32))} is VALID [2020-07-28 19:14:04,879 INFO L280 TraceCheckUtils]: 14: Hoare triple {86#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {86#true} is VALID [2020-07-28 19:14:04,879 INFO L263 TraceCheckUtils]: 13: Hoare triple {86#true} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {86#true} is VALID [2020-07-28 19:14:04,880 INFO L280 TraceCheckUtils]: 12: Hoare triple {86#true} task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {86#true} is VALID [2020-07-28 19:14:04,880 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {86#true} {86#true} #167#return; {86#true} is VALID [2020-07-28 19:14:04,881 INFO L280 TraceCheckUtils]: 10: Hoare triple {86#true} assume true; {86#true} is VALID [2020-07-28 19:14:04,881 INFO L280 TraceCheckUtils]: 9: Hoare triple {86#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {86#true} is VALID [2020-07-28 19:14:04,881 INFO L280 TraceCheckUtils]: 8: Hoare triple {86#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {86#true} is VALID [2020-07-28 19:14:04,882 INFO L263 TraceCheckUtils]: 7: Hoare triple {86#true} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {86#true} is VALID [2020-07-28 19:14:04,882 INFO L280 TraceCheckUtils]: 6: Hoare triple {86#true} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {86#true} is VALID [2020-07-28 19:14:04,883 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {86#true} {86#true} #165#return; {86#true} is VALID [2020-07-28 19:14:04,883 INFO L280 TraceCheckUtils]: 4: Hoare triple {86#true} assume true; {86#true} is VALID [2020-07-28 19:14:04,883 INFO L280 TraceCheckUtils]: 3: Hoare triple {86#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {86#true} is VALID [2020-07-28 19:14:04,884 INFO L263 TraceCheckUtils]: 2: Hoare triple {86#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {86#true} is VALID [2020-07-28 19:14:04,884 INFO L280 TraceCheckUtils]: 1: Hoare triple {86#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {86#true} is VALID [2020-07-28 19:14:04,884 INFO L280 TraceCheckUtils]: 0: Hoare triple {86#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {86#true} is VALID [2020-07-28 19:14:04,887 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 19:14:04,889 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [771186227] [2020-07-28 19:14:04,889 INFO L220 FreeRefinementEngine]: Constructing automaton from 2 perfect and 0 imperfect interpolant sequences. [2020-07-28 19:14:04,890 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5, 5] imperfect sequences [] total 5 [2020-07-28 19:14:04,891 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1161601036] [2020-07-28 19:14:04,898 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 30 [2020-07-28 19:14:04,901 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 19:14:04,906 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2020-07-28 19:14:04,980 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 19:14:04,980 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2020-07-28 19:14:04,980 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2020-07-28 19:14:04,990 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2020-07-28 19:14:04,992 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2020-07-28 19:14:04,994 INFO L87 Difference]: Start difference. First operand 83 states. Second operand 5 states. [2020-07-28 19:14:05,937 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:05,938 INFO L93 Difference]: Finished difference Result 143 states and 187 transitions. [2020-07-28 19:14:05,938 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2020-07-28 19:14:05,939 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 30 [2020-07-28 19:14:05,939 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 19:14:05,941 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2020-07-28 19:14:05,959 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 187 transitions. [2020-07-28 19:14:05,959 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2020-07-28 19:14:05,970 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 187 transitions. [2020-07-28 19:14:05,970 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 187 transitions. [2020-07-28 19:14:06,289 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 187 edges. 187 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 19:14:06,308 INFO L225 Difference]: With dead ends: 143 [2020-07-28 19:14:06,308 INFO L226 Difference]: Without dead ends: 79 [2020-07-28 19:14:06,313 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 19:14:06,333 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 79 states. [2020-07-28 19:14:06,373 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 79 to 79. [2020-07-28 19:14:06,374 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 19:14:06,374 INFO L82 GeneralOperation]: Start isEquivalent. First operand 79 states. Second operand 79 states. [2020-07-28 19:14:06,375 INFO L74 IsIncluded]: Start isIncluded. First operand 79 states. Second operand 79 states. [2020-07-28 19:14:06,375 INFO L87 Difference]: Start difference. First operand 79 states. Second operand 79 states. [2020-07-28 19:14:06,388 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:06,388 INFO L93 Difference]: Finished difference Result 79 states and 99 transitions. [2020-07-28 19:14:06,389 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 99 transitions. [2020-07-28 19:14:06,391 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:14:06,392 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:14:06,392 INFO L74 IsIncluded]: Start isIncluded. First operand 79 states. Second operand 79 states. [2020-07-28 19:14:06,393 INFO L87 Difference]: Start difference. First operand 79 states. Second operand 79 states. [2020-07-28 19:14:06,403 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:06,403 INFO L93 Difference]: Finished difference Result 79 states and 99 transitions. [2020-07-28 19:14:06,403 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 99 transitions. [2020-07-28 19:14:06,406 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:14:06,406 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:14:06,406 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 19:14:06,407 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 19:14:06,407 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 79 states. [2020-07-28 19:14:06,414 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 79 states to 79 states and 99 transitions. [2020-07-28 19:14:06,417 INFO L78 Accepts]: Start accepts. Automaton has 79 states and 99 transitions. Word has length 30 [2020-07-28 19:14:06,417 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 19:14:06,417 INFO L479 AbstractCegarLoop]: Abstraction has 79 states and 99 transitions. [2020-07-28 19:14:06,418 INFO L480 AbstractCegarLoop]: Interpolant automaton has 5 states. [2020-07-28 19:14:06,418 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 99 transitions. [2020-07-28 19:14:06,421 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2020-07-28 19:14:06,421 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 19:14:06,421 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 19:14:06,632 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 mathsat -unsat_core_generation=3 [2020-07-28 19:14:06,632 INFO L427 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 19:14:06,633 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 19:14:06,633 INFO L82 PathProgramCache]: Analyzing trace with hash 309270478, now seen corresponding path program 1 times [2020-07-28 19:14:06,635 INFO L163 FreeRefinementEngine]: Executing refinement strategy WOLF [2020-07-28 19:14:06,636 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [563150094] [2020-07-28 19:14:06,636 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 19:14:06,728 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:14:06,731 INFO L263 TraceCheckSpWp]: Trace formula consists of 126 conjuncts, 13 conjunts are in the unsatisfiable core [2020-07-28 19:14:06,752 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:14:06,754 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 19:14:06,955 INFO L280 TraceCheckUtils]: 0: Hoare triple {705#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {705#true} is VALID [2020-07-28 19:14:06,955 INFO L280 TraceCheckUtils]: 1: Hoare triple {705#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {705#true} is VALID [2020-07-28 19:14:06,956 INFO L263 TraceCheckUtils]: 2: Hoare triple {705#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {705#true} is VALID [2020-07-28 19:14:06,960 INFO L280 TraceCheckUtils]: 3: Hoare triple {705#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {719#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:06,961 INFO L280 TraceCheckUtils]: 4: Hoare triple {719#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {719#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:06,963 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {719#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} {705#true} #165#return; {726#(and (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)) (= (_ bv0 32) |ULTIMATE.start_main_#t~ret39.offset|))} is VALID [2020-07-28 19:14:06,964 INFO L280 TraceCheckUtils]: 6: Hoare triple {726#(and (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)) (= (_ bv0 32) |ULTIMATE.start_main_#t~ret39.offset|))} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:14:06,965 INFO L263 TraceCheckUtils]: 7: Hoare triple {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {705#true} is VALID [2020-07-28 19:14:06,965 INFO L280 TraceCheckUtils]: 8: Hoare triple {705#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {705#true} is VALID [2020-07-28 19:14:06,966 INFO L280 TraceCheckUtils]: 9: Hoare triple {705#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {705#true} is VALID [2020-07-28 19:14:06,966 INFO L280 TraceCheckUtils]: 10: Hoare triple {705#true} assume true; {705#true} is VALID [2020-07-28 19:14:06,968 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {705#true} {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} #167#return; {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:14:06,969 INFO L280 TraceCheckUtils]: 12: Hoare triple {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:14:06,970 INFO L263 TraceCheckUtils]: 13: Hoare triple {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {705#true} is VALID [2020-07-28 19:14:06,971 INFO L280 TraceCheckUtils]: 14: Hoare triple {705#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {755#(and (= size_~t.base |size_#in~t.base|) (= |size_#in~t.offset| size_~t.offset))} is VALID [2020-07-28 19:14:06,973 INFO L280 TraceCheckUtils]: 15: Hoare triple {755#(and (= size_~t.base |size_#in~t.base|) (= |size_#in~t.offset| size_~t.offset))} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:06,973 INFO L263 TraceCheckUtils]: 16: Hoare triple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {705#true} is VALID [2020-07-28 19:14:06,973 INFO L280 TraceCheckUtils]: 17: Hoare triple {705#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {705#true} is VALID [2020-07-28 19:14:06,974 INFO L280 TraceCheckUtils]: 18: Hoare triple {705#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {705#true} is VALID [2020-07-28 19:14:06,974 INFO L280 TraceCheckUtils]: 19: Hoare triple {705#true} assume true; {705#true} is VALID [2020-07-28 19:14:06,976 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {705#true} {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #161#return; {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:06,977 INFO L280 TraceCheckUtils]: 21: Hoare triple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:06,978 INFO L263 TraceCheckUtils]: 22: Hoare triple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {705#true} is VALID [2020-07-28 19:14:06,978 INFO L280 TraceCheckUtils]: 23: Hoare triple {705#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {705#true} is VALID [2020-07-28 19:14:06,978 INFO L280 TraceCheckUtils]: 24: Hoare triple {705#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {705#true} is VALID [2020-07-28 19:14:06,979 INFO L280 TraceCheckUtils]: 25: Hoare triple {705#true} assume true; {705#true} is VALID [2020-07-28 19:14:06,981 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {705#true} {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #163#return; {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:06,984 INFO L280 TraceCheckUtils]: 27: Hoare triple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret23, #t~ret25));havoc #t~mem22.base, #t~mem22.offset;havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret25;havoc #t~ret23; {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:06,985 INFO L280 TraceCheckUtils]: 28: Hoare triple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} assume true; {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:06,987 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} #169#return; {706#false} is VALID [2020-07-28 19:14:06,987 INFO L280 TraceCheckUtils]: 30: Hoare triple {706#false} task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {706#false} is VALID [2020-07-28 19:14:06,987 INFO L280 TraceCheckUtils]: 31: Hoare triple {706#false} assume !(0bv32 == assume_cycle_if_not_~cond); {706#false} is VALID [2020-07-28 19:14:06,988 INFO L280 TraceCheckUtils]: 32: Hoare triple {706#false} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {706#false} is VALID [2020-07-28 19:14:06,988 INFO L280 TraceCheckUtils]: 33: Hoare triple {706#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {706#false} is VALID [2020-07-28 19:14:06,989 INFO L263 TraceCheckUtils]: 34: Hoare triple {706#false} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {706#false} is VALID [2020-07-28 19:14:06,989 INFO L280 TraceCheckUtils]: 35: Hoare triple {706#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {706#false} is VALID [2020-07-28 19:14:06,989 INFO L280 TraceCheckUtils]: 36: Hoare triple {706#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {706#false} is VALID [2020-07-28 19:14:06,990 INFO L280 TraceCheckUtils]: 37: Hoare triple {706#false} assume true; {706#false} is VALID [2020-07-28 19:14:06,990 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {706#false} {706#false} #171#return; {706#false} is VALID [2020-07-28 19:14:06,990 INFO L280 TraceCheckUtils]: 39: Hoare triple {706#false} havoc task_#t~ret29;call task_#t~mem30 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {706#false} is VALID [2020-07-28 19:14:06,991 INFO L280 TraceCheckUtils]: 40: Hoare triple {706#false} assume 0bv32 == __VERIFIER_assert_~cond; {706#false} is VALID [2020-07-28 19:14:06,991 INFO L280 TraceCheckUtils]: 41: Hoare triple {706#false} assume !false; {706#false} is VALID [2020-07-28 19:14:06,996 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 19:14:06,997 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2020-07-28 19:14:07,328 INFO L280 TraceCheckUtils]: 41: Hoare triple {706#false} assume !false; {706#false} is VALID [2020-07-28 19:14:07,328 INFO L280 TraceCheckUtils]: 40: Hoare triple {706#false} assume 0bv32 == __VERIFIER_assert_~cond; {706#false} is VALID [2020-07-28 19:14:07,328 INFO L280 TraceCheckUtils]: 39: Hoare triple {706#false} havoc task_#t~ret29;call task_#t~mem30 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {706#false} is VALID [2020-07-28 19:14:07,329 INFO L275 TraceCheckUtils]: 38: Hoare quadruple {705#true} {706#false} #171#return; {706#false} is VALID [2020-07-28 19:14:07,329 INFO L280 TraceCheckUtils]: 37: Hoare triple {705#true} assume true; {705#true} is VALID [2020-07-28 19:14:07,329 INFO L280 TraceCheckUtils]: 36: Hoare triple {705#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {705#true} is VALID [2020-07-28 19:14:07,330 INFO L280 TraceCheckUtils]: 35: Hoare triple {705#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {705#true} is VALID [2020-07-28 19:14:07,330 INFO L263 TraceCheckUtils]: 34: Hoare triple {706#false} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {705#true} is VALID [2020-07-28 19:14:07,330 INFO L280 TraceCheckUtils]: 33: Hoare triple {706#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {706#false} is VALID [2020-07-28 19:14:07,330 INFO L280 TraceCheckUtils]: 32: Hoare triple {706#false} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {706#false} is VALID [2020-07-28 19:14:07,331 INFO L280 TraceCheckUtils]: 31: Hoare triple {706#false} assume !(0bv32 == assume_cycle_if_not_~cond); {706#false} is VALID [2020-07-28 19:14:07,331 INFO L280 TraceCheckUtils]: 30: Hoare triple {706#false} task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {706#false} is VALID [2020-07-28 19:14:07,333 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} #169#return; {706#false} is VALID [2020-07-28 19:14:07,334 INFO L280 TraceCheckUtils]: 28: Hoare triple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} assume true; {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:07,335 INFO L280 TraceCheckUtils]: 27: Hoare triple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret23, #t~ret25));havoc #t~mem22.base, #t~mem22.offset;havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret25;havoc #t~ret23; {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:07,336 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {705#true} {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #163#return; {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:07,336 INFO L280 TraceCheckUtils]: 25: Hoare triple {705#true} assume true; {705#true} is VALID [2020-07-28 19:14:07,336 INFO L280 TraceCheckUtils]: 24: Hoare triple {705#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {705#true} is VALID [2020-07-28 19:14:07,337 INFO L280 TraceCheckUtils]: 23: Hoare triple {705#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {705#true} is VALID [2020-07-28 19:14:07,337 INFO L263 TraceCheckUtils]: 22: Hoare triple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {705#true} is VALID [2020-07-28 19:14:07,338 INFO L280 TraceCheckUtils]: 21: Hoare triple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:07,340 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {705#true} {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} #161#return; {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:07,340 INFO L280 TraceCheckUtils]: 19: Hoare triple {705#true} assume true; {705#true} is VALID [2020-07-28 19:14:07,340 INFO L280 TraceCheckUtils]: 18: Hoare triple {705#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {705#true} is VALID [2020-07-28 19:14:07,340 INFO L280 TraceCheckUtils]: 17: Hoare triple {705#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {705#true} is VALID [2020-07-28 19:14:07,341 INFO L263 TraceCheckUtils]: 16: Hoare triple {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {705#true} is VALID [2020-07-28 19:14:07,343 INFO L280 TraceCheckUtils]: 15: Hoare triple {919#(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~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {759#(or (not (= (_ bv0 32) |size_#in~t.base|)) (not (= (_ bv0 32) |size_#in~t.offset|)))} is VALID [2020-07-28 19:14:07,344 INFO L280 TraceCheckUtils]: 14: Hoare triple {705#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {919#(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 19:14:07,344 INFO L263 TraceCheckUtils]: 13: Hoare triple {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {705#true} is VALID [2020-07-28 19:14:07,345 INFO L280 TraceCheckUtils]: 12: Hoare triple {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:14:07,347 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {705#true} {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} #167#return; {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:14:07,347 INFO L280 TraceCheckUtils]: 10: Hoare triple {705#true} assume true; {705#true} is VALID [2020-07-28 19:14:07,347 INFO L280 TraceCheckUtils]: 9: Hoare triple {705#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {705#true} is VALID [2020-07-28 19:14:07,347 INFO L280 TraceCheckUtils]: 8: Hoare triple {705#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {705#true} is VALID [2020-07-28 19:14:07,348 INFO L263 TraceCheckUtils]: 7: Hoare triple {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {705#true} is VALID [2020-07-28 19:14:07,349 INFO L280 TraceCheckUtils]: 6: Hoare triple {726#(and (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)) (= (_ bv0 32) |ULTIMATE.start_main_#t~ret39.offset|))} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {730#(and (= (_ bv0 32) ULTIMATE.start_task_~t.base) (= (_ bv0 32) ULTIMATE.start_task_~t.offset))} is VALID [2020-07-28 19:14:07,350 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {719#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} {705#true} #165#return; {726#(and (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)) (= (_ bv0 32) |ULTIMATE.start_main_#t~ret39.offset|))} is VALID [2020-07-28 19:14:07,352 INFO L280 TraceCheckUtils]: 4: Hoare triple {719#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {719#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:07,353 INFO L280 TraceCheckUtils]: 3: Hoare triple {705#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {719#(and (= |nondet_tree_#res.offset| (_ bv0 32)) (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:07,353 INFO L263 TraceCheckUtils]: 2: Hoare triple {705#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {705#true} is VALID [2020-07-28 19:14:07,353 INFO L280 TraceCheckUtils]: 1: Hoare triple {705#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {705#true} is VALID [2020-07-28 19:14:07,353 INFO L280 TraceCheckUtils]: 0: Hoare triple {705#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {705#true} is VALID [2020-07-28 19:14:07,357 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 19:14:07,358 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [563150094] [2020-07-28 19:14:07,358 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 19:14:07,358 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 8 [2020-07-28 19:14:07,358 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [603167498] [2020-07-28 19:14:07,361 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 42 [2020-07-28 19:14:07,362 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 19:14:07,362 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2020-07-28 19:14:07,432 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 19:14:07,432 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2020-07-28 19:14:07,433 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2020-07-28 19:14:07,433 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2020-07-28 19:14:07,433 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=41, Unknown=0, NotChecked=0, Total=56 [2020-07-28 19:14:07,434 INFO L87 Difference]: Start difference. First operand 79 states and 99 transitions. Second operand 8 states. [2020-07-28 19:14:08,977 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:08,979 INFO L93 Difference]: Finished difference Result 140 states and 175 transitions. [2020-07-28 19:14:08,980 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2020-07-28 19:14:08,980 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 42 [2020-07-28 19:14:08,980 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 19:14:08,981 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2020-07-28 19:14:08,991 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 171 transitions. [2020-07-28 19:14:08,992 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2020-07-28 19:14:09,005 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 171 transitions. [2020-07-28 19:14:09,005 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 171 transitions. [2020-07-28 19:14:09,286 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 171 edges. 171 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 19:14:09,292 INFO L225 Difference]: With dead ends: 140 [2020-07-28 19:14:09,293 INFO L226 Difference]: Without dead ends: 81 [2020-07-28 19:14:09,294 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 19:14:09,295 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 81 states. [2020-07-28 19:14:09,326 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 81 to 81. [2020-07-28 19:14:09,327 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 19:14:09,327 INFO L82 GeneralOperation]: Start isEquivalent. First operand 81 states. Second operand 81 states. [2020-07-28 19:14:09,327 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand 81 states. [2020-07-28 19:14:09,327 INFO L87 Difference]: Start difference. First operand 81 states. Second operand 81 states. [2020-07-28 19:14:09,340 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:09,340 INFO L93 Difference]: Finished difference Result 81 states and 102 transitions. [2020-07-28 19:14:09,340 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 102 transitions. [2020-07-28 19:14:09,342 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:14:09,342 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:14:09,343 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand 81 states. [2020-07-28 19:14:09,343 INFO L87 Difference]: Start difference. First operand 81 states. Second operand 81 states. [2020-07-28 19:14:09,349 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:09,349 INFO L93 Difference]: Finished difference Result 81 states and 102 transitions. [2020-07-28 19:14:09,350 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 102 transitions. [2020-07-28 19:14:09,351 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:14:09,351 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:14:09,351 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 19:14:09,352 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 19:14:09,352 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 81 states. [2020-07-28 19:14:09,357 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 102 transitions. [2020-07-28 19:14:09,358 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 102 transitions. Word has length 42 [2020-07-28 19:14:09,358 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 19:14:09,358 INFO L479 AbstractCegarLoop]: Abstraction has 81 states and 102 transitions. [2020-07-28 19:14:09,358 INFO L480 AbstractCegarLoop]: Interpolant automaton has 8 states. [2020-07-28 19:14:09,359 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 102 transitions. [2020-07-28 19:14:09,360 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2020-07-28 19:14:09,361 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 19:14:09,361 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 19:14:09,575 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 mathsat -unsat_core_generation=3 [2020-07-28 19:14:09,576 INFO L427 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 19:14:09,576 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 19:14:09,577 INFO L82 PathProgramCache]: Analyzing trace with hash 962350225, now seen corresponding path program 1 times [2020-07-28 19:14:09,578 INFO L163 FreeRefinementEngine]: Executing refinement strategy WOLF [2020-07-28 19:14:09,578 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [346032816] [2020-07-28 19:14:09,578 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 19:14:09,689 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:14:09,698 INFO L263 TraceCheckSpWp]: Trace formula consists of 177 conjuncts, 9 conjunts are in the unsatisfiable core [2020-07-28 19:14:09,728 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:14:09,730 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 19:14:09,856 INFO L280 TraceCheckUtils]: 0: Hoare triple {1408#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {1408#true} is VALID [2020-07-28 19:14:09,856 INFO L280 TraceCheckUtils]: 1: Hoare triple {1408#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {1408#true} is VALID [2020-07-28 19:14:09,856 INFO L263 TraceCheckUtils]: 2: Hoare triple {1408#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {1408#true} is VALID [2020-07-28 19:14:09,858 INFO L280 TraceCheckUtils]: 3: Hoare triple {1408#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; {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:09,858 INFO L263 TraceCheckUtils]: 4: Hoare triple {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1408#true} is VALID [2020-07-28 19:14:09,859 INFO L280 TraceCheckUtils]: 5: Hoare triple {1408#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {1408#true} is VALID [2020-07-28 19:14:09,859 INFO L280 TraceCheckUtils]: 6: Hoare triple {1408#true} assume true; {1408#true} is VALID [2020-07-28 19:14:09,860 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1408#true} {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #151#return; {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:09,861 INFO L280 TraceCheckUtils]: 8: Hoare triple {1422#(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; {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:09,861 INFO L263 TraceCheckUtils]: 9: Hoare triple {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1408#true} is VALID [2020-07-28 19:14:09,862 INFO L280 TraceCheckUtils]: 10: Hoare triple {1408#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {1408#true} is VALID [2020-07-28 19:14:09,862 INFO L280 TraceCheckUtils]: 11: Hoare triple {1408#true} assume true; {1408#true} is VALID [2020-07-28 19:14:09,863 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1408#true} {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #153#return; {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:09,865 INFO L280 TraceCheckUtils]: 13: Hoare triple {1422#(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; {1453#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:09,865 INFO L280 TraceCheckUtils]: 14: Hoare triple {1453#(not (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {1453#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:09,867 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1453#(not (= (_ bv0 32) |nondet_tree_#res.base|))} {1408#true} #165#return; {1460#(not (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)))} is VALID [2020-07-28 19:14:09,868 INFO L280 TraceCheckUtils]: 16: Hoare triple {1460#(not (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)))} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {1464#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:09,868 INFO L263 TraceCheckUtils]: 17: Hoare triple {1464#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {1408#true} is VALID [2020-07-28 19:14:09,869 INFO L280 TraceCheckUtils]: 18: Hoare triple {1408#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1471#(= |min_#in~n.base| min_~n.base)} is VALID [2020-07-28 19:14:09,870 INFO L280 TraceCheckUtils]: 19: Hoare triple {1471#(= |min_#in~n.base| min_~n.base)} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {1475#(= |min_#in~n.base| (_ bv0 32))} is VALID [2020-07-28 19:14:09,871 INFO L280 TraceCheckUtils]: 20: Hoare triple {1475#(= |min_#in~n.base| (_ bv0 32))} assume true; {1475#(= |min_#in~n.base| (_ bv0 32))} is VALID [2020-07-28 19:14:09,873 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {1475#(= |min_#in~n.base| (_ bv0 32))} {1464#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #167#return; {1409#false} is VALID [2020-07-28 19:14:09,873 INFO L280 TraceCheckUtils]: 22: Hoare triple {1409#false} task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {1409#false} is VALID [2020-07-28 19:14:09,874 INFO L263 TraceCheckUtils]: 23: Hoare triple {1409#false} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {1409#false} is VALID [2020-07-28 19:14:09,874 INFO L280 TraceCheckUtils]: 24: Hoare triple {1409#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1409#false} is VALID [2020-07-28 19:14:09,875 INFO L280 TraceCheckUtils]: 25: Hoare triple {1409#false} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {1409#false} is VALID [2020-07-28 19:14:09,875 INFO L263 TraceCheckUtils]: 26: Hoare triple {1409#false} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {1409#false} is VALID [2020-07-28 19:14:09,875 INFO L280 TraceCheckUtils]: 27: Hoare triple {1409#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1409#false} is VALID [2020-07-28 19:14:09,875 INFO L280 TraceCheckUtils]: 28: Hoare triple {1409#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1409#false} is VALID [2020-07-28 19:14:09,876 INFO L280 TraceCheckUtils]: 29: Hoare triple {1409#false} assume true; {1409#false} is VALID [2020-07-28 19:14:09,876 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1409#false} {1409#false} #161#return; {1409#false} is VALID [2020-07-28 19:14:09,876 INFO L280 TraceCheckUtils]: 31: Hoare triple {1409#false} call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {1409#false} is VALID [2020-07-28 19:14:09,876 INFO L263 TraceCheckUtils]: 32: Hoare triple {1409#false} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {1409#false} is VALID [2020-07-28 19:14:09,877 INFO L280 TraceCheckUtils]: 33: Hoare triple {1409#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1409#false} is VALID [2020-07-28 19:14:09,877 INFO L280 TraceCheckUtils]: 34: Hoare triple {1409#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1409#false} is VALID [2020-07-28 19:14:09,877 INFO L280 TraceCheckUtils]: 35: Hoare triple {1409#false} assume true; {1409#false} is VALID [2020-07-28 19:14:09,878 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {1409#false} {1409#false} #163#return; {1409#false} is VALID [2020-07-28 19:14:09,878 INFO L280 TraceCheckUtils]: 37: Hoare triple {1409#false} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret23, #t~ret25));havoc #t~mem22.base, #t~mem22.offset;havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret25;havoc #t~ret23; {1409#false} is VALID [2020-07-28 19:14:09,878 INFO L280 TraceCheckUtils]: 38: Hoare triple {1409#false} assume true; {1409#false} is VALID [2020-07-28 19:14:09,879 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1409#false} {1409#false} #169#return; {1409#false} is VALID [2020-07-28 19:14:09,879 INFO L280 TraceCheckUtils]: 40: Hoare triple {1409#false} task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {1409#false} is VALID [2020-07-28 19:14:09,879 INFO L280 TraceCheckUtils]: 41: Hoare triple {1409#false} assume !(0bv32 == assume_cycle_if_not_~cond); {1409#false} is VALID [2020-07-28 19:14:09,879 INFO L280 TraceCheckUtils]: 42: Hoare triple {1409#false} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {1409#false} is VALID [2020-07-28 19:14:09,880 INFO L280 TraceCheckUtils]: 43: Hoare triple {1409#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {1409#false} is VALID [2020-07-28 19:14:09,880 INFO L263 TraceCheckUtils]: 44: Hoare triple {1409#false} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1409#false} is VALID [2020-07-28 19:14:09,880 INFO L280 TraceCheckUtils]: 45: Hoare triple {1409#false} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {1409#false} is VALID [2020-07-28 19:14:09,881 INFO L280 TraceCheckUtils]: 46: Hoare triple {1409#false} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {1409#false} is VALID [2020-07-28 19:14:09,881 INFO L280 TraceCheckUtils]: 47: Hoare triple {1409#false} assume true; {1409#false} is VALID [2020-07-28 19:14:09,882 INFO L275 TraceCheckUtils]: 48: Hoare quadruple {1409#false} {1409#false} #171#return; {1409#false} is VALID [2020-07-28 19:14:09,882 INFO L280 TraceCheckUtils]: 49: Hoare triple {1409#false} havoc task_#t~ret29;call task_#t~mem30 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {1409#false} is VALID [2020-07-28 19:14:09,882 INFO L280 TraceCheckUtils]: 50: Hoare triple {1409#false} assume 0bv32 == __VERIFIER_assert_~cond; {1409#false} is VALID [2020-07-28 19:14:09,883 INFO L280 TraceCheckUtils]: 51: Hoare triple {1409#false} assume !false; {1409#false} is VALID [2020-07-28 19:14:09,886 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 19:14:09,887 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2020-07-28 19:14:10,128 INFO L280 TraceCheckUtils]: 51: Hoare triple {1409#false} assume !false; {1409#false} is VALID [2020-07-28 19:14:10,128 INFO L280 TraceCheckUtils]: 50: Hoare triple {1409#false} assume 0bv32 == __VERIFIER_assert_~cond; {1409#false} is VALID [2020-07-28 19:14:10,129 INFO L280 TraceCheckUtils]: 49: Hoare triple {1409#false} havoc task_#t~ret29;call task_#t~mem30 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {1409#false} is VALID [2020-07-28 19:14:10,129 INFO L275 TraceCheckUtils]: 48: Hoare quadruple {1408#true} {1409#false} #171#return; {1409#false} is VALID [2020-07-28 19:14:10,129 INFO L280 TraceCheckUtils]: 47: Hoare triple {1408#true} assume true; {1408#true} is VALID [2020-07-28 19:14:10,129 INFO L280 TraceCheckUtils]: 46: Hoare triple {1408#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {1408#true} is VALID [2020-07-28 19:14:10,130 INFO L280 TraceCheckUtils]: 45: Hoare triple {1408#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {1408#true} is VALID [2020-07-28 19:14:10,130 INFO L263 TraceCheckUtils]: 44: Hoare triple {1409#false} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {1408#true} is VALID [2020-07-28 19:14:10,130 INFO L280 TraceCheckUtils]: 43: Hoare triple {1409#false} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {1409#false} is VALID [2020-07-28 19:14:10,130 INFO L280 TraceCheckUtils]: 42: Hoare triple {1409#false} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {1409#false} is VALID [2020-07-28 19:14:10,131 INFO L280 TraceCheckUtils]: 41: Hoare triple {1409#false} assume !(0bv32 == assume_cycle_if_not_~cond); {1409#false} is VALID [2020-07-28 19:14:10,131 INFO L280 TraceCheckUtils]: 40: Hoare triple {1409#false} task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {1409#false} is VALID [2020-07-28 19:14:10,131 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1408#true} {1409#false} #169#return; {1409#false} is VALID [2020-07-28 19:14:10,131 INFO L280 TraceCheckUtils]: 38: Hoare triple {1408#true} assume true; {1408#true} is VALID [2020-07-28 19:14:10,132 INFO L280 TraceCheckUtils]: 37: Hoare triple {1408#true} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret23, #t~ret25));havoc #t~mem22.base, #t~mem22.offset;havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret25;havoc #t~ret23; {1408#true} is VALID [2020-07-28 19:14:10,132 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {1408#true} {1408#true} #163#return; {1408#true} is VALID [2020-07-28 19:14:10,133 INFO L280 TraceCheckUtils]: 35: Hoare triple {1408#true} assume true; {1408#true} is VALID [2020-07-28 19:14:10,133 INFO L280 TraceCheckUtils]: 34: Hoare triple {1408#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1408#true} is VALID [2020-07-28 19:14:10,133 INFO L280 TraceCheckUtils]: 33: Hoare triple {1408#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1408#true} is VALID [2020-07-28 19:14:10,133 INFO L263 TraceCheckUtils]: 32: Hoare triple {1408#true} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {1408#true} is VALID [2020-07-28 19:14:10,134 INFO L280 TraceCheckUtils]: 31: Hoare triple {1408#true} call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {1408#true} is VALID [2020-07-28 19:14:10,134 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1408#true} {1408#true} #161#return; {1408#true} is VALID [2020-07-28 19:14:10,135 INFO L280 TraceCheckUtils]: 29: Hoare triple {1408#true} assume true; {1408#true} is VALID [2020-07-28 19:14:10,135 INFO L280 TraceCheckUtils]: 28: Hoare triple {1408#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {1408#true} is VALID [2020-07-28 19:14:10,135 INFO L280 TraceCheckUtils]: 27: Hoare triple {1408#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1408#true} is VALID [2020-07-28 19:14:10,136 INFO L263 TraceCheckUtils]: 26: Hoare triple {1408#true} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {1408#true} is VALID [2020-07-28 19:14:10,136 INFO L280 TraceCheckUtils]: 25: Hoare triple {1408#true} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {1408#true} is VALID [2020-07-28 19:14:10,136 INFO L280 TraceCheckUtils]: 24: Hoare triple {1408#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {1408#true} is VALID [2020-07-28 19:14:10,137 INFO L263 TraceCheckUtils]: 23: Hoare triple {1409#false} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {1408#true} is VALID [2020-07-28 19:14:10,137 INFO L280 TraceCheckUtils]: 22: Hoare triple {1409#false} task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {1409#false} is VALID [2020-07-28 19:14:10,139 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {1475#(= |min_#in~n.base| (_ bv0 32))} {1464#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #167#return; {1409#false} is VALID [2020-07-28 19:14:10,139 INFO L280 TraceCheckUtils]: 20: Hoare triple {1475#(= |min_#in~n.base| (_ bv0 32))} assume true; {1475#(= |min_#in~n.base| (_ bv0 32))} is VALID [2020-07-28 19:14:10,140 INFO L280 TraceCheckUtils]: 19: Hoare triple {1671#(or (not (= (_ bv0 32) min_~n.base)) (= |min_#in~n.base| (_ bv0 32)))} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {1475#(= |min_#in~n.base| (_ bv0 32))} is VALID [2020-07-28 19:14:10,141 INFO L280 TraceCheckUtils]: 18: Hoare triple {1408#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {1671#(or (not (= (_ bv0 32) min_~n.base)) (= |min_#in~n.base| (_ bv0 32)))} is VALID [2020-07-28 19:14:10,141 INFO L263 TraceCheckUtils]: 17: Hoare triple {1464#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {1408#true} is VALID [2020-07-28 19:14:10,142 INFO L280 TraceCheckUtils]: 16: Hoare triple {1460#(not (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)))} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {1464#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:10,143 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {1453#(not (= (_ bv0 32) |nondet_tree_#res.base|))} {1408#true} #165#return; {1460#(not (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)))} is VALID [2020-07-28 19:14:10,143 INFO L280 TraceCheckUtils]: 14: Hoare triple {1453#(not (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {1453#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:10,144 INFO L280 TraceCheckUtils]: 13: Hoare triple {1422#(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; {1453#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:10,145 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {1408#true} {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #153#return; {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:10,145 INFO L280 TraceCheckUtils]: 11: Hoare triple {1408#true} assume true; {1408#true} is VALID [2020-07-28 19:14:10,145 INFO L280 TraceCheckUtils]: 10: Hoare triple {1408#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {1408#true} is VALID [2020-07-28 19:14:10,145 INFO L263 TraceCheckUtils]: 9: Hoare triple {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {1408#true} is VALID [2020-07-28 19:14:10,146 INFO L280 TraceCheckUtils]: 8: Hoare triple {1422#(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; {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:10,147 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1408#true} {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #151#return; {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:10,147 INFO L280 TraceCheckUtils]: 6: Hoare triple {1408#true} assume true; {1408#true} is VALID [2020-07-28 19:14:10,147 INFO L280 TraceCheckUtils]: 5: Hoare triple {1408#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {1408#true} is VALID [2020-07-28 19:14:10,147 INFO L263 TraceCheckUtils]: 4: Hoare triple {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {1408#true} is VALID [2020-07-28 19:14:10,148 INFO L280 TraceCheckUtils]: 3: Hoare triple {1408#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; {1422#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:10,149 INFO L263 TraceCheckUtils]: 2: Hoare triple {1408#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {1408#true} is VALID [2020-07-28 19:14:10,149 INFO L280 TraceCheckUtils]: 1: Hoare triple {1408#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {1408#true} is VALID [2020-07-28 19:14:10,149 INFO L280 TraceCheckUtils]: 0: Hoare triple {1408#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {1408#true} is VALID [2020-07-28 19:14:10,154 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 19:14:10,155 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [346032816] [2020-07-28 19:14:10,155 INFO L220 FreeRefinementEngine]: Constructing automaton from 2 perfect and 0 imperfect interpolant sequences. [2020-07-28 19:14:10,155 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8, 8] imperfect sequences [] total 9 [2020-07-28 19:14:10,156 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1970469646] [2020-07-28 19:14:10,156 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 52 [2020-07-28 19:14:10,158 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 19:14:10,158 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2020-07-28 19:14:10,271 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 19:14:10,271 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2020-07-28 19:14:10,271 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2020-07-28 19:14:10,272 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2020-07-28 19:14:10,272 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=55, Unknown=0, NotChecked=0, Total=72 [2020-07-28 19:14:10,272 INFO L87 Difference]: Start difference. First operand 81 states and 102 transitions. Second operand 9 states. [2020-07-28 19:14:11,701 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:11,701 INFO L93 Difference]: Finished difference Result 140 states and 175 transitions. [2020-07-28 19:14:11,701 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2020-07-28 19:14:11,702 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 52 [2020-07-28 19:14:11,702 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 19:14:11,702 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-28 19:14:11,707 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 167 transitions. [2020-07-28 19:14:11,707 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-28 19:14:11,712 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 167 transitions. [2020-07-28 19:14:11,712 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 167 transitions. [2020-07-28 19:14:11,989 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 167 edges. 167 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 19:14:11,993 INFO L225 Difference]: With dead ends: 140 [2020-07-28 19:14:11,994 INFO L226 Difference]: Without dead ends: 83 [2020-07-28 19:14:11,995 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 19:14:11,996 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 83 states. [2020-07-28 19:14:12,036 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 83 to 83. [2020-07-28 19:14:12,036 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 19:14:12,036 INFO L82 GeneralOperation]: Start isEquivalent. First operand 83 states. Second operand 83 states. [2020-07-28 19:14:12,037 INFO L74 IsIncluded]: Start isIncluded. First operand 83 states. Second operand 83 states. [2020-07-28 19:14:12,037 INFO L87 Difference]: Start difference. First operand 83 states. Second operand 83 states. [2020-07-28 19:14:12,042 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:12,042 INFO L93 Difference]: Finished difference Result 83 states and 105 transitions. [2020-07-28 19:14:12,043 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 105 transitions. [2020-07-28 19:14:12,043 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:14:12,044 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:14:12,044 INFO L74 IsIncluded]: Start isIncluded. First operand 83 states. Second operand 83 states. [2020-07-28 19:14:12,044 INFO L87 Difference]: Start difference. First operand 83 states. Second operand 83 states. [2020-07-28 19:14:12,049 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:12,049 INFO L93 Difference]: Finished difference Result 83 states and 105 transitions. [2020-07-28 19:14:12,049 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 105 transitions. [2020-07-28 19:14:12,050 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:14:12,050 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:14:12,051 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 19:14:12,051 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 19:14:12,051 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 83 states. [2020-07-28 19:14:12,055 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 83 states to 83 states and 105 transitions. [2020-07-28 19:14:12,056 INFO L78 Accepts]: Start accepts. Automaton has 83 states and 105 transitions. Word has length 52 [2020-07-28 19:14:12,056 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 19:14:12,056 INFO L479 AbstractCegarLoop]: Abstraction has 83 states and 105 transitions. [2020-07-28 19:14:12,057 INFO L480 AbstractCegarLoop]: Interpolant automaton has 9 states. [2020-07-28 19:14:12,057 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 105 transitions. [2020-07-28 19:14:12,058 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 66 [2020-07-28 19:14:12,059 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 19:14:12,059 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 19:14:12,268 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 4 mathsat -unsat_core_generation=3 [2020-07-28 19:14:12,270 INFO L427 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 19:14:12,270 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 19:14:12,270 INFO L82 PathProgramCache]: Analyzing trace with hash -431413566, now seen corresponding path program 1 times [2020-07-28 19:14:12,271 INFO L163 FreeRefinementEngine]: Executing refinement strategy WOLF [2020-07-28 19:14:12,273 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [510935381] [2020-07-28 19:14:12,277 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 19:14:12,398 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:14:12,403 INFO L263 TraceCheckSpWp]: Trace formula consists of 207 conjuncts, 9 conjunts are in the unsatisfiable core [2020-07-28 19:14:12,430 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 19:14:12,433 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 19:14:12,558 INFO L280 TraceCheckUtils]: 0: Hoare triple {2179#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {2179#true} is VALID [2020-07-28 19:14:12,559 INFO L280 TraceCheckUtils]: 1: Hoare triple {2179#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {2179#true} is VALID [2020-07-28 19:14:12,559 INFO L263 TraceCheckUtils]: 2: Hoare triple {2179#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {2179#true} is VALID [2020-07-28 19:14:12,561 INFO L280 TraceCheckUtils]: 3: Hoare triple {2179#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; {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:12,561 INFO L263 TraceCheckUtils]: 4: Hoare triple {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {2179#true} is VALID [2020-07-28 19:14:12,562 INFO L280 TraceCheckUtils]: 5: Hoare triple {2179#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {2179#true} is VALID [2020-07-28 19:14:12,562 INFO L280 TraceCheckUtils]: 6: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,564 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2179#true} {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #151#return; {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:12,566 INFO L280 TraceCheckUtils]: 8: Hoare triple {2193#(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; {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:12,566 INFO L263 TraceCheckUtils]: 9: Hoare triple {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {2179#true} is VALID [2020-07-28 19:14:12,566 INFO L280 TraceCheckUtils]: 10: Hoare triple {2179#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {2179#true} is VALID [2020-07-28 19:14:12,566 INFO L280 TraceCheckUtils]: 11: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,567 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {2179#true} {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #153#return; {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:12,568 INFO L280 TraceCheckUtils]: 13: Hoare triple {2193#(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; {2224#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:12,569 INFO L280 TraceCheckUtils]: 14: Hoare triple {2224#(not (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {2224#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:12,570 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {2224#(not (= (_ bv0 32) |nondet_tree_#res.base|))} {2179#true} #165#return; {2231#(not (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)))} is VALID [2020-07-28 19:14:12,571 INFO L280 TraceCheckUtils]: 16: Hoare triple {2231#(not (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)))} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,571 INFO L263 TraceCheckUtils]: 17: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {2179#true} is VALID [2020-07-28 19:14:12,571 INFO L280 TraceCheckUtils]: 18: Hoare triple {2179#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2179#true} is VALID [2020-07-28 19:14:12,572 INFO L280 TraceCheckUtils]: 19: Hoare triple {2179#true} assume !(~n.base == 0bv32 && ~n.offset == 0bv32);call #t~mem6 := read~intINTTYPE4(~n.base, ~n.offset, 4bv32);~a~0 := #t~mem6;havoc #t~mem6;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~n.base, ~bvadd32(4bv32, ~n.offset), 4bv32); {2179#true} is VALID [2020-07-28 19:14:12,572 INFO L263 TraceCheckUtils]: 20: Hoare triple {2179#true} call #t~ret8 := min(#t~mem7.base, #t~mem7.offset); {2179#true} is VALID [2020-07-28 19:14:12,572 INFO L280 TraceCheckUtils]: 21: Hoare triple {2179#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2179#true} is VALID [2020-07-28 19:14:12,572 INFO L280 TraceCheckUtils]: 22: Hoare triple {2179#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {2179#true} is VALID [2020-07-28 19:14:12,572 INFO L280 TraceCheckUtils]: 23: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,573 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {2179#true} {2179#true} #157#return; {2179#true} is VALID [2020-07-28 19:14:12,573 INFO L280 TraceCheckUtils]: 25: Hoare triple {2179#true} ~b~0 := #t~ret8;havoc #t~ret8;havoc #t~mem7.base, #t~mem7.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~n.base, ~bvadd32(8bv32, ~n.offset), 4bv32); {2179#true} is VALID [2020-07-28 19:14:12,573 INFO L263 TraceCheckUtils]: 26: Hoare triple {2179#true} call #t~ret10 := min(#t~mem9.base, #t~mem9.offset); {2179#true} is VALID [2020-07-28 19:14:12,573 INFO L280 TraceCheckUtils]: 27: Hoare triple {2179#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2179#true} is VALID [2020-07-28 19:14:12,574 INFO L280 TraceCheckUtils]: 28: Hoare triple {2179#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {2179#true} is VALID [2020-07-28 19:14:12,574 INFO L280 TraceCheckUtils]: 29: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,574 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2179#true} {2179#true} #159#return; {2179#true} is VALID [2020-07-28 19:14:12,574 INFO L280 TraceCheckUtils]: 31: Hoare triple {2179#true} ~c~0 := #t~ret10;havoc #t~mem9.base, #t~mem9.offset;havoc #t~ret10; {2179#true} is VALID [2020-07-28 19:14:12,575 INFO L280 TraceCheckUtils]: 32: Hoare triple {2179#true} assume ~bvsle32(~b~0, ~a~0) && ~bvsle32(~b~0, ~c~0);#res := ~b~0; {2179#true} is VALID [2020-07-28 19:14:12,575 INFO L280 TraceCheckUtils]: 33: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,579 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {2179#true} {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #167#return; {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,580 INFO L280 TraceCheckUtils]: 35: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,580 INFO L263 TraceCheckUtils]: 36: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {2179#true} is VALID [2020-07-28 19:14:12,580 INFO L280 TraceCheckUtils]: 37: Hoare triple {2179#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2179#true} is VALID [2020-07-28 19:14:12,580 INFO L280 TraceCheckUtils]: 38: Hoare triple {2179#true} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {2179#true} is VALID [2020-07-28 19:14:12,581 INFO L263 TraceCheckUtils]: 39: Hoare triple {2179#true} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {2179#true} is VALID [2020-07-28 19:14:12,581 INFO L280 TraceCheckUtils]: 40: Hoare triple {2179#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2179#true} is VALID [2020-07-28 19:14:12,581 INFO L280 TraceCheckUtils]: 41: Hoare triple {2179#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {2179#true} is VALID [2020-07-28 19:14:12,581 INFO L280 TraceCheckUtils]: 42: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,581 INFO L275 TraceCheckUtils]: 43: Hoare quadruple {2179#true} {2179#true} #161#return; {2179#true} is VALID [2020-07-28 19:14:12,581 INFO L280 TraceCheckUtils]: 44: Hoare triple {2179#true} call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {2179#true} is VALID [2020-07-28 19:14:12,582 INFO L263 TraceCheckUtils]: 45: Hoare triple {2179#true} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {2179#true} is VALID [2020-07-28 19:14:12,582 INFO L280 TraceCheckUtils]: 46: Hoare triple {2179#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2179#true} is VALID [2020-07-28 19:14:12,582 INFO L280 TraceCheckUtils]: 47: Hoare triple {2179#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {2179#true} is VALID [2020-07-28 19:14:12,582 INFO L280 TraceCheckUtils]: 48: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,582 INFO L275 TraceCheckUtils]: 49: Hoare quadruple {2179#true} {2179#true} #163#return; {2179#true} is VALID [2020-07-28 19:14:12,582 INFO L280 TraceCheckUtils]: 50: Hoare triple {2179#true} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret23, #t~ret25));havoc #t~mem22.base, #t~mem22.offset;havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret25;havoc #t~ret23; {2179#true} is VALID [2020-07-28 19:14:12,583 INFO L280 TraceCheckUtils]: 51: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,583 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {2179#true} {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #169#return; {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,588 INFO L280 TraceCheckUtils]: 53: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,589 INFO L280 TraceCheckUtils]: 54: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} assume !(0bv32 == assume_cycle_if_not_~cond); {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,589 INFO L280 TraceCheckUtils]: 55: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,590 INFO L280 TraceCheckUtils]: 56: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,590 INFO L263 TraceCheckUtils]: 57: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {2179#true} is VALID [2020-07-28 19:14:12,591 INFO L280 TraceCheckUtils]: 58: Hoare triple {2179#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {2362#(= tree_inorder_~t.base |tree_inorder_#in~t.base|)} is VALID [2020-07-28 19:14:12,591 INFO L280 TraceCheckUtils]: 59: Hoare triple {2362#(= tree_inorder_~t.base |tree_inorder_#in~t.base|)} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {2366#(= (_ bv0 32) |tree_inorder_#in~t.base|)} is VALID [2020-07-28 19:14:12,592 INFO L280 TraceCheckUtils]: 60: Hoare triple {2366#(= (_ bv0 32) |tree_inorder_#in~t.base|)} assume true; {2366#(= (_ bv0 32) |tree_inorder_#in~t.base|)} is VALID [2020-07-28 19:14:12,594 INFO L275 TraceCheckUtils]: 61: Hoare quadruple {2366#(= (_ bv0 32) |tree_inorder_#in~t.base|)} {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #171#return; {2180#false} is VALID [2020-07-28 19:14:12,594 INFO L280 TraceCheckUtils]: 62: Hoare triple {2180#false} havoc task_#t~ret29;call task_#t~mem30 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {2180#false} is VALID [2020-07-28 19:14:12,594 INFO L280 TraceCheckUtils]: 63: Hoare triple {2180#false} assume 0bv32 == __VERIFIER_assert_~cond; {2180#false} is VALID [2020-07-28 19:14:12,594 INFO L280 TraceCheckUtils]: 64: Hoare triple {2180#false} assume !false; {2180#false} is VALID [2020-07-28 19:14:12,597 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 19:14:12,597 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2020-07-28 19:14:12,859 INFO L280 TraceCheckUtils]: 64: Hoare triple {2180#false} assume !false; {2180#false} is VALID [2020-07-28 19:14:12,860 INFO L280 TraceCheckUtils]: 63: Hoare triple {2180#false} assume 0bv32 == __VERIFIER_assert_~cond; {2180#false} is VALID [2020-07-28 19:14:12,860 INFO L280 TraceCheckUtils]: 62: Hoare triple {2180#false} havoc task_#t~ret29;call task_#t~mem30 := read~intINTTYPE4(task_~x~0.base, task_~x~0.offset, 4bv32);__VERIFIER_assert_#in~cond := (if task_~a~1 == task_#t~mem30 then 1bv32 else 0bv32);havoc __VERIFIER_assert_~cond;__VERIFIER_assert_~cond := __VERIFIER_assert_#in~cond; {2180#false} is VALID [2020-07-28 19:14:12,861 INFO L275 TraceCheckUtils]: 61: Hoare quadruple {2366#(= (_ bv0 32) |tree_inorder_#in~t.base|)} {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #171#return; {2180#false} is VALID [2020-07-28 19:14:12,861 INFO L280 TraceCheckUtils]: 60: Hoare triple {2366#(= (_ bv0 32) |tree_inorder_#in~t.base|)} assume true; {2366#(= (_ bv0 32) |tree_inorder_#in~t.base|)} is VALID [2020-07-28 19:14:12,862 INFO L280 TraceCheckUtils]: 59: Hoare triple {2400#(or (not (= tree_inorder_~t.base (_ bv0 32))) (= (_ bv0 32) |tree_inorder_#in~t.base|))} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := ~i; {2366#(= (_ bv0 32) |tree_inorder_#in~t.base|)} is VALID [2020-07-28 19:14:12,863 INFO L280 TraceCheckUtils]: 58: Hoare triple {2179#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i; {2400#(or (not (= tree_inorder_~t.base (_ bv0 32))) (= (_ bv0 32) |tree_inorder_#in~t.base|))} is VALID [2020-07-28 19:14:12,863 INFO L263 TraceCheckUtils]: 57: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret29 := tree_inorder(task_~t.base, task_~t.offset, task_~x~0.base, task_~x~0.offset, task_~n~1); {2179#true} is VALID [2020-07-28 19:14:12,864 INFO L280 TraceCheckUtils]: 56: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~x~0.base, task_~x~0.offset := task_#t~malloc28.base, task_#t~malloc28.offset; {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,864 INFO L280 TraceCheckUtils]: 55: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~malloc28.base, task_#t~malloc28.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~malloc28.base, task_#t~malloc28.offset, task_~n~1, 4bv32, ~bvmul32(4bv32, task_~n~1);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr.base); {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,864 INFO L280 TraceCheckUtils]: 54: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} assume !(0bv32 == assume_cycle_if_not_~cond); {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,865 INFO L280 TraceCheckUtils]: 53: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~n~1 := task_#t~ret27;havoc task_#t~ret27;assume_cycle_if_not_#in~cond := (if 0bv32 != task_~n~1 then 1bv32 else 0bv32);havoc assume_cycle_if_not_~cond;assume_cycle_if_not_~cond := assume_cycle_if_not_#in~cond; {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,865 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {2179#true} {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #169#return; {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,866 INFO L280 TraceCheckUtils]: 51: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,866 INFO L280 TraceCheckUtils]: 50: Hoare triple {2179#true} #res := ~bvadd32(1bv32, ~bvadd32(#t~ret23, #t~ret25));havoc #t~mem22.base, #t~mem22.offset;havoc #t~mem24.base, #t~mem24.offset;havoc #t~ret25;havoc #t~ret23; {2179#true} is VALID [2020-07-28 19:14:12,866 INFO L275 TraceCheckUtils]: 49: Hoare quadruple {2179#true} {2179#true} #163#return; {2179#true} is VALID [2020-07-28 19:14:12,866 INFO L280 TraceCheckUtils]: 48: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,866 INFO L280 TraceCheckUtils]: 47: Hoare triple {2179#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {2179#true} is VALID [2020-07-28 19:14:12,866 INFO L280 TraceCheckUtils]: 46: Hoare triple {2179#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2179#true} is VALID [2020-07-28 19:14:12,867 INFO L263 TraceCheckUtils]: 45: Hoare triple {2179#true} call #t~ret25 := size(#t~mem24.base, #t~mem24.offset); {2179#true} is VALID [2020-07-28 19:14:12,867 INFO L280 TraceCheckUtils]: 44: Hoare triple {2179#true} call #t~mem24.base, #t~mem24.offset := read~$Pointer$(~t.base, ~bvadd32(8bv32, ~t.offset), 4bv32); {2179#true} is VALID [2020-07-28 19:14:12,867 INFO L275 TraceCheckUtils]: 43: Hoare quadruple {2179#true} {2179#true} #161#return; {2179#true} is VALID [2020-07-28 19:14:12,867 INFO L280 TraceCheckUtils]: 42: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,867 INFO L280 TraceCheckUtils]: 41: Hoare triple {2179#true} assume ~t.base == 0bv32 && ~t.offset == 0bv32;#res := 0bv32; {2179#true} is VALID [2020-07-28 19:14:12,867 INFO L280 TraceCheckUtils]: 40: Hoare triple {2179#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2179#true} is VALID [2020-07-28 19:14:12,868 INFO L263 TraceCheckUtils]: 39: Hoare triple {2179#true} call #t~ret23 := size(#t~mem22.base, #t~mem22.offset); {2179#true} is VALID [2020-07-28 19:14:12,868 INFO L280 TraceCheckUtils]: 38: Hoare triple {2179#true} assume !(~t.base == 0bv32 && ~t.offset == 0bv32);call #t~mem22.base, #t~mem22.offset := read~$Pointer$(~t.base, ~bvadd32(4bv32, ~t.offset), 4bv32); {2179#true} is VALID [2020-07-28 19:14:12,868 INFO L280 TraceCheckUtils]: 37: Hoare triple {2179#true} ~t.base, ~t.offset := #in~t.base, #in~t.offset; {2179#true} is VALID [2020-07-28 19:14:12,868 INFO L263 TraceCheckUtils]: 36: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret27 := size(task_~t.base, task_~t.offset); {2179#true} is VALID [2020-07-28 19:14:12,868 INFO L280 TraceCheckUtils]: 35: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} task_~a~1 := task_#t~ret26;havoc task_#t~ret26;call task_~#b~1.base, task_~#b~1.offset := #Ultimate.allocOnStack(4bv32); {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,869 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {2179#true} {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} #167#return; {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,869 INFO L280 TraceCheckUtils]: 33: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,869 INFO L280 TraceCheckUtils]: 32: Hoare triple {2179#true} assume ~bvsle32(~b~0, ~a~0) && ~bvsle32(~b~0, ~c~0);#res := ~b~0; {2179#true} is VALID [2020-07-28 19:14:12,870 INFO L280 TraceCheckUtils]: 31: Hoare triple {2179#true} ~c~0 := #t~ret10;havoc #t~mem9.base, #t~mem9.offset;havoc #t~ret10; {2179#true} is VALID [2020-07-28 19:14:12,870 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2179#true} {2179#true} #159#return; {2179#true} is VALID [2020-07-28 19:14:12,870 INFO L280 TraceCheckUtils]: 29: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,870 INFO L280 TraceCheckUtils]: 28: Hoare triple {2179#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {2179#true} is VALID [2020-07-28 19:14:12,870 INFO L280 TraceCheckUtils]: 27: Hoare triple {2179#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2179#true} is VALID [2020-07-28 19:14:12,870 INFO L263 TraceCheckUtils]: 26: Hoare triple {2179#true} call #t~ret10 := min(#t~mem9.base, #t~mem9.offset); {2179#true} is VALID [2020-07-28 19:14:12,871 INFO L280 TraceCheckUtils]: 25: Hoare triple {2179#true} ~b~0 := #t~ret8;havoc #t~ret8;havoc #t~mem7.base, #t~mem7.offset;call #t~mem9.base, #t~mem9.offset := read~$Pointer$(~n.base, ~bvadd32(8bv32, ~n.offset), 4bv32); {2179#true} is VALID [2020-07-28 19:14:12,871 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {2179#true} {2179#true} #157#return; {2179#true} is VALID [2020-07-28 19:14:12,871 INFO L280 TraceCheckUtils]: 23: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,871 INFO L280 TraceCheckUtils]: 22: Hoare triple {2179#true} assume ~n.base == 0bv32 && ~n.offset == 0bv32;#res := 2147483647bv32; {2179#true} is VALID [2020-07-28 19:14:12,872 INFO L280 TraceCheckUtils]: 21: Hoare triple {2179#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2179#true} is VALID [2020-07-28 19:14:12,872 INFO L263 TraceCheckUtils]: 20: Hoare triple {2179#true} call #t~ret8 := min(#t~mem7.base, #t~mem7.offset); {2179#true} is VALID [2020-07-28 19:14:12,872 INFO L280 TraceCheckUtils]: 19: Hoare triple {2179#true} assume !(~n.base == 0bv32 && ~n.offset == 0bv32);call #t~mem6 := read~intINTTYPE4(~n.base, ~n.offset, 4bv32);~a~0 := #t~mem6;havoc #t~mem6;call #t~mem7.base, #t~mem7.offset := read~$Pointer$(~n.base, ~bvadd32(4bv32, ~n.offset), 4bv32); {2179#true} is VALID [2020-07-28 19:14:12,872 INFO L280 TraceCheckUtils]: 18: Hoare triple {2179#true} ~n.base, ~n.offset := #in~n.base, #in~n.offset; {2179#true} is VALID [2020-07-28 19:14:12,872 INFO L263 TraceCheckUtils]: 17: Hoare triple {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} call task_#t~ret26 := min(task_~t.base, task_~t.offset); {2179#true} is VALID [2020-07-28 19:14:12,873 INFO L280 TraceCheckUtils]: 16: Hoare triple {2231#(not (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)))} task_#in~t.base, task_#in~t.offset := main_#t~ret39.base, main_#t~ret39.offset;havoc task_#t~ret26, task_#t~ret27, task_#t~malloc28.base, task_#t~malloc28.offset, task_#t~ret29, task_#t~mem30, task_#t~ret31.base, task_#t~ret31.offset, task_#t~mem32, task_#t~ret33, task_#t~malloc34.base, task_#t~malloc34.offset, task_#t~ret35, task_#t~mem37, task_#t~mem38, task_#t~post36, 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~1.base, task_~r~1.offset, task_~m~0, 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; {2235#(not (= (_ bv0 32) ULTIMATE.start_task_~t.base))} is VALID [2020-07-28 19:14:12,875 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {2224#(not (= (_ bv0 32) |nondet_tree_#res.base|))} {2179#true} #165#return; {2231#(not (= |ULTIMATE.start_main_#t~ret39.base| (_ bv0 32)))} is VALID [2020-07-28 19:14:12,875 INFO L280 TraceCheckUtils]: 14: Hoare triple {2224#(not (= (_ bv0 32) |nondet_tree_#res.base|))} assume true; {2224#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:12,876 INFO L280 TraceCheckUtils]: 13: Hoare triple {2193#(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; {2224#(not (= (_ bv0 32) |nondet_tree_#res.base|))} is VALID [2020-07-28 19:14:12,876 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {2179#true} {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #153#return; {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:12,877 INFO L280 TraceCheckUtils]: 11: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,877 INFO L280 TraceCheckUtils]: 10: Hoare triple {2179#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {2179#true} is VALID [2020-07-28 19:14:12,877 INFO L263 TraceCheckUtils]: 9: Hoare triple {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret5.base, #t~ret5.offset := nondet_tree(); {2179#true} is VALID [2020-07-28 19:14:12,878 INFO L280 TraceCheckUtils]: 8: Hoare triple {2193#(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; {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:12,879 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2179#true} {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} #151#return; {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:12,879 INFO L280 TraceCheckUtils]: 6: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-28 19:14:12,880 INFO L280 TraceCheckUtils]: 5: Hoare triple {2179#true} assume 0bv8 != #t~nondet1;havoc #t~nondet1;#res.base, #res.offset := 0bv32, 0bv32; {2179#true} is VALID [2020-07-28 19:14:12,880 INFO L263 TraceCheckUtils]: 4: Hoare triple {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} call #t~ret4.base, #t~ret4.offset := nondet_tree(); {2179#true} is VALID [2020-07-28 19:14:12,881 INFO L280 TraceCheckUtils]: 3: Hoare triple {2179#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; {2193#(not (= nondet_tree_~n~0.base (_ bv0 32)))} is VALID [2020-07-28 19:14:12,881 INFO L263 TraceCheckUtils]: 2: Hoare triple {2179#true} call main_#t~ret39.base, main_#t~ret39.offset := nondet_tree(); {2179#true} is VALID [2020-07-28 19:14:12,881 INFO L280 TraceCheckUtils]: 1: Hoare triple {2179#true} havoc main_#res;havoc main_#t~ret39.base, main_#t~ret39.offset; {2179#true} is VALID [2020-07-28 19:14:12,881 INFO L280 TraceCheckUtils]: 0: Hoare triple {2179#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];assume ~bvult32(0bv32, #StackHeapBarrier); {2179#true} is VALID [2020-07-28 19:14:12,884 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 19:14:12,884 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [510935381] [2020-07-28 19:14:12,884 INFO L220 FreeRefinementEngine]: Constructing automaton from 2 perfect and 0 imperfect interpolant sequences. [2020-07-28 19:14:12,884 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8, 8] imperfect sequences [] total 9 [2020-07-28 19:14:12,884 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1051219601] [2020-07-28 19:14:12,885 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 65 [2020-07-28 19:14:12,886 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 19:14:12,886 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2020-07-28 19:14:12,965 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 19:14:12,965 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2020-07-28 19:14:12,965 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2020-07-28 19:14:12,966 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2020-07-28 19:14:12,966 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=55, Unknown=0, NotChecked=0, Total=72 [2020-07-28 19:14:12,966 INFO L87 Difference]: Start difference. First operand 83 states and 105 transitions. Second operand 9 states. [2020-07-28 19:14:14,156 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:14,157 INFO L93 Difference]: Finished difference Result 135 states and 170 transitions. [2020-07-28 19:14:14,157 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2020-07-28 19:14:14,157 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 65 [2020-07-28 19:14:14,158 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 19:14:14,158 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-28 19:14:14,163 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 159 transitions. [2020-07-28 19:14:14,163 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-28 19:14:14,167 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 159 transitions. [2020-07-28 19:14:14,168 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 159 transitions. [2020-07-28 19:14:14,449 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 19:14:14,453 INFO L225 Difference]: With dead ends: 135 [2020-07-28 19:14:14,453 INFO L226 Difference]: Without dead ends: 85 [2020-07-28 19:14:14,455 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 19:14:14,456 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 85 states. [2020-07-28 19:14:14,492 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 85 to 85. [2020-07-28 19:14:14,492 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 19:14:14,493 INFO L82 GeneralOperation]: Start isEquivalent. First operand 85 states. Second operand 85 states. [2020-07-28 19:14:14,493 INFO L74 IsIncluded]: Start isIncluded. First operand 85 states. Second operand 85 states. [2020-07-28 19:14:14,493 INFO L87 Difference]: Start difference. First operand 85 states. Second operand 85 states. [2020-07-28 19:14:14,498 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:14,498 INFO L93 Difference]: Finished difference Result 85 states and 108 transitions. [2020-07-28 19:14:14,499 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 108 transitions. [2020-07-28 19:14:14,500 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:14:14,500 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:14:14,500 INFO L74 IsIncluded]: Start isIncluded. First operand 85 states. Second operand 85 states. [2020-07-28 19:14:14,500 INFO L87 Difference]: Start difference. First operand 85 states. Second operand 85 states. [2020-07-28 19:14:14,506 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 19:14:14,506 INFO L93 Difference]: Finished difference Result 85 states and 108 transitions. [2020-07-28 19:14:14,506 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 108 transitions. [2020-07-28 19:14:14,507 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 19:14:14,507 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 19:14:14,508 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 19:14:14,508 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 19:14:14,508 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 85 states. [2020-07-28 19:14:14,513 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 85 states to 85 states and 108 transitions. [2020-07-28 19:14:14,513 INFO L78 Accepts]: Start accepts. Automaton has 85 states and 108 transitions. Word has length 65 [2020-07-28 19:14:14,514 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 19:14:14,514 INFO L479 AbstractCegarLoop]: Abstraction has 85 states and 108 transitions. [2020-07-28 19:14:14,514 INFO L480 AbstractCegarLoop]: Interpolant automaton has 9 states. [2020-07-28 19:14:14,514 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 108 transitions. [2020-07-28 19:14:14,515 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 78 [2020-07-28 19:14:14,516 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 19:14:14,516 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 19:14:14,743 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 5 mathsat -unsat_core_generation=3 [2020-07-28 19:14:14,744 INFO L427 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr3ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr2ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 19:14:14,746 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 19:14:14,746 INFO L82 PathProgramCache]: Analyzing trace with hash 1851220005, now seen corresponding path program 1 times [2020-07-28 19:14:14,747 INFO L163 FreeRefinementEngine]: Executing refinement strategy WOLF [2020-07-28 19:14:14,747 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [744771430] [2020-07-28 19:14:14,748 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 19:14:14,911 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-28 19:14:14,911 INFO L221 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2020-07-28 19:14:15,043 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-28 19:14:15,044 INFO L221 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2020-07-28 19:14:15,136 INFO L174 FreeRefinementEngine]: Strategy WOLF found a feasible trace [2020-07-28 19:14:15,137 INFO L520 BasicCegarLoop]: Counterexample might be feasible [2020-07-28 19:14:15,345 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 6 mathsat -unsat_core_generation=3 [2020-07-28 19:14:15,374 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,376 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,376 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,377 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,381 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,382 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,382 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,382 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,383 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,383 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,384 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,384 WARN L417 cessorBacktranslator]: Unfinished Backtranslation: Nested struct field access of VarList #Ultimate.meminit_#ptr : $Pointer$ not handled [2020-07-28 19:14:15,404 FATAL L488 DefaultTranslator]: Callstack has procedure call flag but succeeding procedure is empty at [CALL] call #t~ret39 := nondet_tree(); [2020-07-28 19:14:15,405 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 19:14:15,411 INFO L168 Benchmark]: Toolchain (without parser) took 12583.52 ms. Allocated memory was 1.0 GB in the beginning and 1.3 GB in the end (delta: 319.3 MB). Free memory was 960.2 MB in the beginning and 1.3 GB in the end (delta: -310.1 MB). Peak memory consumption was 9.2 MB. Max. memory is 11.5 GB. [2020-07-28 19:14:15,412 INFO L168 Benchmark]: CDTParser took 0.18 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 19:14:15,412 INFO L168 Benchmark]: CACSL2BoogieTranslator took 426.95 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 135.8 MB). Free memory was 960.2 MB in the beginning and 1.1 GB in the end (delta: -165.3 MB). Peak memory consumption was 20.5 MB. Max. memory is 11.5 GB. [2020-07-28 19:14:15,413 INFO L168 Benchmark]: Boogie Procedure Inliner took 57.52 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: 1.7 MB). Peak memory consumption was 1.7 MB. Max. memory is 11.5 GB. [2020-07-28 19:14:15,414 INFO L168 Benchmark]: Boogie Preprocessor took 80.01 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 19:14:15,414 INFO L168 Benchmark]: RCFGBuilder took 891.36 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: 57.4 MB). Peak memory consumption was 57.4 MB. Max. memory is 11.5 GB. [2020-07-28 19:14:15,415 INFO L168 Benchmark]: TraceAbstraction took 11120.08 ms. Allocated memory was 1.2 GB in the beginning and 1.3 GB in the end (delta: 183.5 MB). Free memory was 1.1 GB in the beginning and 1.3 GB in the end (delta: -210.5 MB). There was no memory consumed. Max. memory is 11.5 GB. [2020-07-28 19:14:15,419 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.18 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 426.95 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 135.8 MB). Free memory was 960.2 MB in the beginning and 1.1 GB in the end (delta: -165.3 MB). Peak memory consumption was 20.5 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 57.52 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: 1.7 MB). Peak memory consumption was 1.7 MB. Max. memory is 11.5 GB. * Boogie Preprocessor took 80.01 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 891.36 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: 57.4 MB). Peak memory consumption was 57.4 MB. Max. memory is 11.5 GB. * TraceAbstraction took 11120.08 ms. Allocated memory was 1.2 GB in the beginning and 1.3 GB in the end (delta: 183.5 MB). Free memory was 1.1 GB in the beginning and 1.3 GB in the end (delta: -210.5 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...