(vl-scope->scopetype x) → type
Function:
(defun vl-scope->scopetype (x) (declare (xargs :guard (vl-scope-p x))) (let ((__function__ 'vl-scope->scopetype)) (declare (ignorable __function__)) (b* ((x (vl-scope-fix x)) (tag (tag x))) (case tag (:vl-genblob (vl-genblob->scopetype x)) (:vl-blockscope (vl-blockscope->scopetype x)) (:vl-scopeinfo (vl-scopeinfo->scopetype x)) (otherwise tag)))))
Theorem:
(defthm vl-scopetype-p-of-vl-scope->scopetype (b* ((type (vl-scope->scopetype x))) (vl-scopetype-p type)) :rule-classes :rewrite)
Theorem:
(defthm vl-scope->scopetype-of-vl-scope-fix-x (equal (vl-scope->scopetype (vl-scope-fix x)) (vl-scope->scopetype x)))
Theorem:
(defthm vl-scope->scopetype-vl-scope-equiv-congruence-on-x (implies (vl-scope-equiv x x-equiv) (equal (vl-scope->scopetype x) (vl-scope->scopetype x-equiv))) :rule-classes :congruence)