(sbitset-pairp x) recognizes a valid
(sbitset-pairp x) → pairp
Function:
(defun sbitset-pairp$inline (x) (declare (xargs :guard t)) (let ((__function__ 'sbitset-pairp)) (declare (ignorable __function__)) (and (consp x) (natp (car x)) (sbitset-blockp (cdr x)))))
Theorem:
(defthm booleanp-of-sbitset-pairp (b* ((pairp (sbitset-pairp$inline x))) (booleanp pairp)) :rule-classes :type-prescription)
Theorem:
(defthm consp-when-sbitset-pairp (implies (sbitset-pairp x) (consp x)) :rule-classes :compound-recognizer)
Theorem:
(defthm sbitset-pair-offset-of-sbitset-pair (equal (sbitset-pair-offset (sbitset-pair offset block)) offset))
Theorem:
(defthm sbitset-pair-block-of-sbitset-pair (equal (sbitset-pair-block (sbitset-pair offset block)) block))
Theorem:
(defthm sbitset-pair-offset-type (implies (force (sbitset-pairp x)) (natp (sbitset-pair-offset x))) :rule-classes :type-prescription)
Theorem:
(defthm sbitset-pair-block-type (implies (force (sbitset-pairp x)) (and (integerp (sbitset-pair-block x)) (< 0 (sbitset-pair-block x)))) :rule-classes :type-prescription)
Theorem:
(defthm sbitset-pair-block-upper-bound (implies (force (sbitset-pairp x)) (< (sbitset-pair-block x) (expt 2 *sbitset-block-size*))) :rule-classes ((:rewrite) (:linear)))
Theorem:
(defthm sbitset-pairp-of-sbitset-pair (implies (and (force (natp offset)) (force (sbitset-blockp block))) (sbitset-pairp (sbitset-pair offset block))))
Theorem:
(defthm sbitset-blockp-of-sbitset-pair-block (implies (force (sbitset-pairp x)) (sbitset-blockp (sbitset-pair-block x))))