(vl-streaming-concat-trunc/extend bitstream target-size concat-size) → ans
Function:
(defun vl-streaming-concat-trunc/extend (bitstream target-size concat-size) (declare (xargs :guard (and (sv::svex-p bitstream) (natp target-size) (natp concat-size)))) (let ((__function__ 'vl-streaming-concat-trunc/extend)) (declare (ignorable __function__)) (b* ((target-size (lnfix target-size)) (concat-size (lnfix concat-size))) (cond ((> target-size concat-size) (sv::svcall sv::concat (svex-int (- target-size concat-size)) (svex-int 0) bitstream)) ((< target-size concat-size) (sv::svex-rsh (- concat-size target-size) bitstream)) (t (sv::svex-fix bitstream))))))
Theorem:
(defthm svex-p-of-vl-streaming-concat-trunc/extend (b* ((ans (vl-streaming-concat-trunc/extend bitstream target-size concat-size))) (sv::svex-p ans)) :rule-classes :rewrite)
Theorem:
(defthm vars-of-vl-streaming-concat-trunc/extend (b* ((?ans (vl-streaming-concat-trunc/extend bitstream target-size concat-size))) (implies (not (member v (sv::svex-vars bitstream))) (not (member v (sv::svex-vars ans))))))
Theorem:
(defthm vl-streaming-concat-trunc/extend-of-svex-fix-bitstream (equal (vl-streaming-concat-trunc/extend (sv::svex-fix bitstream) target-size concat-size) (vl-streaming-concat-trunc/extend bitstream target-size concat-size)))
Theorem:
(defthm vl-streaming-concat-trunc/extend-svex-equiv-congruence-on-bitstream (implies (sv::svex-equiv bitstream bitstream-equiv) (equal (vl-streaming-concat-trunc/extend bitstream target-size concat-size) (vl-streaming-concat-trunc/extend bitstream-equiv target-size concat-size))) :rule-classes :congruence)
Theorem:
(defthm vl-streaming-concat-trunc/extend-of-nfix-target-size (equal (vl-streaming-concat-trunc/extend bitstream (nfix target-size) concat-size) (vl-streaming-concat-trunc/extend bitstream target-size concat-size)))
Theorem:
(defthm vl-streaming-concat-trunc/extend-nat-equiv-congruence-on-target-size (implies (acl2::nat-equiv target-size target-size-equiv) (equal (vl-streaming-concat-trunc/extend bitstream target-size concat-size) (vl-streaming-concat-trunc/extend bitstream target-size-equiv concat-size))) :rule-classes :congruence)
Theorem:
(defthm vl-streaming-concat-trunc/extend-of-nfix-concat-size (equal (vl-streaming-concat-trunc/extend bitstream target-size (nfix concat-size)) (vl-streaming-concat-trunc/extend bitstream target-size concat-size)))
Theorem:
(defthm vl-streaming-concat-trunc/extend-nat-equiv-congruence-on-concat-size (implies (acl2::nat-equiv concat-size concat-size-equiv) (equal (vl-streaming-concat-trunc/extend bitstream target-size concat-size) (vl-streaming-concat-trunc/extend bitstream target-size concat-size-equiv))) :rule-classes :congruence)