The TAU Programming Languages and Systems Seminar - Learning Support Sets in IC3 and Quip: the Good, the Bad, and the Ugly
Ryan Berryhill, University of Toronto
In recent years, IC3 has enjoyed wide adoption as an unbounded
model checking engine. The core algorithm works by learning lemmas that, given a safe property, eventually converge to an inductive proof. Its
runtime performance is heavily dependent upon “pushing” important lemmas, possibly by discovering additional supporting lemmas. This talk introduces Truss (Testing Reachability Using Support Sets) - an IC3-based algorithm that does just that. Special SAT queries are used to learn relationships between lemmas. When processing a proof obligation, instead of learning new lemmas, the algorithm attempts to promote supporting lemmas to discharge the obligation. Experiments on HWMCC'15 circuits show significant performance gains.