(s2vec x) → result
Function:
(defun s2vec (x) (declare (xargs :guard (sparseint-p x))) (let ((__function__ 's2vec)) (declare (ignorable __function__)) (mbe :logic (s4vec x x) :exec (b* ((x (sparseint-fix x))) (if (integerp x) x (list x))))))
Theorem:
(defthm s4vec-p-of-s2vec (b* ((result (s2vec x))) (s4vec-p result)) :rule-classes :rewrite)
Theorem:
(defthm s4vec->upper-of-s2vec (b* ((?result (s2vec x))) (equal (s4vec->upper result) (sparseint-fix x))))
Theorem:
(defthm s4vec->lower-of-s2vec (b* ((?result (s2vec x))) (equal (s4vec->lower result) (sparseint-fix x))))
Theorem:
(defthm s2vec-of-sparseint-fix-x (equal (s2vec (sparseint-fix x)) (s2vec x)))
Theorem:
(defthm s2vec-sparseint-equiv-congruence-on-x (implies (sparseint-equiv x x-equiv) (equal (s2vec x) (s2vec x-equiv))) :rule-classes :congruence)