System and software for verifying that a model of an integrated circuit
satisfies its specification includes performing a sequence of at least
one sequential transformation on a sequential model of the integrated
circuit to produce a simplified sequential model of the integrated
circuit. Thereafter, the simplified sequential model is unfolded for N
time steps to create a combinational representation of the design. A
sequence of at least one combinational transformation algorithms is then
performed on the unfolded design to produce a simplified unfolded model.
Finally, an exhaustive search algorithm is performed on the simplified
unfolded model. The sequence of sequential transformations may include a
sequential redundancy removal (SRR) algorithm and/or another sequential
algorithm such as a retiming transformation. The combinational
transformations may include a combinational redundancy removal algorithm
or a logic re-encoding algorithm. The exhaustive search includes
performing an exhaustive satisfiability search by propagating a binary
decision diagram (BDD) through the netlist.