Evolving Graph-Structures and Their Implicit Computational Complexity
Dynamic data-structures are ubiquitous in programming, and they use extensively underlying directed multi-graph structures, such as labeled trees, DAGs, and objects. This paper adapts well-established static analysis methods, namely data ramification and language-based information flow security, to programs over such graph structures. Our programs support the creation, deletion, and updates of both vertices and edges, and are related to pointer machines. The main result states that a function over graph-structures is computable in polynomial time if it is computed by a terminating program whose graph manipulation is ramified, provided all edges that are both created and read in a loop have the same label.
KeywordsPolynomial Time Graph Structure Structural Induction Abstract State Machine Imperative Program
Unable to display preview. Download preview PDF.
- 4.Hofmann, M., Schöpp, U.: Pure pointer programs with iteration. ACM Trans. Comput. Log. 11(4) (2010)Google Scholar
- 6.Kolmogorov, A.N., Uspensky, V.: On the definition of an algorithm. Uspekhi Mat. Naut. 13(4) (1958)Google Scholar
- 7.Leivant, D.: Predicative recurrence and computational complexity I: Word recurrence and poly-time. In: Feasible Mathematics II. Birkhauser-Boston (1994)Google Scholar
- 8.Marion, J.-Y.: A type system for complexity flow analysis. In: LICS (2011)Google Scholar
- 9.Sabelfeld, A., Sands, D.: Declassification: dimensions and principles. J. Comput. Secur. 17, 517–548 (2009)Google Scholar
- 11.Tarjan, R.E.: Reference machines require non-linear time to maintain disjoint sets. In: STOC 1977, pp. 18–29. ACM (1977)Google Scholar
- 12.Volpano, D., Irvine, C., Smith, G.: A sound type system for secure flow analysis. Journal of Computer Security 4(2/3), 167–188 (1996)Google Scholar