Recognize non-concatenations that can occur in port expressions.
Function:
(defun vl-atomicportexpr-p (x) (declare (xargs :guard (vl-expr-p x))) (let ((__function__ 'vl-atomicportexpr-p)) (declare (ignorable __function__)) (vl-expr-case x :vl-index (vl-scopeexpr-case x.scope :end (vl-hidexpr-case x.scope.hid :end) :otherwise nil) :otherwise nil)))
Theorem:
(defthm booleanp-of-vl-atomicportexpr-p (b* ((okp (vl-atomicportexpr-p x))) (booleanp okp)) :rule-classes :type-prescription)
Theorem:
(defthm vl-atomicportexpr-p-of-vl-expr-fix-x (equal (vl-atomicportexpr-p (vl-expr-fix x)) (vl-atomicportexpr-p x)))
Theorem:
(defthm vl-atomicportexpr-p-vl-expr-equiv-congruence-on-x (implies (vl-expr-equiv x x-equiv) (equal (vl-atomicportexpr-p x) (vl-atomicportexpr-p x-equiv))) :rule-classes :congruence)