A HOL Library for Hardware Verification using Theorem Proving