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.
- 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 ScholarCross Ref
- S. Alstrup, D. Harel, P. W. Lauridsen, and M. Thorup. 1999. Dominators in linear time. SIAM Journal on Computing 28, 6, 2117--2132. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- S. Curran, O. Lee, and X. Yu. 2006. Finding four independent trees. SIAM Journal on Computing 35, 5, 507--537. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- J. Edmonds. 1970. Submodular functions, matroids, and certain polyhedra. Combinatorial Structures and their Applications 69--87.Google Scholar
- J. Edmonds. 1972. Edge-disjoint branchings. Combinatorial Algorithms 91--96.Google Scholar
- 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 ScholarDigital Library
- H. N. Gabow. 2013. A poset approach to dominator computation. Unpublished manuscript 2010, revised unpublished manuscript.Google Scholar
- L. Georgiadis. 2008. Computing frequency dominators and related problems. In Proceedings of the 19th International Symposium on Algorithms and Computation. 704--715. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- L. Georgiadis and R. E. Tarjan. 2004. Finding dominators revisited. In Proceedings of the 15th ACM-SIAM Symposium on Discrete Algorithms. 862--871. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- M. S. Hecht and J. D. Ullman. 1974. Characterizations of reducible flow graphs. Journal of the ACM 21, 3 367--375. Google ScholarDigital Library
- A. Huck. 1994. Independent trees in graphs. Graphs and Combinatorics 10, 29--45. Google ScholarDigital Library
- A. Huck. 1995. Disproof of a conjecture about independent branchings in k-connected directed graphs. Journal of Graph Theory 20, 2, 235--239. Google ScholarDigital Library
- A. Huck. 1999a. Independent branchings in acyclic digraphs. Discrete Math 199 (1999), 245--249. Google ScholarDigital Library
- A. Huck. 1999b. Independent trees and branchings in planar multigraphs. Graphs and Combinatorics 15, 211--220.Google ScholarCross Ref
- A. Itai and M. Rodeh. 1988. The multi-tree approach to reliability in distributed networks. Information and Computation 79, 1, 43--59. Google ScholarDigital Library
- A. Itai and A. Zehavi. 1989. Three tree-paths. Journal of Graph Theory 13, 175--188.Google ScholarCross Ref
- 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 ScholarDigital Library
- R. Jaberi. 2014a. Computing the 2-blocks of directed graphs. CoRR abs/1407.6178 (2014).Google Scholar
- R. Jaberi. 2014b. On computing the 2-vertex-connected components of directed graphs. CoRR abs/1401.6000.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- R. M. McConnell, K. Mehlhorn, S. Näher, and P. Schweitzer. 2011. Certifying algorithms. Computer Science Review 5, 2, 119--161. Google ScholarDigital Library
- K. Menger. 1927. Zur allgemeinen kurventheorie. Fundamenta Mathematicae 10, 96--115.Google ScholarCross Ref
- J. Plehn. 1991. Über die Existenz und das Finden von Subgraphen. Ph.D. Dissertation. University of Bonn, Bonn, Germany.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- B. Steensgaard. 1993. Sequentializing program dependence graphs for irreducible programs. Technical Report MSR-TR-93-14. Microsoft Research, Redmond, WA.Google Scholar
- R. E. Tarjan. 1972. Depth-first search and linear graph algorithms. SIAM Journal on Computing 1, 2, 146--60.Google ScholarDigital Library
- R. E. Tarjan. 1974a. Finding dominators in directed graphs. SIAM Journal on Computing 3, 1, 62--89.Google ScholarCross Ref
- R. E. Tarjan. 1974b. Testing flow graph reducibility. Journal of Computer and System Sciences 9, 3, 355--365. Google ScholarDigital Library
- R. E. Tarjan. 1975. Efficiency of a good but not linear set union algorithm. Journal of the ACM 22, 2, 215--225. Google ScholarDigital Library
- R. E. Tarjan. 1976. Edge-disjoint spanning trees and depth-first search. Acta Informatica 6, 2, 171--85. Google ScholarDigital Library
- R. E. Tarjan. 1981. Fast algorithms for solving path problems. Journal of the ACM 28, 3, 594--614. Google ScholarDigital Library
- 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 ScholarDigital Library
- R. W. Whitty. 1987. Vertex-disjoint paths and edge-disjoint branchings in directed graphs. Journal of Graph Theory 11, 349--358.Google ScholarCross Ref
- 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 ScholarDigital Library
Index Terms
- Dominator Tree Certification and Divergent Spanning Trees
Recommendations
2-Edge Connectivity in Directed Graphs
Edge and vertex connectivity are fundamental concepts in graph theory. While they have been thoroughly studied in the case of undirected graphs, surprisingly, not much has been investigated for directed graphs. In this article, we study 2-edge ...
A new algorithm for the minimum spanning tree verification problem
This paper proposes a new algorithm for the minimum spanning tree verification (MSTV) problem in undirected graphs. The MSTV problem is distinct from the minimum spanning tree construction problem. The above problems have been studied extensively, and ...
Comments