skip to main content
research-article

Dominator Tree Certification and Divergent Spanning Trees

Published:16 November 2015Publication History
Skip Abstract Section

Abstract

How does one verify that the output of a complicated program is correct? One can formally prove that the program is correct, but this may be beyond the power of existing methods. Alternatively, one can check that the output produced for a particular input satisfies the desired input--output relation by running a checker on the input--output pair. Then one only needs to prove the correctness of the checker. For some problems, however, even such a checker may be too complicated to formally verify. There is a third alternative: augment the original program to produce not only an output but also a correctness certificate, with the property that a very simple program (whose correctness is easy to prove) can use the certificate to verify that the input--output pair satisfies the desired input--output relation.

We consider the following important instance of this general question: How does one verify that the dominator tree of a flow graph is correct? Existing fast algorithms for finding dominators are complicated, and even verifying the correctness of a dominator tree in the absence of additional information seems complicated. We define a correctness certificate for a dominator tree, show how to use it to easily verify the correctness of the tree, and show how to augment fast dominator-finding algorithms so that they produce a correctness certificate. We also relate the dominator certificate problem to the problem of finding divergent spanning trees in a flow graph, and we develop algorithms to find such trees. All our algorithms run in linear time. Previous algorithms apply just to the special case of only trivial dominators, and they take at least quadratic time.

