{"title":"用于软件验证的SMT求解器性能预测","authors":"Andrew Healy, Rosemary Monahan, James F. Power","doi":"10.4204/EPTCS.240.2","DOIUrl":null,"url":null,"abstract":"The approach Why3 takes to interfacing with a wide variety of interactive \nand automatic theorem provers works well: it is designed to overcome \nlimitations on what can be proved by a system which relies on a single \ntightly-integrated solver. In common with other systems, however, the degree \nto which proof obligations (or “goals”) are proved depends as much on \nthe SMT solver as the properties of the goal itself. In this work, we present a \nmethod to use syntactic analysis to characterise goals and predict the most \nappropriate solver via machine-learning techniques. \nCombining solvers in this way - a portfolio-solving approach - maximises \nthe number of goals which can be proved. The driver-based architecture of \nWhy3 presents a unique opportunity to use a portfolio of SMT solvers for \nsoftware verification. The intelligent scheduling of solvers minimises the \ntime it takes to prove these goals by avoiding solvers which return Timeout \nand Unknown responses. We assess the suitability of a number of machinelearning \nalgorithms for this scheduling task. \nThe performance of our tool Where4 is evaluated on a dataset of proof \nobligations. We compare Where4 to a range of SMT solvers and theoretical \nscheduling strategies. We find that Where4 can out-perform individual \nsolvers by proving a greater number of goals in a shorter average time. \nFurthermore, Where4 can integrate into a Why3 user’s normal workflow - \nsimplifying and automating the non-expert use of SMT solvers for software \nverification.","PeriodicalId":339743,"journal":{"name":"F-IDE@FM","volume":"29 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-01-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"13","resultStr":"{\"title\":\"Predicting SMT Solver Performance for Software Verification\",\"authors\":\"Andrew Healy, Rosemary Monahan, James F. Power\",\"doi\":\"10.4204/EPTCS.240.2\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The approach Why3 takes to interfacing with a wide variety of interactive \\nand automatic theorem provers works well: it is designed to overcome \\nlimitations on what can be proved by a system which relies on a single \\ntightly-integrated solver. In common with other systems, however, the degree \\nto which proof obligations (or “goals”) are proved depends as much on \\nthe SMT solver as the properties of the goal itself. In this work, we present a \\nmethod to use syntactic analysis to characterise goals and predict the most \\nappropriate solver via machine-learning techniques. \\nCombining solvers in this way - a portfolio-solving approach - maximises \\nthe number of goals which can be proved. The driver-based architecture of \\nWhy3 presents a unique opportunity to use a portfolio of SMT solvers for \\nsoftware verification. The intelligent scheduling of solvers minimises the \\ntime it takes to prove these goals by avoiding solvers which return Timeout \\nand Unknown responses. We assess the suitability of a number of machinelearning \\nalgorithms for this scheduling task. \\nThe performance of our tool Where4 is evaluated on a dataset of proof \\nobligations. We compare Where4 to a range of SMT solvers and theoretical \\nscheduling strategies. We find that Where4 can out-perform individual \\nsolvers by proving a greater number of goals in a shorter average time. \\nFurthermore, Where4 can integrate into a Why3 user’s normal workflow - \\nsimplifying and automating the non-expert use of SMT solvers for software \\nverification.\",\"PeriodicalId\":339743,\"journal\":{\"name\":\"F-IDE@FM\",\"volume\":\"29 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2017-01-27\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"13\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"F-IDE@FM\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.4204/EPTCS.240.2\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"F-IDE@FM","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4204/EPTCS.240.2","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Predicting SMT Solver Performance for Software Verification
The approach Why3 takes to interfacing with a wide variety of interactive
and automatic theorem provers works well: it is designed to overcome
limitations on what can be proved by a system which relies on a single
tightly-integrated solver. In common with other systems, however, the degree
to which proof obligations (or “goals”) are proved depends as much on
the SMT solver as the properties of the goal itself. In this work, we present a
method to use syntactic analysis to characterise goals and predict the most
appropriate solver via machine-learning techniques.
Combining solvers in this way - a portfolio-solving approach - maximises
the number of goals which can be proved. The driver-based architecture of
Why3 presents a unique opportunity to use a portfolio of SMT solvers for
software verification. The intelligent scheduling of solvers minimises the
time it takes to prove these goals by avoiding solvers which return Timeout
and Unknown responses. We assess the suitability of a number of machinelearning
algorithms for this scheduling task.
The performance of our tool Where4 is evaluated on a dataset of proof
obligations. We compare Where4 to a range of SMT solvers and theoretical
scheduling strategies. We find that Where4 can out-perform individual
solvers by proving a greater number of goals in a shorter average time.
Furthermore, Where4 can integrate into a Why3 user’s normal workflow -
simplifying and automating the non-expert use of SMT solvers for software
verification.