Check if a type is an arithmetic type.
Function:
(defun type-arithmeticp (type) (declare (xargs :guard (typep type))) (let ((__function__ 'type-arithmeticp)) (declare (ignorable __function__)) (or (type-integerp type) (type-case type :field) (type-case type :group) (type-case type :scalar))))
Theorem:
(defthm booleanp-of-type-arithmeticp (b* ((yes/no (type-arithmeticp type))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm type-arithmeticp-of-type-fix-type (equal (type-arithmeticp (type-fix type)) (type-arithmeticp type)))
Theorem:
(defthm type-arithmeticp-type-equiv-congruence-on-type (implies (type-equiv type type-equiv) (equal (type-arithmeticp type) (type-arithmeticp type-equiv))) :rule-classes :congruence)