Specifications to enable formal verification for hardware and protocols