Generate the concatenation of
all the
(expdata-gen-all-back-guard-instances-to-mv-nth old$ rec-calls arg-surjmaps res-surjmaps new$ wrld) → lemma-instances
Function:
(defun expdata-gen-all-back-guard-instances-to-mv-nth (old$ rec-calls arg-surjmaps res-surjmaps new$ wrld) (declare (xargs :guard (and (symbolp old$) (pseudo-tests-and-call-listp rec-calls) (expdata-symbol-surjmap-alistp arg-surjmaps) (expdata-pos-surjmap-alistp res-surjmaps) (symbolp new$) (plist-worldp wrld)))) (let ((__function__ 'expdata-gen-all-back-guard-instances-to-mv-nth)) (declare (ignorable __function__)) (b* (((when (endp rec-calls)) nil) (tests-and-call (car rec-calls)) (rec-call (access tests-and-call tests-and-call :call)) (updates (fargs rec-call)) (x1...xn (formals old$ wrld)) (back-of-x1...xn (expdata-gen-back-of-terms x1...xn arg-surjmaps)) (updates-back (subcor-var-lst x1...xn back-of-x1...xn updates)) (forth-updates-back (expdata-gen-forth-of-terms updates-back arg-surjmaps)) (new-forth-updates-back (fcons-term new$ forth-updates-back)) (instances (expdata-gen-back-guard-instances-to-mv-nth new-forth-updates-back res-surjmaps wrld)) (more-instances (expdata-gen-all-back-guard-instances-to-mv-nth old$ (cdr rec-calls) arg-surjmaps res-surjmaps new$ wrld))) (append instances more-instances))))
Theorem:
(defthm true-list-listp-of-expdata-gen-all-back-guard-instances-to-mv-nth (b* ((lemma-instances (expdata-gen-all-back-guard-instances-to-mv-nth old$ rec-calls arg-surjmaps res-surjmaps new$ wrld))) (true-list-listp lemma-instances)) :rule-classes :rewrite)