An 12-bit unsigned bitstruct type.
This is a bitstruct type introduced by defbitstruct, represented as a unsigned 12-bit integer.
Source: Intel Manual, Dec-23, Vol. 3A, Section 2.2.1
Function:
(defun ia32_eferbits-p$inline (x) (declare (xargs :guard t)) (mbe :logic (unsigned-byte-p 12 x) :exec (and (natp x) (< x 4096))))
Theorem:
(defthm ia32_eferbits-p-when-unsigned-byte-p (implies (unsigned-byte-p 12 x) (ia32_eferbits-p x)))
Theorem:
(defthm unsigned-byte-p-when-ia32_eferbits-p (implies (ia32_eferbits-p x) (unsigned-byte-p 12 x)))
Theorem:
(defthm ia32_eferbits-p-compound-recognizer (implies (ia32_eferbits-p x) (natp x)) :rule-classes :compound-recognizer)
Function:
(defun ia32_eferbits-fix$inline (x) (declare (xargs :guard (ia32_eferbits-p x))) (mbe :logic (loghead 12 x) :exec x))
Theorem:
(defthm ia32_eferbits-p-of-ia32_eferbits-fix (b* ((fty::fixed (ia32_eferbits-fix$inline x))) (ia32_eferbits-p fty::fixed)) :rule-classes :rewrite)
Theorem:
(defthm ia32_eferbits-fix-when-ia32_eferbits-p (implies (ia32_eferbits-p x) (equal (ia32_eferbits-fix x) x)))
Function:
(defun ia32_eferbits-equiv$inline (x y) (declare (xargs :guard (and (ia32_eferbits-p x) (ia32_eferbits-p y)))) (equal (ia32_eferbits-fix x) (ia32_eferbits-fix y)))
Theorem:
(defthm ia32_eferbits-equiv-is-an-equivalence (and (booleanp (ia32_eferbits-equiv x y)) (ia32_eferbits-equiv x x) (implies (ia32_eferbits-equiv x y) (ia32_eferbits-equiv y x)) (implies (and (ia32_eferbits-equiv x y) (ia32_eferbits-equiv y z)) (ia32_eferbits-equiv x z))) :rule-classes (:equivalence))
Theorem:
(defthm ia32_eferbits-equiv-implies-equal-ia32_eferbits-fix-1 (implies (ia32_eferbits-equiv x x-equiv) (equal (ia32_eferbits-fix x) (ia32_eferbits-fix x-equiv))) :rule-classes (:congruence))
Theorem:
(defthm ia32_eferbits-fix-under-ia32_eferbits-equiv (ia32_eferbits-equiv (ia32_eferbits-fix x) x) :rule-classes (:rewrite :rewrite-quoted-constant))
Function:
(defun ia32_eferbits$inline (sce res1 lme res2 lma nxe) (declare (xargs :guard (and (bitp sce) (7bits-p res1) (bitp lme) (bitp res2) (bitp lma) (bitp nxe)))) (b* ((sce (mbe :logic (bfix sce) :exec sce)) (res1 (mbe :logic (7bits-fix res1) :exec res1)) (lme (mbe :logic (bfix lme) :exec lme)) (res2 (mbe :logic (bfix res2) :exec res2)) (lma (mbe :logic (bfix lma) :exec lma)) (nxe (mbe :logic (bfix nxe) :exec nxe))) (logapp 1 sce (logapp 7 res1 (logapp 1 lme (logapp 1 res2 (logapp 1 lma nxe)))))))
Theorem:
(defthm ia32_eferbits-p-of-ia32_eferbits (b* ((ia32_eferbits (ia32_eferbits$inline sce res1 lme res2 lma nxe))) (ia32_eferbits-p ia32_eferbits)) :rule-classes :rewrite)
Theorem:
(defthm ia32_eferbits$inline-of-bfix-sce (equal (ia32_eferbits$inline (bfix sce) res1 lme res2 lma nxe) (ia32_eferbits$inline sce res1 lme res2 lma nxe)))
Theorem:
(defthm ia32_eferbits$inline-bit-equiv-congruence-on-sce (implies (bit-equiv sce sce-equiv) (equal (ia32_eferbits$inline sce res1 lme res2 lma nxe) (ia32_eferbits$inline sce-equiv res1 lme res2 lma nxe))) :rule-classes :congruence)
Theorem:
(defthm ia32_eferbits$inline-of-7bits-fix-res1 (equal (ia32_eferbits$inline sce (7bits-fix res1) lme res2 lma nxe) (ia32_eferbits$inline sce res1 lme res2 lma nxe)))
Theorem:
(defthm ia32_eferbits$inline-7bits-equiv-congruence-on-res1 (implies (7bits-equiv res1 res1-equiv) (equal (ia32_eferbits$inline sce res1 lme res2 lma nxe) (ia32_eferbits$inline sce res1-equiv lme res2 lma nxe))) :rule-classes :congruence)
Theorem:
(defthm ia32_eferbits$inline-of-bfix-lme (equal (ia32_eferbits$inline sce res1 (bfix lme) res2 lma nxe) (ia32_eferbits$inline sce res1 lme res2 lma nxe)))
Theorem:
(defthm ia32_eferbits$inline-bit-equiv-congruence-on-lme (implies (bit-equiv lme lme-equiv) (equal (ia32_eferbits$inline sce res1 lme res2 lma nxe) (ia32_eferbits$inline sce res1 lme-equiv res2 lma nxe))) :rule-classes :congruence)
Theorem:
(defthm ia32_eferbits$inline-of-bfix-res2 (equal (ia32_eferbits$inline sce res1 lme (bfix res2) lma nxe) (ia32_eferbits$inline sce res1 lme res2 lma nxe)))
Theorem:
(defthm ia32_eferbits$inline-bit-equiv-congruence-on-res2 (implies (bit-equiv res2 res2-equiv) (equal (ia32_eferbits$inline sce res1 lme res2 lma nxe) (ia32_eferbits$inline sce res1 lme res2-equiv lma nxe))) :rule-classes :congruence)
Theorem:
(defthm ia32_eferbits$inline-of-bfix-lma (equal (ia32_eferbits$inline sce res1 lme res2 (bfix lma) nxe) (ia32_eferbits$inline sce res1 lme res2 lma nxe)))
Theorem:
(defthm ia32_eferbits$inline-bit-equiv-congruence-on-lma (implies (bit-equiv lma lma-equiv) (equal (ia32_eferbits$inline sce res1 lme res2 lma nxe) (ia32_eferbits$inline sce res1 lme res2 lma-equiv nxe))) :rule-classes :congruence)
Theorem:
(defthm ia32_eferbits$inline-of-bfix-nxe (equal (ia32_eferbits$inline sce res1 lme res2 lma (bfix nxe)) (ia32_eferbits$inline sce res1 lme res2 lma nxe)))
Theorem:
(defthm ia32_eferbits$inline-bit-equiv-congruence-on-nxe (implies (bit-equiv nxe nxe-equiv) (equal (ia32_eferbits$inline sce res1 lme res2 lma nxe) (ia32_eferbits$inline sce res1 lme res2 lma nxe-equiv))) :rule-classes :congruence)
Function:
(defun ia32_eferbits-equiv-under-mask$inline (x x1 mask) (declare (xargs :guard (and (ia32_eferbits-p x) (ia32_eferbits-p x1) (integerp mask)))) (fty::int-equiv-under-mask (ia32_eferbits-fix x) (ia32_eferbits-fix x1) mask))
Function:
(defun ia32_eferbits->sce$inline (x) (declare (xargs :guard (ia32_eferbits-p x))) (mbe :logic (let ((x (ia32_eferbits-fix x))) (part-select x :low 0 :width 1)) :exec (the (unsigned-byte 1) (logand (the (unsigned-byte 1) 1) (the (unsigned-byte 12) x)))))
Theorem:
(defthm bitp-of-ia32_eferbits->sce (b* ((sce (ia32_eferbits->sce$inline x))) (bitp sce)) :rule-classes :rewrite)
Theorem:
(defthm ia32_eferbits->sce$inline-of-ia32_eferbits-fix-x (equal (ia32_eferbits->sce$inline (ia32_eferbits-fix x)) (ia32_eferbits->sce$inline x)))
Theorem:
(defthm ia32_eferbits->sce$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (ia32_eferbits->sce$inline x) (ia32_eferbits->sce$inline x-equiv))) :rule-classes :congruence)
Theorem:
(defthm ia32_eferbits->sce-of-ia32_eferbits (equal (ia32_eferbits->sce (ia32_eferbits sce res1 lme res2 lma nxe)) (bfix sce)))
Theorem:
(defthm ia32_eferbits->sce-of-write-with-mask (implies (and (fty::bitstruct-read-over-write-hyps x ia32_eferbits-equiv-under-mask) (ia32_eferbits-equiv-under-mask x y fty::mask) (equal (logand (lognot fty::mask) 1) 0)) (equal (ia32_eferbits->sce x) (ia32_eferbits->sce y))))
Function:
(defun ia32_eferbits->res1$inline (x) (declare (xargs :guard (ia32_eferbits-p x))) (mbe :logic (let ((x (ia32_eferbits-fix x))) (part-select x :low 1 :width 7)) :exec (the (unsigned-byte 7) (logand (the (unsigned-byte 7) 127) (the (unsigned-byte 11) (ash (the (unsigned-byte 12) x) -1))))))
Theorem:
(defthm 7bits-p-of-ia32_eferbits->res1 (b* ((res1 (ia32_eferbits->res1$inline x))) (7bits-p res1)) :rule-classes :rewrite)
Theorem:
(defthm ia32_eferbits->res1$inline-of-ia32_eferbits-fix-x (equal (ia32_eferbits->res1$inline (ia32_eferbits-fix x)) (ia32_eferbits->res1$inline x)))
Theorem:
(defthm ia32_eferbits->res1$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (ia32_eferbits->res1$inline x) (ia32_eferbits->res1$inline x-equiv))) :rule-classes :congruence)
Theorem:
(defthm ia32_eferbits->res1-of-ia32_eferbits (equal (ia32_eferbits->res1 (ia32_eferbits sce res1 lme res2 lma nxe)) (7bits-fix res1)))
Theorem:
(defthm ia32_eferbits->res1-of-write-with-mask (implies (and (fty::bitstruct-read-over-write-hyps x ia32_eferbits-equiv-under-mask) (ia32_eferbits-equiv-under-mask x y fty::mask) (equal (logand (lognot fty::mask) 254) 0)) (equal (ia32_eferbits->res1 x) (ia32_eferbits->res1 y))))
Function:
(defun ia32_eferbits->lme$inline (x) (declare (xargs :guard (ia32_eferbits-p x))) (mbe :logic (let ((x (ia32_eferbits-fix x))) (part-select x :low 8 :width 1)) :exec (the (unsigned-byte 1) (logand (the (unsigned-byte 1) 1) (the (unsigned-byte 4) (ash (the (unsigned-byte 12) x) -8))))))
Theorem:
(defthm bitp-of-ia32_eferbits->lme (b* ((lme (ia32_eferbits->lme$inline x))) (bitp lme)) :rule-classes :rewrite)
Theorem:
(defthm ia32_eferbits->lme$inline-of-ia32_eferbits-fix-x (equal (ia32_eferbits->lme$inline (ia32_eferbits-fix x)) (ia32_eferbits->lme$inline x)))
Theorem:
(defthm ia32_eferbits->lme$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (ia32_eferbits->lme$inline x) (ia32_eferbits->lme$inline x-equiv))) :rule-classes :congruence)
Theorem:
(defthm ia32_eferbits->lme-of-ia32_eferbits (equal (ia32_eferbits->lme (ia32_eferbits sce res1 lme res2 lma nxe)) (bfix lme)))
Theorem:
(defthm ia32_eferbits->lme-of-write-with-mask (implies (and (fty::bitstruct-read-over-write-hyps x ia32_eferbits-equiv-under-mask) (ia32_eferbits-equiv-under-mask x y fty::mask) (equal (logand (lognot fty::mask) 256) 0)) (equal (ia32_eferbits->lme x) (ia32_eferbits->lme y))))
Function:
(defun ia32_eferbits->res2$inline (x) (declare (xargs :guard (ia32_eferbits-p x))) (mbe :logic (let ((x (ia32_eferbits-fix x))) (part-select x :low 9 :width 1)) :exec (the (unsigned-byte 1) (logand (the (unsigned-byte 1) 1) (the (unsigned-byte 3) (ash (the (unsigned-byte 12) x) -9))))))
Theorem:
(defthm bitp-of-ia32_eferbits->res2 (b* ((res2 (ia32_eferbits->res2$inline x))) (bitp res2)) :rule-classes :rewrite)
Theorem:
(defthm ia32_eferbits->res2$inline-of-ia32_eferbits-fix-x (equal (ia32_eferbits->res2$inline (ia32_eferbits-fix x)) (ia32_eferbits->res2$inline x)))
Theorem:
(defthm ia32_eferbits->res2$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (ia32_eferbits->res2$inline x) (ia32_eferbits->res2$inline x-equiv))) :rule-classes :congruence)
Theorem:
(defthm ia32_eferbits->res2-of-ia32_eferbits (equal (ia32_eferbits->res2 (ia32_eferbits sce res1 lme res2 lma nxe)) (bfix res2)))
Theorem:
(defthm ia32_eferbits->res2-of-write-with-mask (implies (and (fty::bitstruct-read-over-write-hyps x ia32_eferbits-equiv-under-mask) (ia32_eferbits-equiv-under-mask x y fty::mask) (equal (logand (lognot fty::mask) 512) 0)) (equal (ia32_eferbits->res2 x) (ia32_eferbits->res2 y))))
Function:
(defun ia32_eferbits->lma$inline (x) (declare (xargs :guard (ia32_eferbits-p x))) (mbe :logic (let ((x (ia32_eferbits-fix x))) (part-select x :low 10 :width 1)) :exec (the (unsigned-byte 1) (logand (the (unsigned-byte 1) 1) (the (unsigned-byte 2) (ash (the (unsigned-byte 12) x) -10))))))
Theorem:
(defthm bitp-of-ia32_eferbits->lma (b* ((lma (ia32_eferbits->lma$inline x))) (bitp lma)) :rule-classes :rewrite)
Theorem:
(defthm ia32_eferbits->lma$inline-of-ia32_eferbits-fix-x (equal (ia32_eferbits->lma$inline (ia32_eferbits-fix x)) (ia32_eferbits->lma$inline x)))
Theorem:
(defthm ia32_eferbits->lma$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (ia32_eferbits->lma$inline x) (ia32_eferbits->lma$inline x-equiv))) :rule-classes :congruence)
Theorem:
(defthm ia32_eferbits->lma-of-ia32_eferbits (equal (ia32_eferbits->lma (ia32_eferbits sce res1 lme res2 lma nxe)) (bfix lma)))
Theorem:
(defthm ia32_eferbits->lma-of-write-with-mask (implies (and (fty::bitstruct-read-over-write-hyps x ia32_eferbits-equiv-under-mask) (ia32_eferbits-equiv-under-mask x y fty::mask) (equal (logand (lognot fty::mask) 1024) 0)) (equal (ia32_eferbits->lma x) (ia32_eferbits->lma y))))
Function:
(defun ia32_eferbits->nxe$inline (x) (declare (xargs :guard (ia32_eferbits-p x))) (mbe :logic (let ((x (ia32_eferbits-fix x))) (part-select x :low 11 :width 1)) :exec (the (unsigned-byte 1) (logand (the (unsigned-byte 1) 1) (the (unsigned-byte 1) (ash (the (unsigned-byte 12) x) -11))))))
Theorem:
(defthm bitp-of-ia32_eferbits->nxe (b* ((nxe (ia32_eferbits->nxe$inline x))) (bitp nxe)) :rule-classes :rewrite)
Theorem:
(defthm ia32_eferbits->nxe$inline-of-ia32_eferbits-fix-x (equal (ia32_eferbits->nxe$inline (ia32_eferbits-fix x)) (ia32_eferbits->nxe$inline x)))
Theorem:
(defthm ia32_eferbits->nxe$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (ia32_eferbits->nxe$inline x) (ia32_eferbits->nxe$inline x-equiv))) :rule-classes :congruence)
Theorem:
(defthm ia32_eferbits->nxe-of-ia32_eferbits (equal (ia32_eferbits->nxe (ia32_eferbits sce res1 lme res2 lma nxe)) (bfix nxe)))
Theorem:
(defthm ia32_eferbits->nxe-of-write-with-mask (implies (and (fty::bitstruct-read-over-write-hyps x ia32_eferbits-equiv-under-mask) (ia32_eferbits-equiv-under-mask x y fty::mask) (equal (logand (lognot fty::mask) 2048) 0)) (equal (ia32_eferbits->nxe x) (ia32_eferbits->nxe y))))
Theorem:
(defthm ia32_eferbits-fix-in-terms-of-ia32_eferbits (equal (ia32_eferbits-fix x) (change-ia32_eferbits x)))
Function:
(defun !ia32_eferbits->sce$inline (sce x) (declare (xargs :guard (and (bitp sce) (ia32_eferbits-p x)))) (mbe :logic (b* ((sce (mbe :logic (bfix sce) :exec sce)) (x (ia32_eferbits-fix x))) (part-install sce x :width 1 :low 0)) :exec (the (unsigned-byte 12) (logior (the (unsigned-byte 12) (logand (the (unsigned-byte 12) x) (the (signed-byte 2) -2))) (the (unsigned-byte 1) sce)))))
Theorem:
(defthm ia32_eferbits-p-of-!ia32_eferbits->sce (b* ((new-x (!ia32_eferbits->sce$inline sce x))) (ia32_eferbits-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm !ia32_eferbits->sce$inline-of-bfix-sce (equal (!ia32_eferbits->sce$inline (bfix sce) x) (!ia32_eferbits->sce$inline sce x)))
Theorem:
(defthm !ia32_eferbits->sce$inline-bit-equiv-congruence-on-sce (implies (bit-equiv sce sce-equiv) (equal (!ia32_eferbits->sce$inline sce x) (!ia32_eferbits->sce$inline sce-equiv x))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->sce$inline-of-ia32_eferbits-fix-x (equal (!ia32_eferbits->sce$inline sce (ia32_eferbits-fix x)) (!ia32_eferbits->sce$inline sce x)))
Theorem:
(defthm !ia32_eferbits->sce$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (!ia32_eferbits->sce$inline sce x) (!ia32_eferbits->sce$inline sce x-equiv))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->sce-is-ia32_eferbits (equal (!ia32_eferbits->sce sce x) (change-ia32_eferbits x :sce sce)))
Theorem:
(defthm ia32_eferbits->sce-of-!ia32_eferbits->sce (b* ((?new-x (!ia32_eferbits->sce$inline sce x))) (equal (ia32_eferbits->sce new-x) (bfix sce))))
Theorem:
(defthm !ia32_eferbits->sce-equiv-under-mask (b* ((?new-x (!ia32_eferbits->sce$inline sce x))) (ia32_eferbits-equiv-under-mask new-x x -2)))
Function:
(defun !ia32_eferbits->res1$inline (res1 x) (declare (xargs :guard (and (7bits-p res1) (ia32_eferbits-p x)))) (mbe :logic (b* ((res1 (mbe :logic (7bits-fix res1) :exec res1)) (x (ia32_eferbits-fix x))) (part-install res1 x :width 7 :low 1)) :exec (the (unsigned-byte 12) (logior (the (unsigned-byte 12) (logand (the (unsigned-byte 12) x) (the (signed-byte 9) -255))) (the (unsigned-byte 8) (ash (the (unsigned-byte 7) res1) 1))))))
Theorem:
(defthm ia32_eferbits-p-of-!ia32_eferbits->res1 (b* ((new-x (!ia32_eferbits->res1$inline res1 x))) (ia32_eferbits-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm !ia32_eferbits->res1$inline-of-7bits-fix-res1 (equal (!ia32_eferbits->res1$inline (7bits-fix res1) x) (!ia32_eferbits->res1$inline res1 x)))
Theorem:
(defthm !ia32_eferbits->res1$inline-7bits-equiv-congruence-on-res1 (implies (7bits-equiv res1 res1-equiv) (equal (!ia32_eferbits->res1$inline res1 x) (!ia32_eferbits->res1$inline res1-equiv x))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->res1$inline-of-ia32_eferbits-fix-x (equal (!ia32_eferbits->res1$inline res1 (ia32_eferbits-fix x)) (!ia32_eferbits->res1$inline res1 x)))
Theorem:
(defthm !ia32_eferbits->res1$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (!ia32_eferbits->res1$inline res1 x) (!ia32_eferbits->res1$inline res1 x-equiv))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->res1-is-ia32_eferbits (equal (!ia32_eferbits->res1 res1 x) (change-ia32_eferbits x :res1 res1)))
Theorem:
(defthm ia32_eferbits->res1-of-!ia32_eferbits->res1 (b* ((?new-x (!ia32_eferbits->res1$inline res1 x))) (equal (ia32_eferbits->res1 new-x) (7bits-fix res1))))
Theorem:
(defthm !ia32_eferbits->res1-equiv-under-mask (b* ((?new-x (!ia32_eferbits->res1$inline res1 x))) (ia32_eferbits-equiv-under-mask new-x x -255)))
Function:
(defun !ia32_eferbits->lme$inline (lme x) (declare (xargs :guard (and (bitp lme) (ia32_eferbits-p x)))) (mbe :logic (b* ((lme (mbe :logic (bfix lme) :exec lme)) (x (ia32_eferbits-fix x))) (part-install lme x :width 1 :low 8)) :exec (the (unsigned-byte 12) (logior (the (unsigned-byte 12) (logand (the (unsigned-byte 12) x) (the (signed-byte 10) -257))) (the (unsigned-byte 9) (ash (the (unsigned-byte 1) lme) 8))))))
Theorem:
(defthm ia32_eferbits-p-of-!ia32_eferbits->lme (b* ((new-x (!ia32_eferbits->lme$inline lme x))) (ia32_eferbits-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm !ia32_eferbits->lme$inline-of-bfix-lme (equal (!ia32_eferbits->lme$inline (bfix lme) x) (!ia32_eferbits->lme$inline lme x)))
Theorem:
(defthm !ia32_eferbits->lme$inline-bit-equiv-congruence-on-lme (implies (bit-equiv lme lme-equiv) (equal (!ia32_eferbits->lme$inline lme x) (!ia32_eferbits->lme$inline lme-equiv x))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->lme$inline-of-ia32_eferbits-fix-x (equal (!ia32_eferbits->lme$inline lme (ia32_eferbits-fix x)) (!ia32_eferbits->lme$inline lme x)))
Theorem:
(defthm !ia32_eferbits->lme$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (!ia32_eferbits->lme$inline lme x) (!ia32_eferbits->lme$inline lme x-equiv))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->lme-is-ia32_eferbits (equal (!ia32_eferbits->lme lme x) (change-ia32_eferbits x :lme lme)))
Theorem:
(defthm ia32_eferbits->lme-of-!ia32_eferbits->lme (b* ((?new-x (!ia32_eferbits->lme$inline lme x))) (equal (ia32_eferbits->lme new-x) (bfix lme))))
Theorem:
(defthm !ia32_eferbits->lme-equiv-under-mask (b* ((?new-x (!ia32_eferbits->lme$inline lme x))) (ia32_eferbits-equiv-under-mask new-x x -257)))
Function:
(defun !ia32_eferbits->res2$inline (res2 x) (declare (xargs :guard (and (bitp res2) (ia32_eferbits-p x)))) (mbe :logic (b* ((res2 (mbe :logic (bfix res2) :exec res2)) (x (ia32_eferbits-fix x))) (part-install res2 x :width 1 :low 9)) :exec (the (unsigned-byte 12) (logior (the (unsigned-byte 12) (logand (the (unsigned-byte 12) x) (the (signed-byte 11) -513))) (the (unsigned-byte 10) (ash (the (unsigned-byte 1) res2) 9))))))
Theorem:
(defthm ia32_eferbits-p-of-!ia32_eferbits->res2 (b* ((new-x (!ia32_eferbits->res2$inline res2 x))) (ia32_eferbits-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm !ia32_eferbits->res2$inline-of-bfix-res2 (equal (!ia32_eferbits->res2$inline (bfix res2) x) (!ia32_eferbits->res2$inline res2 x)))
Theorem:
(defthm !ia32_eferbits->res2$inline-bit-equiv-congruence-on-res2 (implies (bit-equiv res2 res2-equiv) (equal (!ia32_eferbits->res2$inline res2 x) (!ia32_eferbits->res2$inline res2-equiv x))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->res2$inline-of-ia32_eferbits-fix-x (equal (!ia32_eferbits->res2$inline res2 (ia32_eferbits-fix x)) (!ia32_eferbits->res2$inline res2 x)))
Theorem:
(defthm !ia32_eferbits->res2$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (!ia32_eferbits->res2$inline res2 x) (!ia32_eferbits->res2$inline res2 x-equiv))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->res2-is-ia32_eferbits (equal (!ia32_eferbits->res2 res2 x) (change-ia32_eferbits x :res2 res2)))
Theorem:
(defthm ia32_eferbits->res2-of-!ia32_eferbits->res2 (b* ((?new-x (!ia32_eferbits->res2$inline res2 x))) (equal (ia32_eferbits->res2 new-x) (bfix res2))))
Theorem:
(defthm !ia32_eferbits->res2-equiv-under-mask (b* ((?new-x (!ia32_eferbits->res2$inline res2 x))) (ia32_eferbits-equiv-under-mask new-x x -513)))
Function:
(defun !ia32_eferbits->lma$inline (lma x) (declare (xargs :guard (and (bitp lma) (ia32_eferbits-p x)))) (mbe :logic (b* ((lma (mbe :logic (bfix lma) :exec lma)) (x (ia32_eferbits-fix x))) (part-install lma x :width 1 :low 10)) :exec (the (unsigned-byte 12) (logior (the (unsigned-byte 12) (logand (the (unsigned-byte 12) x) (the (signed-byte 12) -1025))) (the (unsigned-byte 11) (ash (the (unsigned-byte 1) lma) 10))))))
Theorem:
(defthm ia32_eferbits-p-of-!ia32_eferbits->lma (b* ((new-x (!ia32_eferbits->lma$inline lma x))) (ia32_eferbits-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm !ia32_eferbits->lma$inline-of-bfix-lma (equal (!ia32_eferbits->lma$inline (bfix lma) x) (!ia32_eferbits->lma$inline lma x)))
Theorem:
(defthm !ia32_eferbits->lma$inline-bit-equiv-congruence-on-lma (implies (bit-equiv lma lma-equiv) (equal (!ia32_eferbits->lma$inline lma x) (!ia32_eferbits->lma$inline lma-equiv x))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->lma$inline-of-ia32_eferbits-fix-x (equal (!ia32_eferbits->lma$inline lma (ia32_eferbits-fix x)) (!ia32_eferbits->lma$inline lma x)))
Theorem:
(defthm !ia32_eferbits->lma$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (!ia32_eferbits->lma$inline lma x) (!ia32_eferbits->lma$inline lma x-equiv))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->lma-is-ia32_eferbits (equal (!ia32_eferbits->lma lma x) (change-ia32_eferbits x :lma lma)))
Theorem:
(defthm ia32_eferbits->lma-of-!ia32_eferbits->lma (b* ((?new-x (!ia32_eferbits->lma$inline lma x))) (equal (ia32_eferbits->lma new-x) (bfix lma))))
Theorem:
(defthm !ia32_eferbits->lma-equiv-under-mask (b* ((?new-x (!ia32_eferbits->lma$inline lma x))) (ia32_eferbits-equiv-under-mask new-x x -1025)))
Function:
(defun !ia32_eferbits->nxe$inline (nxe x) (declare (xargs :guard (and (bitp nxe) (ia32_eferbits-p x)))) (mbe :logic (b* ((nxe (mbe :logic (bfix nxe) :exec nxe)) (x (ia32_eferbits-fix x))) (part-install nxe x :width 1 :low 11)) :exec (the (unsigned-byte 12) (logior (the (unsigned-byte 12) (logand (the (unsigned-byte 12) x) (the (signed-byte 13) -2049))) (the (unsigned-byte 12) (ash (the (unsigned-byte 1) nxe) 11))))))
Theorem:
(defthm ia32_eferbits-p-of-!ia32_eferbits->nxe (b* ((new-x (!ia32_eferbits->nxe$inline nxe x))) (ia32_eferbits-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm !ia32_eferbits->nxe$inline-of-bfix-nxe (equal (!ia32_eferbits->nxe$inline (bfix nxe) x) (!ia32_eferbits->nxe$inline nxe x)))
Theorem:
(defthm !ia32_eferbits->nxe$inline-bit-equiv-congruence-on-nxe (implies (bit-equiv nxe nxe-equiv) (equal (!ia32_eferbits->nxe$inline nxe x) (!ia32_eferbits->nxe$inline nxe-equiv x))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->nxe$inline-of-ia32_eferbits-fix-x (equal (!ia32_eferbits->nxe$inline nxe (ia32_eferbits-fix x)) (!ia32_eferbits->nxe$inline nxe x)))
Theorem:
(defthm !ia32_eferbits->nxe$inline-ia32_eferbits-equiv-congruence-on-x (implies (ia32_eferbits-equiv x x-equiv) (equal (!ia32_eferbits->nxe$inline nxe x) (!ia32_eferbits->nxe$inline nxe x-equiv))) :rule-classes :congruence)
Theorem:
(defthm !ia32_eferbits->nxe-is-ia32_eferbits (equal (!ia32_eferbits->nxe nxe x) (change-ia32_eferbits x :nxe nxe)))
Theorem:
(defthm ia32_eferbits->nxe-of-!ia32_eferbits->nxe (b* ((?new-x (!ia32_eferbits->nxe$inline nxe x))) (equal (ia32_eferbits->nxe new-x) (bfix nxe))))
Theorem:
(defthm !ia32_eferbits->nxe-equiv-under-mask (b* ((?new-x (!ia32_eferbits->nxe$inline nxe x))) (ia32_eferbits-equiv-under-mask new-x x 2047)))
Function:
(defun ia32_eferbits-debug$inline (x) (declare (xargs :guard (ia32_eferbits-p x))) (b* (((ia32_eferbits x))) (cons (cons 'sce x.sce) (cons (cons 'res1 x.res1) (cons (cons 'lme x.lme) (cons (cons 'res2 x.res2) (cons (cons 'lma x.lma) (cons (cons 'nxe x.nxe) nil))))))))