Extended CTG Generalization and Dynamic Adjustment of Generalization Strategies in IC3
Yuheng Su, Qiusong Yang, Yiwei Ci, Ziyu Huang
TL;DR
This paper tackles scalability bottlenecks in IC3 generalization by introducing Extended CTG Generalization (EXCTG) and DynAMic dynamic strategy adjustment. EXCTG recursively blocks the CTG predecessors to achieve finer generalization, while DynAMic adapts the generalization strategy based on blocking difficulty, using thresholds to switch among Standard, CTG, and EXCTG. On HWMCC'19/20 benchmarks, EXCTG solves $8$ more cases than CTG, and DynAMic solves $25$ more cases than CTG and $17$ more than EXCTG, highlighting the tradeoff between generalization quality and overhead. Overall, these methods offer a practical approach to balance generalization effectiveness and computational cost, improving IC3-based hardware verification scalability.
Abstract
The IC3 algorithm is widely used in hardware formal verification, with generalization as a crucial step. Standard generalization expands a cube by dropping literals to include more unreachable states. The CTG approach enhances this by blocking counterexamples to generalization (CTG) when dropping literals fails. In this paper, we extend the CTG method (EXCTG) to put more effort into generalization. If blocking the CTG fails, EXCTG attempts to block its predecessors, aiming for better generalization. While CTG and EXCTG offer better generalization results, they also come with increased computational overhead. Finding an appropriate balance between generalization quality and computational overhead is challenging with a static strategy. We propose DynAMic, a method that dynamically adjusts generalization strategies according to the difficulty of blocking states, thereby improving scalability without compromising efficiency. A comprehensive evaluation demonstrates that EXCTG and DynAMic achieve significant scalability improvements, solving 8 and 25 more cases, respectively, compared to CTG generalization.
