{"title":"基于sat的模型检查:插值,IC3和超越","authors":"O. Grumberg, Sharon Shoham, Y. Vizel","doi":"10.3233/978-1-61499-385-8-17","DOIUrl":null,"url":null,"abstract":"SAT-based model checking is currently one of the most successful approaches to checking very large systems. In its early days, SAT-based (bounded) model checking was mainly used for bug hunting. The introduction of interpolation and IC3\\PDR enable efficient complete algorithms that can provide full verification as well. In this paper, we survey several approaches to enhancing SAT-based model checking. They are all based on iteratively computing an overapproximation of the set of reachable system states. They use different mechanisms to achieve scalability and faster convergence. The first one uses interpolation sequence rather than interpolation in order to obtain a more precise over-approximation of the set of reachable states. The other approach integrates lazy abstraction with IC3 in order to achieve scalability. Lazy abstraction, originally developed for software model checking, is a specific type of abstraction that allows hiding different model details at different steps of the verification. We find the IC3 algorithm most suitable for lazy abstraction since its state traversal is performed by means of local reachability checks, each involving only two consecutive sets. A different abstraction can therefore be applied in each of the local checks. The survey focuses on hardware model checking, but the presented ideas can be extended to other systems as well.","PeriodicalId":319733,"journal":{"name":"Software Systems Safety","volume":"3 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"SAT-based Model Checking: Interpolation, IC3, and Beyond\",\"authors\":\"O. Grumberg, Sharon Shoham, Y. Vizel\",\"doi\":\"10.3233/978-1-61499-385-8-17\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"SAT-based model checking is currently one of the most successful approaches to checking very large systems. In its early days, SAT-based (bounded) model checking was mainly used for bug hunting. The introduction of interpolation and IC3\\\\PDR enable efficient complete algorithms that can provide full verification as well. In this paper, we survey several approaches to enhancing SAT-based model checking. They are all based on iteratively computing an overapproximation of the set of reachable system states. They use different mechanisms to achieve scalability and faster convergence. The first one uses interpolation sequence rather than interpolation in order to obtain a more precise over-approximation of the set of reachable states. The other approach integrates lazy abstraction with IC3 in order to achieve scalability. Lazy abstraction, originally developed for software model checking, is a specific type of abstraction that allows hiding different model details at different steps of the verification. We find the IC3 algorithm most suitable for lazy abstraction since its state traversal is performed by means of local reachability checks, each involving only two consecutive sets. A different abstraction can therefore be applied in each of the local checks. The survey focuses on hardware model checking, but the presented ideas can be extended to other systems as well.\",\"PeriodicalId\":319733,\"journal\":{\"name\":\"Software Systems Safety\",\"volume\":\"3 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2013-03-16\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Software Systems Safety\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.3233/978-1-61499-385-8-17\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Software Systems Safety","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.3233/978-1-61499-385-8-17","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
SAT-based Model Checking: Interpolation, IC3, and Beyond
SAT-based model checking is currently one of the most successful approaches to checking very large systems. In its early days, SAT-based (bounded) model checking was mainly used for bug hunting. The introduction of interpolation and IC3\PDR enable efficient complete algorithms that can provide full verification as well. In this paper, we survey several approaches to enhancing SAT-based model checking. They are all based on iteratively computing an overapproximation of the set of reachable system states. They use different mechanisms to achieve scalability and faster convergence. The first one uses interpolation sequence rather than interpolation in order to obtain a more precise over-approximation of the set of reachable states. The other approach integrates lazy abstraction with IC3 in order to achieve scalability. Lazy abstraction, originally developed for software model checking, is a specific type of abstraction that allows hiding different model details at different steps of the verification. We find the IC3 algorithm most suitable for lazy abstraction since its state traversal is performed by means of local reachability checks, each involving only two consecutive sets. A different abstraction can therefore be applied in each of the local checks. The survey focuses on hardware model checking, but the presented ideas can be extended to other systems as well.