(vl-datatype-index-is-bitselect x) → *
Function:
(defun vl-datatype-index-is-bitselect (x) (declare (xargs :guard (vl-datatype-p x))) (declare (xargs :guard (vl-datatype-resolved-p x))) (let ((__function__ 'vl-datatype-index-is-bitselect)) (declare (ignorable __function__)) (b* ((x (vl-maybe-usertype-resolve x)) (udims (vl-datatype->udims x)) (pdims (vl-datatype->pdims x)) ((when (consp udims)) nil) ((when (atom pdims)) (vl-datatype-packedp x)) (x-minus-1d (vl-datatype-update-pdims (cdr pdims) x)) (x-minus-1d (vl-maybe-usertype-resolve x-minus-1d))) (and (atom (vl-datatype->pdims x-minus-1d)) (atom (vl-datatype->udims x-minus-1d)) (vl-datatype-case x-minus-1d :vl-coretype (b* (((vl-coredatatype-info xinfo) (vl-coretypename->info x-minus-1d.name))) (eql xinfo.size 1)) :otherwise nil)))))
Theorem:
(defthm vl-datatype-index-is-bitselect-of-vl-datatype-fix-x (equal (vl-datatype-index-is-bitselect (vl-datatype-fix x)) (vl-datatype-index-is-bitselect x)))
Theorem:
(defthm vl-datatype-index-is-bitselect-vl-datatype-equiv-congruence-on-x (implies (vl-datatype-equiv x x-equiv) (equal (vl-datatype-index-is-bitselect x) (vl-datatype-index-is-bitselect x-equiv))) :rule-classes :congruence)