Recognizes all expressions that can validly occur in a (non-blank) port.
Function:
(defun vl-portexpr-p (x) (declare (xargs :guard (vl-expr-p x))) (let ((__function__ 'vl-portexpr-p)) (declare (ignorable __function__)) (b* (((when (vl-atomicportexpr-p x)) t) ((when (vl-fast-atom-p x)) nil) ((vl-nonatom x))) (and (eq x.op :vl-concat) (vl-atomicportexprlist-p x.args)))))
Theorem:
(defthm booleanp-of-vl-portexpr-p (b* ((okp (vl-portexpr-p x))) (booleanp okp)) :rule-classes :type-prescription)
Theorem:
(defthm vl-portexpr-p-of-vl-expr-fix-x (equal (vl-portexpr-p (vl-expr-fix x)) (vl-portexpr-p x)))
Theorem:
(defthm vl-portexpr-p-vl-expr-equiv-congruence-on-x (implies (vl-expr-equiv x x-equiv) (equal (vl-portexpr-p x) (vl-portexpr-p x-equiv))) :rule-classes :congruence)