|M.Sc Student||Abdelkader Karam|
|Subject||Automated Circular Assume-Guarantee Reasoning|
|Department||Department of Computer Science||Supervisors||Ms. Sharon Shoham-Buchbind|
|Professor Orna Grumberg|
|Full Thesis text|
checking is a successful approach for verifying hardware and software systems.
Despite its success, the technique suffers from the state explosion problem
which arises due to the huge state space of real-life systems. The size of the
model induces high memory and time requirements that may make model checking
not applicable to large systems.
One solution to face the state explosion problem is the use of compositional verification, that aims to decompose the verification of a large system into the more manageable verification of its components. To account for dependencies between the components, assume-guarantee reasoning defines rules that break-up the global verification of a system into local verification of individual components, using assumptions about the rest of the program.
In recent years, compositional techniques have gained significant successes following a breakthrough in the ability to automate assume-guarantee reasoning. However, automation is still restricted to simple acyclic assume-guarantee rules.
In this work, we focus on automating circular assume-guarantee reasoning in which the verification of individual components mutually depends on each other. We use a sound and complete circular assume-guarantee rule and we describe how to automatically build the assumptions needed for using the rule. Our algorithm accumulates joint constraints on the assumptions based on (spurious) counterexamples obtained from checking the premises of the rule, and uses
a SAT solver to synthesize minimal assumptions that satisfy these constraints. To the best of our knowledge, our work is the first to fully automate circular assume-guarantee reasoning.
We implemented our approach and compared it with an established learning-based method that uses an acyclic rule. In all cases, the assumptions generated for the circular rule were significantly smaller, leading to smaller verification problems. Further, on larger examples, we obtained a significant speedup as well.