Check if a type is a primitive type.
Function:
(defun type-primitivep (type) (declare (xargs :guard (typep type))) (let ((__function__ 'type-primitivep)) (declare (ignorable __function__)) (or (type-arithmeticp type) (type-case type :bool) (type-case type :address) (type-case type :string))))
Theorem:
(defthm booleanp-of-type-primitivep (b* ((yes/no (type-primitivep type))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm type-primitivep-of-type-fix-type (equal (type-primitivep (type-fix type)) (type-primitivep type)))
Theorem:
(defthm type-primitivep-type-equiv-congruence-on-type (implies (type-equiv type type-equiv) (equal (type-primitivep type) (type-primitivep type-equiv))) :rule-classes :congruence)