Check if a type is a real floating type [C17:6.2.5/10].
Function:
(defun type-real-floatingp (type) (declare (xargs :guard (typep type))) (and (member-eq (type-kind type) '(:float :double :ldouble)) t))
Theorem:
(defthm booleanp-of-type-real-floatingp (b* ((yes/no (type-real-floatingp type))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm type-real-floatingp-when-type-kind-syntaxp (implies (and (equal (type-kind type) kind) (syntaxp (quotep kind))) (equal (type-real-floatingp type) (and (member-equal kind '(:float :double :ldouble)) t))))
Theorem:
(defthm type-real-floatingp-of-type-fix-type (equal (type-real-floatingp (type-fix type)) (type-real-floatingp type)))
Theorem:
(defthm type-real-floatingp-type-equiv-congruence-on-type (implies (type-equiv type type-equiv) (equal (type-real-floatingp type) (type-real-floatingp type-equiv))) :rule-classes :congruence)