(vl-simplereg-p x) → *
Function:
(defun vl-simplereg-p (x) (declare (xargs :guard (vl-vardecl-p x))) (let ((__function__ 'vl-simplereg-p)) (declare (ignorable __function__)) (b* (((vl-vardecl x) x)) (and (not x.constp) (not x.varp) (not x.lifetime) (eq (vl-datatype-kind x.type) :vl-coretype) (b* (((vl-coretype x.type) x.type)) (and (or (eq x.type.name :vl-reg) (eq x.type.name :vl-logic)) (atom x.type.udims) (or (atom x.type.pdims) (and (atom (cdr x.type.pdims)) (mbe :logic (vl-range-p (car x.type.pdims)) :exec (not (eq (car x.type.pdims) :vl-unsized-dimension)))))))))))
Theorem:
(defthm vl-simplereg-p-of-vl-vardecl-fix-x (equal (vl-simplereg-p (vl-vardecl-fix x)) (vl-simplereg-p x)))
Theorem:
(defthm vl-simplereg-p-vl-vardecl-equiv-congruence-on-x (implies (vl-vardecl-equiv x x-equiv) (equal (vl-simplereg-p x) (vl-simplereg-p x-equiv))) :rule-classes :congruence)