The ACL2 integer value of the minimum value representable in a signed integer format.
(sinteger-format->min format) → min
This is determined by the number
Function:
(defun sinteger-format->min (format) (declare (xargs :guard (sinteger-formatp format))) (let ((__function__ 'sinteger-format->min)) (declare (ignorable __function__)) (if (and (equal (signed-format-kind (sinteger-format->signed format)) :twos-complement) (not (sinteger-format->traps format))) (- (expt 2 (sinteger-bit-roles-value-count (sinteger-format->bits format)))) (- (1- (expt 2 (sinteger-bit-roles-value-count (sinteger-format->bits format))))))))
Theorem:
(defthm integerp-of-sinteger-format->min (b* ((min (sinteger-format->min format))) (integerp min)) :rule-classes :rewrite)
Theorem:
(defthm sinteger-format->min-type-prescription (b* ((common-lisp::?min (sinteger-format->min format))) (< min 0)) :rule-classes :type-prescription)
Theorem:
(defthm sinteger-format->min-of-sinteger-format-fix-format (equal (sinteger-format->min (sinteger-format-fix format)) (sinteger-format->min format)))
Theorem:
(defthm sinteger-format->min-sinteger-format-equiv-congruence-on-format (implies (sinteger-format-equiv format format-equiv) (equal (sinteger-format->min format) (sinteger-format->min format-equiv))) :rule-classes :congruence)