Interactions between
Theorem:
(defthm logbitp-of-part-select-split (equal (logbitp n (part-select-width-low x width low)) (and (< (nfix n) (nfix width)) (logbitp (+ (nfix n) (nfix low)) x))))
Theorem:
(defthm logbitp-of-part-install-split (equal (logbitp n (part-install-width-low val x width low)) (if (and (< (nfix n) (+ (nfix low) (nfix width))) (<= (nfix low) (nfix n))) (logbitp (- (nfix n) (nfix low)) val) (logbitp n x))))
Theorem:
(defthm part-select-and-part-install-same (equal (part-select-width-low (part-install-width-low val x width low) width low) (loghead width val)))
Theorem:
(defthm part-select-and-part-install-completely-different-1 (implies (<= (+ (nfix low-i) (nfix width-i)) (nfix low-s)) (equal (part-select-width-low (part-install-width-low val x width-i low-i) width-s low-s) (part-select-width-low x width-s low-s))))
Theorem:
(defthm part-select-and-part-install-completely-different-2 (implies (<= (+ (nfix low-s) (nfix width-s)) (nfix low-i)) (equal (part-select-width-low (part-install-width-low val x width-i low-i) width-s low-s) (part-select-width-low x width-s low-s))))
Theorem:
(defthm part-install-in-terms-of-logapp (equal (part-install val x :width width :low low) (logapp low x (logapp width val (logtail (+ (nfix low) (nfix width)) x)))))