Create a list of mv-nths applied to a term for a list of indices.
(atc-make-mv-nth-terms indices term) → terms
Function:
(defun atc-make-mv-nth-terms (indices term) (declare (xargs :guard (and (nat-listp indices) (pseudo-termp term)))) (let ((__function__ 'atc-make-mv-nth-terms)) (declare (ignorable __function__)) (cond ((endp indices) nil) (t (cons (cons 'mv-nth (cons (cons 'quote (cons (car indices) 'nil)) (cons (pseudo-term-fix term) 'nil))) (atc-make-mv-nth-terms (cdr indices) term))))))
Theorem:
(defthm pseudo-term-listp-of-atc-make-mv-nth-terms (b* ((terms (atc-make-mv-nth-terms indices term))) (pseudo-term-listp terms)) :rule-classes :rewrite)
Theorem:
(defthm len-of-atc-make-mv-nth-terms (b* ((?terms (atc-make-mv-nth-terms indices term))) (equal (len terms) (len indices))))