Function:
(defun vmsg-binary-concat (x1 x2) (declare (xargs :guard (and (or (not x1) (vl-msg-p x1)) (or (not x2) (vl-msg-p x2))))) (let ((__function__ 'vmsg-binary-concat)) (declare (ignorable __function__)) (if x1 (if x2 (vmsg "~@0~%~@1" x1 x2) (vl-msg-fix x1)) (and x2 (vl-msg-fix x2)))))
Theorem:
(defthm return-type-of-vmsg-binary-concat (b* ((msg (vmsg-binary-concat x1 x2))) (and (iff (vl-msg-p msg) (or x1 x2)) (iff msg (or x1 x2)))) :rule-classes :rewrite)