Lift atj-process-test-input to lists.
(atj-process-test-inputs inputs types fn call deep$ guards$ ctx state) → (mv erp test-inputs state)
This is used to process all the inputs of a test.
Function:
(defun atj-process-test-inputs (inputs types fn call deep$ guards$ ctx state) (declare (xargs :stobjs (state))) (declare (xargs :guard (and (pseudo-term-listp inputs) (atj-type-listp types) (symbolp fn) (pseudo-termp call) (booleanp deep$) (booleanp guards$) (ctxp ctx)))) (declare (xargs :guard (= (len types) (len inputs)))) (let ((__function__ 'atj-process-test-inputs)) (declare (ignorable __function__)) (b* (((when (endp inputs)) (value nil)) ((mv erp test-input state) (atj-process-test-input (car inputs) (car types) fn call deep$ guards$ ctx state)) ((when erp) (mv t nil state)) ((er test-inputs) (atj-process-test-inputs (cdr inputs) (cdr types) fn call deep$ guards$ ctx state))) (value (cons test-input test-inputs)))))
Theorem:
(defthm atj-test-value-listp-of-atj-process-test-inputs.test-inputs (b* (((mv ?erp ?test-inputs acl2::?state) (atj-process-test-inputs inputs types fn call deep$ guards$ ctx state))) (atj-test-value-listp test-inputs)) :rule-classes :rewrite)