The
This is the register width, depending on the choice of base.
Function:
(defun feat->xlen (feat) (declare (xargs :guard (featp feat))) (let ((__function__ 'feat->xlen)) (declare (ignorable __function__)) (b* (((feat feat) feat)) (feat-bits-case feat.bits :|32| 32 :|64| 64))))
Theorem:
(defthm posp-of-feat->xlen (b* ((xlen (feat->xlen feat))) (posp xlen)) :rule-classes (:rewrite :type-prescription))
Theorem:
(defthm feat->xlen-when-32-bits (implies (feat-bits-case (feat->bits feat) :|32|) (b* ((?xlen (feat->xlen feat))) (equal xlen 32))))
Theorem:
(defthm feat->xlen-when-64-bits (implies (feat-bits-case (feat->bits feat) :|64|) (b* ((?xlen (feat->xlen feat))) (equal xlen 64))))
Theorem:
(defthm feat->xlen-of-feat-fix-feat (equal (feat->xlen (feat-fix feat)) (feat->xlen feat)))
Theorem:
(defthm feat->xlen-feat-equiv-congruence-on-feat (implies (feat-equiv feat feat-equiv) (equal (feat->xlen feat) (feat->xlen feat-equiv))) :rule-classes :congruence)