TY - GEN
T1 - Model checking using SMT and theory of lists
AU - Milicevic, Aleksandar
AU - Kugler, Hillel
PY - 2011
Y1 - 2011
N2 - A main idea underlying bounded model checking is to limit the length of the potential counter-examples, and then prove properties for the bounded version of the problem. In software model checking, that means that only program traces up to a given length are considered. Additionally, the program's input space must be made finite by defining bounds for all input parameters. To ensure the finiteness of the program traces, these techniques typically require that all loops are explicitly unrolled some constant number of times. Here, we show how to avoid explicit loop unrolling by using the SMT Theory of Lists to model feasible, potentially unbounded program traces. We argue that this approach is easier to use, and, more importantly, increases the confidence in verification results over the typical bounded approach. To demonstrate the feasibility of this idea, we implemented a fully automated prototype software model checker and verified several example algorithms. We also applied our technique to a non software model-checking problem from biology - we used it to analyze and synthesize correct executions from scenario-based requirements in the form of Live Sequence Charts.
AB - A main idea underlying bounded model checking is to limit the length of the potential counter-examples, and then prove properties for the bounded version of the problem. In software model checking, that means that only program traces up to a given length are considered. Additionally, the program's input space must be made finite by defining bounds for all input parameters. To ensure the finiteness of the program traces, these techniques typically require that all loops are explicitly unrolled some constant number of times. Here, we show how to avoid explicit loop unrolling by using the SMT Theory of Lists to model feasible, potentially unbounded program traces. We argue that this approach is easier to use, and, more importantly, increases the confidence in verification results over the typical bounded approach. To demonstrate the feasibility of this idea, we implemented a fully automated prototype software model checker and verified several example algorithms. We also applied our technique to a non software model-checking problem from biology - we used it to analyze and synthesize correct executions from scenario-based requirements in the form of Live Sequence Charts.
UR - http://www.scopus.com/inward/record.url?scp=79954997824&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-20398-5_21
DO - 10.1007/978-3-642-20398-5_21
M3 - ???researchoutput.researchoutputtypes.contributiontobookanthology.conference???
AN - SCOPUS:79954997824
SN - 9783642203978
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 282
EP - 297
BT - NASA Formal Methods - Third International Symposium, NFM 2011, Proceedings
T2 - 3rd NASA Formal Methods Symposium, NFM 2011
Y2 - 18 April 2011 through 20 April 2011
ER -