Check redundancy, process the inputs, generated the events.
(defequal-fn name left left-present right right-present vars enable verify-guards left-to-right-name left-to-right-enable right-to-left-name right-to-left-enable print show-only call ctx state) → (mv erp event state)
Function:
(defun defequal-fn (name left left-present right right-present vars enable verify-guards left-to-right-name left-to-right-enable right-to-left-name right-to-left-enable print show-only call ctx state) (declare (xargs :stobjs (state))) (declare (xargs :guard (and (booleanp left-present) (booleanp right-present) (pseudo-event-formp call)))) (let ((__function__ 'defequal-fn)) (declare (ignorable __function__)) (b* ((expansion? (defequal-redundant? call (w state))) ((when expansion?) (b* (((run-when show-only) (cw "~x0~|" expansion?))) (cw "~%The call ~x0 is redundant.~%" call) (value '(value-triple :invisible)))) ((er (list x1...xn left-to-right right-to-left)) (defequal-process-inputs name left left-present right right-present vars enable verify-guards left-to-right-name left-to-right-enable right-to-left-name right-to-left-enable print show-only ctx state)) (event (defequal-gen-everything name left right x1...xn enable verify-guards left-to-right left-to-right-enable right-to-left right-to-left-enable print show-only call))) (value event))))