Recognizes well-formed hierarchical scope expressions.
(vl-scopeexpr-p x) → bool
Example:
Function:
(defun vl-scopeexpr-p (x) (declare (xargs :guard (vl-expr-p x))) (let ((__function__ 'vl-scopeexpr-p)) (declare (ignorable __function__)) (b* (((when (vl-atom-p x)) (mbe :logic (vl-hidexpr-p x) :exec (vl-hidname-p x))) ((vl-nonatom x) x) ((when (vl-op-equiv x.op :vl-scope)) (and (vl-scopeatom-p (first x.args)) (vl-scopeexpr-p (second x.args))))) (vl-hidexpr-p x))))
Theorem:
(defthm vl-scopeexpr-p-of-vl-expr-fix-x (equal (vl-scopeexpr-p (vl-expr-fix x)) (vl-scopeexpr-p x)))
Theorem:
(defthm vl-scopeexpr-p-vl-expr-equiv-congruence-on-x (implies (vl-expr-equiv x x-equiv) (equal (vl-scopeexpr-p x) (vl-scopeexpr-p x-equiv))) :rule-classes :congruence)