References

  1. S. Allesina and A. Bodini. 2004. Who dominates whom in the ecosystem? Energy flow bottlenecks and cascading extinctions. Journal of Theoretical Biology 230, 3, 351--358.Google ScholarGoogle ScholarCross RefCross Ref
  2. S. Alstrup, D. Harel, P. W. Lauridsen, and M. Thorup. 1999. Dominators in linear time. SIAM Journal on Computing 28, 6, 2117--2132. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. E. Amyeen, W. K. Fuchs, I. Pomeranz, and V. Boppana. 2001. Fault equivalence identification using redundancy information and static and dynamic extraction. In Proceedings of the 19th IEEE VLSI Test Symposium. 124--130. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. F. S. Annexstein, K. A. Berman, T. Hsu, and R. P. Swaminathan. 2000. A multi-tree routing scheme using acyclic orientations. Theoretical Computer Science 240, 2, 487--494. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. A. Bender, R. Cole, E. D. Demaine, M. Farach-Colton, and J. Zito. 2002. Two simplified algorithms for maintaining order in a list. In Proceedings of the 10th Annual European Symposium on Algorithms (ESA’02), Lecture Notes in Computer Science 2461, 152--164. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Blum and S. Kannan. 1995. Designing programs that check their work. Journal of the ACM 42, 1, 269--291. DOI:http://dx.doi.org/10.1145/200836.200880 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. L. Buchsbaum, L. Georgiadis, H. Kaplan, A. Rogers, R. E. Tarjan, and J. R. Westbrook. 2008. Linear-time algorithms for dominators and other path-evaluation problems. SIAM Journal on Computing 38, 4, 1533--1573. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. A. L. Buchsbaum, H. Kaplan, A. Rogers, and J. R. Westbrook. 1998. A new, simpler linear-time dominators algorithm. ACM Transactions on Programming Languages and Systems 20, 6, 1265--96. Corrigendum in 27(3):383-7, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Cheriyan and S. N. Maheshwari. 1988. Finding nonseparating induced cycles and independent spanning trees in 3-connected graphs. Journal of Algorithms 9, 507--537. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. Cheriyan and J. H. Reif. 1994. Directed s-t numberings, rubber bands, and testing digraph k-vertex connectivity. Combinatorica 14, 4, 435--451.Google ScholarGoogle ScholarCross RefCross Ref
  11. K. D. Cooper, T. J. Harvey, and K. Kennedy. 2006. A Simple, Fast Dominance Algorithm. Technical Report TR-06-38870. Rice Computer Science, Houston, TX.Google ScholarGoogle Scholar
  12. S. Curran, O. Lee, and X. Yu. 2006. Finding four independent trees. SIAM Journal on Computing 35, 5, 507--537. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. 1991. Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems 13, 4, 451--490. DOI:http://dx.doi.org/10.1145/115372.115320 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. P. Dietz and D. Sleator. 1987. Two algorithms for maintaining order in a list. In Proceedings of the 19th ACM Symposium on Theory of Computing. 365--372. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Edmonds. 1970. Submodular functions, matroids, and certain polyhedra. Combinatorial Structures and their Applications 69--87.Google ScholarGoogle Scholar
  16. J. Edmonds. 1972. Edge-disjoint branchings. Combinatorial Algorithms 91--96.Google ScholarGoogle Scholar
  17. W. Fraczak, L. Georgiadis, A. Miller, and R. E. Tarjan. 2013. Finding dominators via disjoint set union. Journal of Discrete Algorithms 23, 2--20. DOI:http://dx.doi.org/10.1016/j.jda.2013.10.003 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. H. N. Gabow. 2013. A poset approach to dominator computation. Unpublished manuscript 2010, revised unpublished manuscript.Google ScholarGoogle Scholar
  19. L. Georgiadis. 2008. Computing frequency dominators and related problems. In Proceedings of the 19th International Symposium on Algorithms and Computation. 704--715. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. L. Georgiadis. 2010. Testing 2-vertex connectivity and computing pairs of vertex-disjoint s-t paths in digraphs. In Proceedings of the 37th International College on Automata, Languages, and Programming. 738--749. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. L. Georgiadis. 2011. Approximating the smallest 2-vertex connected spanning subgraph of a directed graph. In Proceedings of the 19th European Symposium on Algorithms. 13--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. L. Georgiadis, G. F. Italiano, L. Laura, and N. Parotsidis. 2015. 2-edge connectivity in directed graphs. In Proceedings of the 26th ACM-SIAM Symposium on Discrete Algorithms. 1988--2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. L. Georgiadis, G. F. Italiano, L. Laura, and F. Santaroni. 2012. An experimental study of dynamic dominators. In Proceedings of the 20th European Symposium on Algorithms. 491--502. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. L. Georgiadis, L. Laura, N. Parotsidis, and R. E. Tarjan. 2013. Dominator certification and independent spanning trees: An experimental study. In Proceedings of the 12th International Symposium on Experimental Algorithms. 284--295.Google ScholarGoogle Scholar
  25. L. Georgiadis, L. Laura, N. Parotsidis, and R. E. Tarjan. 2014. Loop nesting forests, dominators, and applications. In Proceedings of the 13th International Symposium on Experimental Algorithms. 174--186. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. L. Georgiadis and R. E. Tarjan. 2004. Finding dominators revisited. In Proceedings of the 15th ACM-SIAM Symposium on Discrete Algorithms. 862--871. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. L. Georgiadis and R. E. Tarjan. 2005. Dominator tree verification and vertex-disjoint paths. In Proceedings of the 16th ACM-SIAM Symposium on Discrete Algorithms. 433--442. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. L. Georgiadis and R. E. Tarjan. 2012. Dominators, directed bipolar orders, and independent spanning trees. In Proceedings of the 39th International College on Automata, Languages, and Programming. 375--386. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. L. Georgiadis, R. E. Tarjan, and R. F. Werneck. 2006. Finding dominators in practice. Journal of Graph Algorithms and Applications 10, 1, 69--94.Google ScholarGoogle ScholarCross RefCross Ref
  30. M. Gomez-Rodriguez and B. Schölkopf. 2012. Influence maximization in continuous time diffusion networks. In 29th International Conference on Machine Learning (ICML). 313--320.Google ScholarGoogle Scholar
  31. P. Havlak. 1997. Nesting of reducible and irreducible loops. ACM Transactions on Programming Languages and Systems 19, 4, 557--567. DOI:http://dx.doi.org/10.1145/262004.262005 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. M. S. Hecht and J. D. Ullman. 1974. Characterizations of reducible flow graphs. Journal of the ACM 21, 3 367--375. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. A. Huck. 1994. Independent trees in graphs. Graphs and Combinatorics 10, 29--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. A. Huck. 1995. Disproof of a conjecture about independent branchings in k-connected directed graphs. Journal of Graph Theory 20, 2, 235--239. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. A. Huck. 1999a. Independent branchings in acyclic digraphs. Discrete Math 199 (1999), 245--249. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. A. Huck. 1999b. Independent trees and branchings in planar multigraphs. Graphs and Combinatorics 15, 211--220.Google ScholarGoogle ScholarCross RefCross Ref
  37. A. Itai and M. Rodeh. 1988. The multi-tree approach to reliability in distributed networks. Information and Computation 79, 1, 43--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. A. Itai and A. Zehavi. 1989. Three tree-paths. Journal of Graph Theory 13, 175--188.Google ScholarGoogle ScholarCross RefCross Ref
  39. G. F. Italiano, L. Laura, and F. Santaroni. 2012. Finding strong bridges and strong articulation points in linear time. Theoretical Computer Science 447, 0, 74--84. DOI:http://dx.doi.org/10.1016/j.tcs.2011.11.011 Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. R. Jaberi. 2014a. Computing the 2-blocks of directed graphs. CoRR abs/1407.6178 (2014).Google ScholarGoogle Scholar
  41. R. Jaberi. 2014b. On computing the 2-vertex-connected components of directed graphs. CoRR abs/1401.6000.Google ScholarGoogle Scholar
  42. D. E. Knuth. 1997. The Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd ed.). Addison Wesley Longman Publishing Co., Inc., Redwood City, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. D. E. Knuth and J. L. Szwarcfiter. 1974. A structured program to generate all topological sorting arrangements. Information Processing Letters 2, 6, 153--157.Google ScholarGoogle ScholarCross RefCross Ref
  44. T. Lengauer and R. E. Tarjan. 1979. A fast algorithm for finding dominators in a flowgraph. ACM Transactions on Programming Languages and Systems 1, 1, 121--141. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. W. D. Maurer. 2007. Generalized structured programs and loop trees. Science of Computer Programming 67, 2-3, 223--246. DOI:http://dx.doi.org/10.1016/j.scico.2007.02.002 Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. E. K. Maxwell, G. Back, and N. Ramakrishnan. 2010. Diagnosing memory leaks using graph mining on heap dumps. In Proceedings of the 16th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD’10). 115--124. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. R. M. McConnell, K. Mehlhorn, S. Näher, and P. Schweitzer. 2011. Certifying algorithms. Computer Science Review 5, 2, 119--161. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. K. Menger. 1927. Zur allgemeinen kurventheorie. Fundamenta Mathematicae 10, 96--115.Google ScholarGoogle ScholarCross RefCross Ref
  49. J. Plehn. 1991. Über die Existenz und das Finden von Subgraphen. Ph.D. Dissertation. University of Bonn, Bonn, Germany.Google ScholarGoogle Scholar
  50. L. Quesada, P. Van Roy, Y. Deville, and R. Collet. 2006. Using dominators for solving constrained path problems. In Proceedings of the 8th International Conference on Practical Aspects of Declarative Languages. 73--87. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. G. Ramalingam. 1999. Identifying loops in almost linear time. ACM Transactions on Programming Languages and Systems 21, 2, 175--188. DOI:http://dx.doi.org/10.1145/316686.316687 Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. G. Ramalingam. 2002. On loops, dominators, and dominance frontiers. ACM Transactions on Programming Languages and Systems 24, 5, 455--490. DOI:http://dx.doi.org/10.1145/570886.570887 Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. G. Ramalingam and T. Reps. 1994. An incremental algorithm for maintaining the dominator tree of a reducible flowgraph. In Proceedings of the 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 287--296. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. V. C. Sreedhar, G. R. Gao, and Y. Lee. 1997. Incremental computation of dominator trees. ACM Transactions on Programming Languages and Systems 19, 2, 239--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. V. C. Sreedhar, G. R. Gao, and Y.-F. Lee. 1996. Identifying loops using DJ graphs. ACM Transactions on Programming Languages and Systems 18, 6, 649--658. DOI:http://dx.doi.org/10.1145/236114.236115 Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. B. Steensgaard. 1993. Sequentializing program dependence graphs for irreducible programs. Technical Report MSR-TR-93-14. Microsoft Research, Redmond, WA.Google ScholarGoogle Scholar
  57. R. E. Tarjan. 1972. Depth-first search and linear graph algorithms. SIAM Journal on Computing 1, 2, 146--60.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. R. E. Tarjan. 1974a. Finding dominators in directed graphs. SIAM Journal on Computing 3, 1, 62--89.Google ScholarGoogle ScholarCross RefCross Ref
  59. R. E. Tarjan. 1974b. Testing flow graph reducibility. Journal of Computer and System Sciences 9, 3, 355--365. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. R. E. Tarjan. 1975. Efficiency of a good but not linear set union algorithm. Journal of the ACM 22, 2, 215--225. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. R. E. Tarjan. 1976. Edge-disjoint spanning trees and depth-first search. Acta Informatica 6, 2, 171--85. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. R. E. Tarjan. 1981. Fast algorithms for solving path problems. Journal of the ACM 28, 3, 594--614. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. T. Tholey. 2012. Linear time algorithms for two disjoint paths problems on directed acyclic graphs. Theoretical Computer Science 465, 35--48. DOI:http://dx.doi.org/10.1016/j.tcs.2012.09.025 Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. R. W. Whitty. 1987. Vertex-disjoint paths and edge-disjoint branchings in directed graphs. Journal of Graph Theory 11, 349--358.Google ScholarGoogle ScholarCross RefCross Ref
  65. J. Zhao and S. Zdancewic. 2012. Mechanized verification of computing dominators for formalizing compilers. In Proceedings of the 2nd International Conference on Certified Programs and Proofs. Springer, 27--42. DOI:http://dx.doi.org/10.1007/978-3-642-35308-6_6 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dominator Tree Certification and Divergent Spanning Trees

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Algorithms
            ACM Transactions on Algorithms  Volume 12, Issue 1
            Special Issue on SODA'12 and Regular Papers
            February 2016
            243 pages
            ISSN:1549-6325
            EISSN:1549-6333
            DOI:10.1145/2846103
            Issue’s Table of Contents

            Copyright © 2015 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 16 November 2015
            • Accepted: 1 April 2015
            • Revised: 1 March 2015
            • Received: 1 March 2013
            Published in talg Volume 12, Issue 1

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader