Simulation is currently the dominant functional verification technique, with constrained random verification the most widely used methodology. While producing random data is a big part of it, letting the solver blindly generate stimulus isn't going to be very efficient. Constraints are needed to guide the stimulus toward interesting scenarios.
This is a companion discussion topic for the original entry at https://verificationgentleman.netlify.app/2020/03/29/composition-for-constraints.html