(s3vec-p x) → bool
Function:
(defun s3vec-p (x) (declare (xargs :guard (s4vec-p x))) (let ((__function__ 's3vec-p)) (declare (ignorable __function__)) (mbe :logic (b* (((s4vec x))) (not (sparseint-test-bitandc2 x.lower x.upper))) :exec (or (s2vec-p x) (b* (((s4vec x))) (not (sparseint-test-bitandc2 x.lower x.upper)))))))
Theorem:
(defthm s3vec-p-correct (b* ((?bool (s3vec-p x))) (equal bool (3vec-p (s4vec->4vec x)))))
Theorem:
(defthm s3vec-p-of-s4vec-fix-x (equal (s3vec-p (s4vec-fix x)) (s3vec-p x)))
Theorem:
(defthm s3vec-p-s4vec-equiv-congruence-on-x (implies (s4vec-equiv x x-equiv) (equal (s3vec-p x) (s3vec-p x-equiv))) :rule-classes :congruence)