The modeling of design environments using constraints has gained widespread industrial application, and most verification
languages include constructs for specifying constraints. It is therefore critical for verification tools to intelligently
leverage constraints to enhance the overall verification process. However, little prior research has addressed the applicability
of transformation algorithms to designs with constraints. Even when addressed, prior work lacks optimality and in cases violates
constraint semantics. In this paper, we introduce the theory and practice of transformation-based verification in the presence of constraints. We discuss how various existing transformations, such as redundancy removal and retiming,
may be optimally applied while preserving constraint semantics, including dead-end states. We additionally introduce novel constraint elimination, introduction, and simplification techniques that preserve property
checking. We have implemented all of the techniques proposed in this paper, and have found their synergistic application to
be critical to the automated solution of many complex verification problems with constraints.