Generating Hardware Assertion Checkers