Classification of expressions (or datatypes) as signed or unsigned integral, shortreal, real, or of some other kind.
These classifications are used in the description of expression types (signedness) found in SystemVerilog-2012 Sections 11.7-11.8.
It isn't entirely clear to me whether
We use ``other'' class to describe things that are valid but of some non-arithmetic type, for instance: unpacked structures, void, chandles, etc.
We use ``error'' class to describe the case where we really did have some kind of error determining the type.
This is an ordinary defenum.
Function:
(defun vl-arithclass-p (x) (declare (xargs :guard t)) (or (eq x ':vl-signed-int-class) (eq x ':vl-unsigned-int-class) (eq x ':vl-shortreal-class) (eq x ':vl-real-class) (eq x ':vl-other-class) (eq x ':vl-error-class)))
Theorem: type-when-vl-arithclass-p
(defthm type-when-vl-arithclass-p (implies (vl-arithclass-p x) (if (symbolp x) (if (not (equal x 't)) (not (equal x 'nil)) 'nil) 'nil)) :rule-classes :compound-recognizer)