Function:
(defun vl-atom-toohard (x) (declare (xargs :guard (vl-expr-p x))) (declare (xargs :guard (vl-atom-p x))) (let ((__function__ 'vl-atom-toohard)) (declare (ignorable __function__)) (b* ((x (vl-expr-fix x)) (guts (vl-atom->guts x)) ((when (or (vl-fast-id-p guts) (vl-fast-constint-p guts) (vl-fast-weirdint-p guts))) nil)) x)))
Theorem:
(defthm return-type-of-vl-atom-toohard (b* ((ans (vl-atom-toohard x))) (equal (vl-expr-p ans) (if ans t nil))) :rule-classes :rewrite)
Theorem:
(defthm vl-atom-toohard-of-vl-expr-fix-x (equal (vl-atom-toohard (vl-expr-fix x)) (vl-atom-toohard x)))
Theorem:
(defthm vl-atom-toohard-vl-expr-equiv-congruence-on-x (implies (vl-expr-equiv x x-equiv) (equal (vl-atom-toohard x) (vl-atom-toohard x-equiv))) :rule-classes :congruence)