Affiliation:
1. University of Virginia, USA
Abstract
The field of software verification has produced a wide array of algorithmic techniques that can prove a variety of properties of a given program. It has been demonstrated that the performance of these techniques can vary up to 4 orders of magnitude on the same verification problem. Even for verification experts, it is difficult to decide which tool will perform best on a given problem. For general users, deciding the best tool for their verification problem is effectively impossible.
In this work, we present
Graves
, a selection strategy based on graph neural networks (GNNs).
Graves
generates a graph representation of a program from which a GNN predicts a score for a verifier that indicates its performance on the program.
We evaluate
Graves
on a set of 10 verification tools and over 8000 verification problems and find that it improves the state-of-the-art in verification algorithm selection by 12%, or 8 percentage points. Further, it is able to verify 9% more problems than any existing verifier on our test set. Through a qualitative study on model interpretability, we find strong evidence that the
Graves
’ model learns to base its predictions on factors that relate to the unique features of the algorithmic techniques.
Publisher
Association for Computing Machinery (ACM)
Reference107 articles.
1. 2019. Clang: a C language family frontend for LLVM. https://clang@inproceedingsbeyer2022coveriteam title=CoVeriTeam: On-demand composition of cooperative verification systems author=Beyer Dirk and Kanav Sudeep booktitle=International Conference on Tools and Algorithms for the Construction and Analysis of Systems pages=561--579 year=2022 organization=Springer ias and Lenssen Jan E. 2019. Clang: a C language family frontend for LLVM. https://clang@inproceedingsbeyer2022coveriteam title=CoVeriTeam: On-demand composition of cooperative verification systems author=Beyer Dirk and Kanav Sudeep booktitle=International Conference on Tools and Algorithms for the Construction and Analysis of Systems pages=561--579 year=2022 organization=Springer ias and Lenssen Jan E.
2. A Aho , M Lam , R Sethi , J Ullman , Keith Cooper , Linda Torczon , and S Muchnick . 2007 . Compilers: Principles, Techniques and Tools. (2007). A Aho, M Lam, R Sethi, J Ullman, Keith Cooper, Linda Torczon, and S Muchnick. 2007. Compilers: Principles, Techniques and Tools. (2007).
3. Understanding of a convolutional neural network
4. A Survey of Machine Learning for Big Code and Naturalness
5. Miltiadis Allamanis Marc Brockschmidt and Mahmoud Khademi. 2017. Learning to represent programs with graphs. arXiv preprint arXiv:1711.00740(2017). Miltiadis Allamanis Marc Brockschmidt and Mahmoud Khademi. 2017. Learning to represent programs with graphs. arXiv preprint arXiv:1711.00740(2017).