Recognize
(maybe-msgp x) → yes/no
Function:
(defun maybe-msgp (x) (declare (xargs :guard t)) (let ((__function__ 'maybe-msgp)) (declare (ignorable __function__)) (or (msgp x) (null x))))
Theorem:
(defthm booleanp-of-maybe-msgp (b* ((yes/no (maybe-msgp x))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm maybe-msgp-when-msgp (implies (msgp x) (maybe-msgp x)))
Theorem:
(defthm maybe-msgp-of-nil (maybe-msgp nil))