Computes (loghead full-width (logapp concat-width x y)).
Function:
(defun limshift-logext-of-logapp (full-width concat-width x y) (declare (xargs :guard (and (posp full-width) (natp concat-width) (integerp x) (integerp y)))) (let ((__function__ 'limshift-logext-of-logapp)) (declare (ignorable __function__)) (b* ((concat-width (lnfix concat-width)) (full-width (lposfix full-width)) (x (lifix x)) (y (lifix y)) (concat-width-limited (logcollapse (integer-length full-width) concat-width))) (logext full-width (logapp concat-width-limited x y)))))
Theorem:
(defthm integerp-of-limshift-logext-of-logapp (b* ((shifted (limshift-logext-of-logapp full-width concat-width x y))) (integerp shifted)) :rule-classes :type-prescription)
Theorem:
(defthm limshift-logext-of-logapp-correct (equal (limshift-logext-of-logapp full-width concat-width x y) (logext full-width (logapp concat-width x y))))