/ESBMC-ML

We describe and evaluate the application of machine learning technology to help ESBMC achieve better results in SV-COMP. ESBMC is an SMT-based verification tool for C programs, which allows the user to choose different SMT solvers, encoding methods, and verification approaches by selecting different parameters. However, different parameter combinations have different effects when verifying C programs. Therefore, we convert the C source code into AST and extract feature vectors from AST as samples. Similarly, we encode the verification result of ESBMC into the sample label. We use four machine learning models, and the data sets come from three sub-categories of SV-COMP. After a comprehensive evaluation, we have found that the decision tree model is more suitable because its training time is short, and various evaluation benchmarks are better than other models. Therefore, in this competition, we use the trained model as the default parameter recommender of ESBMC and modify the model parameters based on the feedback of the verification results to obtain better effects.

No issues in this repository yet.