Recognizer for valid vl-paramvalue structures.
(vl-paramvalue-p x) → *
Function:
(defun vl-paramvalue-p (x) (declare (xargs :guard t)) (let ((__function__ 'vl-paramvalue-p)) (declare (ignorable __function__)) (mbe :logic (or (vl-expr-p x) (vl-datatype-p x)) :exec (b* ((tag (tag x))) (if (or (eq tag :atom) (eq tag :nonatom)) (vl-expr-p x) (vl-datatype-p x))))))
Theorem:
(defthm type-when-vl-paramvalue-p (implies (vl-paramvalue-p x) (consp x)) :rule-classes :compound-recognizer)
Theorem:
(defthm vl-paramvalue-p-forward (implies (vl-paramvalue-p x) (or (vl-expr-p x) (vl-datatype-p x))) :rule-classes :forward-chaining)
Theorem:
(defthm vl-paramvalue-p-when-vl-expr-p (implies (vl-expr-p x) (vl-paramvalue-p x)))
Theorem:
(defthm vl-paramvalue-p-when-vl-datatype-p (implies (vl-datatype-p x) (vl-paramvalue-p x)))