15. A computer program product, comprising: a non-transitory computer-readable storage medium; and program code on said non-transitory computer-readable storage medium that when executed within a data processing device, said program code provides the functionality of: (a) receiving a first netlist and a second netlist of an original model, wherein each netlist of the first netlist and the second netlists includes at least one representation of one or more hardware registers coupling a plurality of gates; (b) determining, from netlists of the original model, logic to be abstracted; (c) determining a condition for functional consistency; (d) creating an abstract model by replacing the logic with abstracted logic using one or more uninterpreted functions; (e) performing one or more functions on the abstract model; (f) determining whether or not a counterexample is obtained from said performing the one or more functions on the abstract model; (g) if a counter example is not obtained, determining whether or not a proof is complete; (h) if the proof is complete, reporting that the proof is complete; (i) if the proof is not complete, repeating the functionality from step (e) using another function on the abstract model, wherein said another function is different from any one or more functions previously used in performing step (e); (j) if a counter example is obtained, determining whether or not the counter example can be transferred onto the original model; (k) if the counter example can be transferred onto the original model, reporting that the counter example can be transferred onto the original model and reporting the counter example; and (l) if the counter example can not be transferred onto the original model: refining the abstraction; and repeating the functionality from step (e) with the abstract model including the refined abstraction.
15. A computer program product, comprising: a non-transitory computer-readable storage medium; and program code on said non-transitory computer-readable storage medium that when executed within a data processing device, said program code provides the functionality of: (a) receiving a first netlist and a second netlist of an original model, wherein each netlist of the first netlist and the second netlists includes at least one representation of one or more hardware registers coupling a plurality of gates; (b) determining, from netlists of the original model, logic to be abstracted; (c) determining a condition for functional consistency; (d) creating an abstract model by replacing the logic with abstracted logic using one or more uninterpreted functions; (e) performing one or more functions on the abstract model; (f) determining whether or not a counterexample is obtained from said performing the one or more functions on the abstract model; (g) if a counter example is not obtained, determining whether or not a proof is complete; (h) if the proof is complete, reporting that the proof is complete; (i) if the proof is not complete, repeating the functionality from step (e) using another function on the abstract model, wherein said another function is different from any one or more functions previously used in performing step (e); (j) if a counter example is obtained, determining whether or not the counter example can be transferred onto the original model; (k) if the counter example can be transferred onto the original model, reporting that the counter example can be transferred onto the original model and reporting the counter example; and (l) if the counter example can not be transferred onto the original model: refining the abstraction; and repeating the functionality from step (e) with the abstract model including the refined abstraction. 19. The computer program product of claim 15 , wherein said refining the abstraction includes: replacing a portion of logic of the first netlist with first abstract logic; replacing a portion of logic of the second netlist with second abstract logic; and wherein at least one of the first abstract logic and the second abstract logic includes a multiplexor-based uninterpreted function.