Shape Analysis by Graph Decomposition

Proceedings of the 13th International Conference on Tools and Algorithms for Construction and Analysis of Systems (TACAS) |

Programs commonly maintain multiple linked data structures. Correlations between multiple data structures may often be non-existent or irrelevant to verifying that the program satisfies certain safety properties or invariants. In this paper, we show how this independence between different (singly-linked) data structures can be utilized to perform shape analysis and verification more efficiently. We present a new abstraction based on decomposing graphs into sets of subgraphs, and show that, in practice, this new abstraction leads to very little loss of precision, while yielding substantial improvements to efficiency.