Fixing function for ia32_eferbits bit structures.
(ia32_eferbits-fix x) → fty::fixed
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))