Double Patterning from Design Enablement to Verification