Is combining formal and dynamic coverage a good idea?

Is combining coverage from dynamic simulation and formal a good practice? The type of coverage I am looking to combine is a higher level block verified using dynamic verification using the coverage results from formal runs that were run on lower level blocks. This doesn’t just apply to assertion coverage but toggle and other code coverages too. The formal blocks have 100% exploration and no assertions are failing.

To me I can only see the formal coverage results being as good as the assumptions used in the formal testbench because there may be some coverage that gets produced from under constraining.

In reply to willsh_:

It is a great idea. Even better is having a test plan that captures all your design requirements, and choosing the most efficient technology for collecting coverage.