Check redundancy, process the inputs, and generate the event.
(schemalg-fn old schema schema? list-input list-input? oset-input oset-input? cdr-output cdr-output? tail-output tail-output? fvar-0-name fvar-0-name? fvar-1-name fvar-1-name? fvar-2-name fvar-2-name? algo-name algo-enable spec-0-name spec-0-name? spec-0-enable spec-0-enable? spec-1-name spec-1-name? spec-1-enable spec-1-enable? spec-2-name spec-2-name? spec-2-enable spec-2-enable? equal-algo-name equal-algo-enable new-name new-enable old-if-new-name old-if-new-name? old-if-new-enable old-if-new-enable? verify-guards print show-only call ctx state) → (mv erp event state)
Function:
(defun schemalg-fn (old schema schema? list-input list-input? oset-input oset-input? cdr-output cdr-output? tail-output tail-output? fvar-0-name fvar-0-name? fvar-1-name fvar-1-name? fvar-2-name fvar-2-name? algo-name algo-enable spec-0-name spec-0-name? spec-0-enable spec-0-enable? spec-1-name spec-1-name? spec-1-enable spec-1-enable? spec-2-name spec-2-name? spec-2-enable spec-2-enable? equal-algo-name equal-algo-enable new-name new-enable old-if-new-name old-if-new-name? old-if-new-enable old-if-new-enable? verify-guards print show-only call ctx state) (declare (xargs :stobjs (state))) (declare (xargs :guard (and (booleanp schema?) (booleanp list-input?) (booleanp oset-input?) (booleanp cdr-output?) (booleanp tail-output?) (booleanp fvar-0-name?) (booleanp fvar-1-name?) (booleanp fvar-2-name?) (booleanp spec-0-name?) (booleanp spec-0-enable?) (booleanp spec-1-name?) (booleanp spec-1-enable?) (booleanp spec-2-name?) (booleanp spec-2-enable?) (booleanp old-if-new-name?) (booleanp old-if-new-enable?) (pseudo-event-formp call)))) (let ((__function__ 'schemalg-fn)) (declare (ignorable __function__)) (b* ((encapsulate? (previous-transformation-expansion call (w state))) ((when encapsulate?) (b* (((run-when show-only) (cw "~x0~|" encapsulate?))) (cw "~%The transformation ~x0 is redundant.~%" call) (value '(value-triple :invisible)))) ((er (list old ??f x-x1...xn x-a1...am & iorel x y ??g ??g0 ??g1 ??h ??f1...?fp algo spec-0 spec-1 spec-2 equal-algo new new-enable old-if-new old-if-new-enable verify-guards names-to-avoid)) (schemalg-process-inputs old schema schema? list-input list-input? oset-input oset-input? cdr-output cdr-output? tail-output tail-output? fvar-0-name fvar-0-name? fvar-1-name fvar-1-name? fvar-2-name fvar-2-name? algo-name algo-enable spec-0-name spec-0-name? spec-0-enable spec-0-enable? spec-1-name spec-1-name? spec-1-enable spec-1-enable? spec-2-name spec-2-name? spec-2-enable spec-2-enable? equal-algo-name equal-algo-enable new-name new-enable old-if-new-name old-if-new-name? old-if-new-enable old-if-new-enable? verify-guards print show-only ctx state)) (event (schemalg-gen-everything old ?f x-x1...xn x-a1...am x y iorel schema ?g ?g0 ?g1 ?h algo algo-enable spec-0 spec-0-enable spec-1 spec-1-enable spec-2 spec-2-enable equal-algo equal-algo-enable new new-enable old-if-new old-if-new-enable verify-guards print show-only call names-to-avoid (w state)))) (value event))))