Lift atj-unmark-var to lists.
(atj-unmark-vars vars) → (mv unmarked-vars new?s)
Function:
(defun atj-unmark-vars (vars) (declare (xargs :guard (symbol-listp vars))) (let ((__function__ 'atj-unmark-vars)) (declare (ignorable __function__)) (b* (((when (endp vars)) (mv nil nil)) ((mv var new?) (atj-unmark-var (car vars))) ((mv vars new?s) (atj-unmark-vars (cdr vars)))) (mv (cons var vars) (cons new? new?s)))))
Theorem:
(defthm symbol-listp-of-atj-unmark-vars.unmarked-vars (b* (((mv ?unmarked-vars ?new?s) (atj-unmark-vars vars))) (symbol-listp unmarked-vars)) :rule-classes :rewrite)
Theorem:
(defthm boolean-listp-of-atj-unmark-vars.new?s (b* (((mv ?unmarked-vars ?new?s) (atj-unmark-vars vars))) (boolean-listp new?s)) :rule-classes :rewrite)
Theorem:
(defthm len-of-atj-unmark-vars.unmarked-vars (b* (((mv ?unmarked-vars ?new?s) (atj-unmark-vars vars))) (equal (len unmarked-vars) (len vars))))
Theorem:
(defthm len-of-atj-unmark-vars.new?s (b* (((mv ?unmarked-vars ?new?s) (atj-unmark-vars vars))) (equal (len new?s) (len vars))))