Number of bits of unsigned and signed
Function:
(defun ienv->llong-bit-size (ienv) (declare (xargs :guard (ienvp ienv))) (integer-format->bit-size (char+short+int+long+llong+bool-format->llong (ienv->char+short+int+long+llong+bool-format ienv))))
Theorem:
(defthm posp-of-ienv->llong-bit-size (b* ((size (ienv->llong-bit-size ienv))) (posp size)) :rule-classes :rewrite)
Theorem:
(defthm ienv->llong-bit-size-type-prescription (b* ((?size (ienv->llong-bit-size ienv))) (and (posp size) (> size 1))) :rule-classes :type-prescription)
Theorem:
(defthm ienv->llong-bit-size-lower-bound (b* ((?size (ienv->llong-bit-size ienv))) (>= size 64)) :rule-classes :linear)
Theorem:
(defthm ienv->llong-bit-size-of-ienv-fix-ienv (equal (ienv->llong-bit-size (ienv-fix ienv)) (ienv->llong-bit-size ienv)))
Theorem:
(defthm ienv->llong-bit-size-ienv-equiv-congruence-on-ienv (implies (ienv-equiv ienv ienv-equiv) (equal (ienv->llong-bit-size ienv) (ienv->llong-bit-size ienv-equiv))) :rule-classes :congruence)