Leveraging Datapath Propagation in IC3 for Hardware Model Checking

Hongyu Fan and Fei He

Abstract

IC3 is a famous bit-level framework for safety verification. By incorporating datapath abstraction, a notable enhancement in the efficiency of hardware verification can be achieved. However, datapath abstraction entails a coarse level of abstraction where all datapath operations are approximated as uninterpreted functions (UFs). This level of abstraction, albeit useful, can lead to an increased computational burden during the verification process as it necessitates extensive exploration of redundant abstract state space. In this article, we introduce a novel approach called datapath propagation. Our method involves leveraging concrete constant values to iteratively compute the outcomes of relevant datapath operations and their associated UFs. Meanwhile, we generate potentially useful datapath propagation lemmas in abstract state space and tighten the datapath abstraction. With this technique, the abstract state space can be reduced, and the verification efficiency is significantly improved. We implemented the proposed approach and conducted extensive experiments. The results show promising improvements of our approach compared to the state-of-the-art verifiers.

Datapath propagation

Artifact

The artifact contains all scripts, log files, benchmarks, and executable files in our evaluation. It is based on avr tool. Use --wd additionally to run datapath propagation approach in verifiation process.


Run artifact in small btor2 benchmarks

Finish in a few minutes


Run artifact in full benchmarks

May take dozens of hours

This section shows how to set up the artifact in all the benchmarks.


Directory Structure of the Artifact

The artifact consists of the following directories: