java -Xmx4000000000 -jar ./plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata ./data -tc ../../../trunk/examples/toolchains/TreeAutomizer.xml --generate-csv --csv-dir ../../../releaseScripts/default/UAutomizer-linux/csv -s ../../../trunk/examples/settings/TreeAutomizer/TreeAutomizerStandardSettings.epf -i /storage/chc-comp/vmt-chc-benchmarks/ctigar/seq.c.smt2 -------------------------------------------------------------------------------- This is Ultimate 0.1.23-1792c6b [2018-06-14 22:51:14,408 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-06-14 22:51:14,410 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-06-14 22:51:14,426 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-06-14 22:51:14,426 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-06-14 22:51:14,427 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-06-14 22:51:14,428 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-06-14 22:51:14,433 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-06-14 22:51:14,434 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-06-14 22:51:14,435 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-06-14 22:51:14,436 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-06-14 22:51:14,436 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-06-14 22:51:14,437 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-06-14 22:51:14,438 INFO L177 SettingsManager]: ChcToBoogie provides no preferences, ignoring... [2018-06-14 22:51:14,439 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-06-14 22:51:14,439 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-06-14 22:51:14,441 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-06-14 22:51:14,444 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-06-14 22:51:14,445 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-06-14 22:51:14,446 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-06-14 22:51:14,448 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-06-14 22:51:14,450 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-06-14 22:51:14,450 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-06-14 22:51:14,451 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-06-14 22:51:14,452 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-06-14 22:51:14,453 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-06-14 22:51:14,453 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-06-14 22:51:14,454 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-06-14 22:51:14,455 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-06-14 22:51:14,456 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-06-14 22:51:14,456 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-06-14 22:51:14,457 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-06-14 22:51:14,457 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-06-14 22:51:14,458 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-06-14 22:51:14,459 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-06-14 22:51:14,459 INFO L98 SettingsManager]: Beginning loading settings from /storage/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/TreeAutomizer/TreeAutomizerStandardSettings.epf [2018-06-14 22:51:14,467 INFO L110 SettingsManager]: Loading preferences was successful [2018-06-14 22:51:14,467 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-06-14 22:51:14,470 INFO L131 SettingsManager]: Preferences of TreeAutomizer differ from their defaults: [2018-06-14 22:51:14,470 INFO L133 SettingsManager]: * SMT solver=Internal_SMTInterpol [2018-06-14 22:51:14,471 INFO L131 SettingsManager]: Preferences of SmtParser differ from their defaults: [2018-06-14 22:51:14,471 INFO L133 SettingsManager]: * Use TreeAutomizer as solver for the given file (assumes the file contains Horn clauses only).=true [2018-06-14 22:51:14,525 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-06-14 22:51:14,543 INFO L266 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-06-14 22:51:14,550 INFO L222 ainManager$Toolchain]: [Toolchain 1]: Toolchain data selected. [2018-06-14 22:51:14,551 INFO L271 PluginConnector]: Initializing SmtParser... [2018-06-14 22:51:14,552 INFO L276 PluginConnector]: SmtParser initialized [2018-06-14 22:51:14,553 INFO L431 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/chc-comp/vmt-chc-benchmarks/ctigar/seq.c.smt2 [2018-06-14 22:51:14,554 INFO L200 SmtParser]: Parsing .smt2 file as a set of Horn Clauses [2018-06-14 22:51:14,652 INFO L224 SmtParser]: Executing SMT file /storage/chc-comp/vmt-chc-benchmarks/ctigar/seq.c.smt2 unknown [2018-06-14 22:51:14,924 INFO L238 SmtParser]: Succesfully executed SMT file /storage/chc-comp/vmt-chc-benchmarks/ctigar/seq.c.smt2 [2018-06-14 22:51:14,930 INFO L304 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-06-14 22:51:14,936 INFO L131 ToolchainWalker]: Walking toolchain with 1 elements. [2018-06-14 22:51:14,937 INFO L113 PluginConnector]: ------------------------TreeAutomizer---------------------------- [2018-06-14 22:51:14,937 INFO L271 PluginConnector]: Initializing TreeAutomizer... [2018-06-14 22:51:14,941 INFO L276 PluginConnector]: TreeAutomizer initialized [2018-06-14 22:51:14,942 INFO L185 PluginConnector]: Executing the observer TreeAutomizerObserver from plugin TreeAutomizer for "de.uni_freiburg.informatik.ultimate.source.smtparser OTHER 14.06 10:51:14" (1/1) ... [2018-06-14 22:51:15,009 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:15,334 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:15,688 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:16,250 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:16,861 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:17,613 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:18,773 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:20,047 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:21,829 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:23,743 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:25,413 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:27,071 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:28,348 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:29,609 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:30,973 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:32,200 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:33,524 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:34,741 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:36,023 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:37,278 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:38,273 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:39,089 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:40,175 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:41,056 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:41,907 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:42,935 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:43,903 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:44,868 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:46,029 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:46,770 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:47,543 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:48,165 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:48,803 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:49,495 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:50,144 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:50,855 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:51,431 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:52,118 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:52,761 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:53,356 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:53,976 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:54,602 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:55,446 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:56,246 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:56,853 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:57,643 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:58,473 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:59,198 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:51:59,833 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:52:00,526 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:52:01,560 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:52:02,344 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:52:02,977 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:52:03,629 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:52:04,450 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. [2018-06-14 22:52:05,120 WARN L250 erpolLogProxyWrapper]: Using partial proofs (cut at CNF-level). Set option :produce-proofs to true to get complete proofs. Received shutdown request... [2018-06-14 22:52:05,760 FATAL L292 ToolchainWalker]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer has thrown an exception: java.lang.UnsupportedOperationException: Auxiliary term has no sort at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.predicates.SmtFreePredicateFactory$AuxiliaryTerm.getSort(SmtFreePredicateFactory.java:96) at de.uni_freiburg.informatik.ultimate.logic.NoopScript.term(NoopScript.java:308) at de.uni_freiburg.informatik.ultimate.logic.NoopScript.term(NoopScript.java:296) at de.uni_freiburg.informatik.ultimate.logic.Util.not(Util.java:113) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.SmtUtils.not(SmtUtils.java:558) at de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer.graph.HCStateFactory.implicationStatement(HCStateFactory.java:223) at de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer.graph.HCStateFactory.implies(HCStateFactory.java:232) at de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer.graph.HCStateFactory.constructBaseGraph(HCStateFactory.java:255) at de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer.graph.HCStateFactory.getImplicationGraph(HCStateFactory.java:265) at de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer.graph.HCStateFactory.filterUnconditonally(HCStateFactory.java:287) at de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer.graph.HCStateFactory.filter(HCStateFactory.java:300) at de.uni_freiburg.informatik.ultimate.automata.tree.operations.difference.LazyDifference.computeDifference(LazyDifference.java:193) at de.uni_freiburg.informatik.ultimate.automata.tree.operations.difference.LazyDifference.(LazyDifference.java:87) at de.uni_freiburg.informatik.ultimate.automata.tree.operations.difference.LazyDifference.(LazyDifference.java:100) at de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer.graph.TreeAutomizerCEGAR.refineAbstraction(TreeAutomizerCEGAR.java:356) at de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer.graph.TreeAutomizerCEGAR.iterate(TreeAutomizerCEGAR.java:211) at de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer.TreeAutomizerObserver.process(TreeAutomizerObserver.java:97) at de.uni_freiburg.informatik.ultimate.core.coreplugin.modelwalker.DFSTreeWalker.runObserver(DFSTreeWalker.java:65) at de.uni_freiburg.informatik.ultimate.core.coreplugin.modelwalker.BaseWalker.runObserver(BaseWalker.java:93) at de.uni_freiburg.informatik.ultimate.core.coreplugin.modelwalker.BaseWalker.run(BaseWalker.java:86) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:167) 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:324) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.runToolchainDefault(DefaultToolchainJob.java:221) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.BasicToolchainJob.run(BasicToolchainJob.java:134) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) [2018-06-14 22:52:05,764 INFO L168 Benchmark]: Toolchain (without parser) took 50833.97 ms. Allocated memory was 305.7 MB in the beginning and 1.1 GB in the end (delta: 752.4 MB). Free memory was 262.0 MB in the beginning and 724.1 MB in the end (delta: -462.1 MB). Peak memory consumption was 843.1 MB. Max. memory is 3.6 GB. [2018-06-14 22:52:05,766 INFO L168 Benchmark]: SmtParser took 0.18 ms. Allocated memory is still 305.7 MB. Free memory is still 271.9 MB. There was no memory consumed. Max. memory is 3.6 GB. [2018-06-14 22:52:05,766 INFO L168 Benchmark]: TreeAutomizer took 50826.22 ms. Allocated memory was 305.7 MB in the beginning and 1.1 GB in the end (delta: 752.4 MB). Free memory was 260.0 MB in the beginning and 724.1 MB in the end (delta: -464.1 MB). Peak memory consumption was 841.1 MB. Max. memory is 3.6 GB. [2018-06-14 22:52:05,768 INFO L344 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - StatisticsResult: Toolchain Benchmarks Benchmark results are: * SmtParser took 0.18 ms. Allocated memory is still 305.7 MB. Free memory is still 271.9 MB. There was no memory consumed. Max. memory is 3.6 GB. * TreeAutomizer took 50826.22 ms. Allocated memory was 305.7 MB in the beginning and 1.1 GB in the end (delta: 752.4 MB). Free memory was 260.0 MB in the beginning and 724.1 MB in the end (delta: -464.1 MB). Peak memory consumption was 841.1 MB. Max. memory is 3.6 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer: - ExceptionOrErrorResult: UnsupportedOperationException: Auxiliary term has no sort de.uni_freiburg.informatik.ultimate.plugins.generator.treeautomizer: UnsupportedOperationException: Auxiliary term has no sort: de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.predicates.SmtFreePredicateFactory$AuxiliaryTerm.getSort(SmtFreePredicateFactory.java:96) RESULT: Ultimate could not prove your program: Toolchain returned no result. Written .csv to /storage/ultimate/releaseScripts/default/UAutomizer-linux/../../../releaseScripts/default/UAutomizer-linux/csv/seq.c.smt2_TreeAutomizerStandardSettings.epf_TreeAutomizer.xml/Csv-Benchmark-0-2018-06-14_22-52-05-778.csv Completed graceful shutdown