Update the |X86ISA|::|NXT| field of a prefixes bit structure.
(!prefixes->nxt nxt x) → new-x
Function:
(defun !prefixes->nxt$inline (nxt x) (declare (xargs :guard (and (8bits-p nxt) (prefixes-p x)))) (mbe :logic (b* ((nxt (mbe :logic (8bits-fix nxt) :exec nxt)) (x (prefixes-fix x))) (part-install nxt x :width 8 :low 44)) :exec (the (unsigned-byte 52) (logior (the (unsigned-byte 52) (logand (the (unsigned-byte 52) x) (the (signed-byte 53) -4486007441326081))) (the (unsigned-byte 52) (ash (the (unsigned-byte 8) nxt) 44))))))
Theorem:
(defthm prefixes-p-of-!prefixes->nxt (b* ((new-x (!prefixes->nxt$inline nxt x))) (prefixes-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm !prefixes->nxt$inline-of-8bits-fix-nxt (equal (!prefixes->nxt$inline (8bits-fix nxt) x) (!prefixes->nxt$inline nxt x)))
Theorem:
(defthm !prefixes->nxt$inline-8bits-equiv-congruence-on-nxt (implies (8bits-equiv nxt nxt-equiv) (equal (!prefixes->nxt$inline nxt x) (!prefixes->nxt$inline nxt-equiv x))) :rule-classes :congruence)
Theorem:
(defthm !prefixes->nxt$inline-of-prefixes-fix-x (equal (!prefixes->nxt$inline nxt (prefixes-fix x)) (!prefixes->nxt$inline nxt x)))
Theorem:
(defthm !prefixes->nxt$inline-prefixes-equiv-congruence-on-x (implies (prefixes-equiv x x-equiv) (equal (!prefixes->nxt$inline nxt x) (!prefixes->nxt$inline nxt x-equiv))) :rule-classes :congruence)
Theorem:
(defthm !prefixes->nxt-is-prefixes (equal (!prefixes->nxt nxt x) (change-prefixes x :nxt nxt)))
Theorem:
(defthm prefixes->nxt-of-!prefixes->nxt (b* ((?new-x (!prefixes->nxt$inline nxt x))) (equal (prefixes->nxt new-x) (8bits-fix nxt))))
Theorem:
(defthm !prefixes->nxt-equiv-under-mask (b* ((?new-x (!prefixes->nxt$inline nxt x))) (prefixes-equiv-under-mask new-x x 17592186044415)))