(bool-fix x) is a fixing function for Booleans; it coerces any
non-
BOZO: could consider putting a booleanp guard here.
Function:
(defun bool-fix$inline (x) (declare (xargs :guard t)) (and x t))
Theorem:
(defthm booleanp-of-bool-fix (booleanp (bool-fix x)) :rule-classes :type-prescription)
Theorem:
(defthm bool-fix-when-booleanp (implies (booleanp x) (equal (bool-fix x) x)))
Theorem:
(defthm __deffixtype-iff-means-equal-of-bool-fix (implies (iff x y) (equal (bool-fix x) (bool-fix y))) :rule-classes nil)
Theorem:
(defthm iff-implies-equal-bool-fix-1 (implies (iff x x-equiv) (equal (bool-fix x) (bool-fix x-equiv))) :rule-classes (:congruence))
Theorem:
(defthm bool-fix-under-iff (iff (bool-fix x) x))