Variants of the tail recursion transformation.
This is an ordinary std::defenum.
Function:
(defun tailrec-variantp (x) (declare (xargs :guard t)) (or (eq x ':assoc) (eq x ':assoc-alt) (eq x ':monoid) (eq x ':monoid-alt)))
Theorem: type-when-tailrec-variantp
(defthm type-when-tailrec-variantp (implies (tailrec-variantp x) (if (symbolp x) (if (not (equal x 't)) (not (equal x 'nil)) 'nil) 'nil)) :rule-classes :compound-recognizer)