(vl-make-idexpr-list x finalwidth finaltype) maps vl-idexpr across a list.
(vl-make-idexpr-list x finalwidth finaltype) → exprs
Each expression is given the specified
Function:
(defun vl-make-idexpr-list-exec (x finalwidth finaltype acc) (declare (xargs :guard (and (string-listp x) (maybe-natp finalwidth) (vl-maybe-exprtype-p finaltype)))) (declare (xargs :guard t)) (let ((__function__ 'vl-make-idexpr-list-exec)) (declare (ignorable __function__)) (if (consp x) (vl-make-idexpr-list-exec (cdr x) finalwidth finaltype (cons (vl-idexpr (car x) finalwidth finaltype) acc)) acc)))
Function:
(defun vl-make-idexpr-list-nrev (x finalwidth finaltype nrev) (declare (xargs :stobjs (nrev))) (declare (xargs :guard (and (string-listp x) (maybe-natp finalwidth) (vl-maybe-exprtype-p finaltype)))) (declare (xargs :guard t)) (let ((__function__ 'vl-make-idexpr-list-nrev)) (declare (ignorable __function__)) (if (atom x) (nrev-fix nrev) (let ((nrev (nrev-push (vl-idexpr (car x) finalwidth finaltype) nrev))) (vl-make-idexpr-list-nrev (cdr x) finalwidth finaltype nrev)))))
Function:
(defun vl-make-idexpr-list (x finalwidth finaltype) (declare (xargs :guard (and (string-listp x) (maybe-natp finalwidth) (vl-maybe-exprtype-p finaltype)))) (declare (xargs :guard t)) (let ((__function__ 'vl-make-idexpr-list)) (declare (ignorable __function__)) (mbe :logic (if (consp x) (cons (vl-idexpr (car x) finalwidth finaltype) (vl-make-idexpr-list (cdr x) finalwidth finaltype)) nil) :exec (if (atom x) nil (with-local-nrev (vl-make-idexpr-list-nrev x finalwidth finaltype nrev))))))
Theorem:
(defthm return-type-of-vl-make-idexpr-list (b* ((exprs (vl-make-idexpr-list x finalwidth finaltype))) (and (vl-exprlist-p exprs) (vl-idexprlist-p exprs))) :rule-classes :rewrite)
Theorem:
(defthm vl-make-idexpr-list-of-string-list-fix-x (equal (vl-make-idexpr-list (string-list-fix x) finalwidth finaltype) (vl-make-idexpr-list x finalwidth finaltype)))
Theorem:
(defthm vl-make-idexpr-list-string-list-equiv-congruence-on-x (implies (str::string-list-equiv x x-equiv) (equal (vl-make-idexpr-list x finalwidth finaltype) (vl-make-idexpr-list x-equiv finalwidth finaltype))) :rule-classes :congruence)
Theorem:
(defthm vl-make-idexpr-list-of-maybe-natp-fix-finalwidth (equal (vl-make-idexpr-list x (maybe-natp-fix finalwidth) finaltype) (vl-make-idexpr-list x finalwidth finaltype)))
Theorem:
(defthm vl-make-idexpr-list-maybe-nat-equiv-congruence-on-finalwidth (implies (acl2::maybe-nat-equiv finalwidth finalwidth-equiv) (equal (vl-make-idexpr-list x finalwidth finaltype) (vl-make-idexpr-list x finalwidth-equiv finaltype))) :rule-classes :congruence)
Theorem:
(defthm vl-make-idexpr-list-of-vl-maybe-exprtype-fix-finaltype (equal (vl-make-idexpr-list x finalwidth (vl-maybe-exprtype-fix finaltype)) (vl-make-idexpr-list x finalwidth finaltype)))
Theorem:
(defthm vl-make-idexpr-list-vl-maybe-exprtype-equiv-congruence-on-finaltype (implies (vl-maybe-exprtype-equiv finaltype finaltype-equiv) (equal (vl-make-idexpr-list x finalwidth finaltype) (vl-make-idexpr-list x finalwidth finaltype-equiv))) :rule-classes :congruence)
Theorem:
(defthm vl-make-idexpr-list-of-update-nth (implies (<= (nfix acl2::n) (len acl2::x)) (equal (vl-make-idexpr-list (update-nth acl2::n acl2::v acl2::x) finalwidth finaltype) (update-nth acl2::n (vl-idexpr acl2::v finalwidth finaltype) (vl-make-idexpr-list acl2::x finalwidth finaltype)))) :rule-classes ((:rewrite)))
Theorem:
(defthm vl-make-idexpr-list-of-revappend (equal (vl-make-idexpr-list (revappend acl2::x acl2::y) finalwidth finaltype) (revappend (vl-make-idexpr-list acl2::x finalwidth finaltype) (vl-make-idexpr-list acl2::y finalwidth finaltype))) :rule-classes ((:rewrite)))
Theorem:
(defthm nthcdr-of-vl-make-idexpr-list (equal (nthcdr acl2::n (vl-make-idexpr-list acl2::x finalwidth finaltype)) (vl-make-idexpr-list (nthcdr acl2::n acl2::x) finalwidth finaltype)) :rule-classes ((:rewrite)))
Theorem:
(defthm nth-of-vl-make-idexpr-list (equal (nth acl2::n (vl-make-idexpr-list acl2::x finalwidth finaltype)) (and (< (nfix acl2::n) (len acl2::x)) (vl-idexpr (nth acl2::n acl2::x) finalwidth finaltype))) :rule-classes ((:rewrite)))
Theorem:
(defthm vl-make-idexpr-list-nrev-removal (equal (vl-make-idexpr-list-nrev acl2::x finalwidth finaltype nrev) (append nrev (vl-make-idexpr-list acl2::x finalwidth finaltype))) :rule-classes ((:rewrite)))
Theorem:
(defthm vl-make-idexpr-list-exec-removal (equal (vl-make-idexpr-list-exec acl2::x finalwidth finaltype acl2::acc) (revappend (vl-make-idexpr-list acl2::x finalwidth finaltype) acl2::acc)) :rule-classes ((:rewrite)))
Theorem:
(defthm vl-make-idexpr-list-of-take (implies (<= (nfix acl2::n) (len acl2::x)) (equal (vl-make-idexpr-list (take acl2::n acl2::x) finalwidth finaltype) (take acl2::n (vl-make-idexpr-list acl2::x finalwidth finaltype)))) :rule-classes ((:rewrite)))
Theorem:
(defthm set-equiv-congruence-over-vl-make-idexpr-list (implies (set-equiv acl2::x acl2::y) (set-equiv (vl-make-idexpr-list acl2::x finalwidth finaltype) (vl-make-idexpr-list acl2::y finalwidth finaltype))) :rule-classes ((:congruence)))
Theorem:
(defthm subsetp-of-vl-make-idexpr-list-when-subsetp (implies (subsetp acl2::x acl2::y) (subsetp (vl-make-idexpr-list acl2::x finalwidth finaltype) (vl-make-idexpr-list acl2::y finalwidth finaltype))) :rule-classes ((:rewrite)))
Theorem:
(defthm member-of-vl-idexpr-in-vl-make-idexpr-list (implies (member acl2::k acl2::x) (member (vl-idexpr acl2::k finalwidth finaltype) (vl-make-idexpr-list acl2::x finalwidth finaltype))) :rule-classes ((:rewrite)))
Theorem:
(defthm vl-make-idexpr-list-of-rev (equal (vl-make-idexpr-list (rev acl2::x) finalwidth finaltype) (rev (vl-make-idexpr-list acl2::x finalwidth finaltype))) :rule-classes ((:rewrite)))
Theorem:
(defthm vl-make-idexpr-list-of-list-fix (equal (vl-make-idexpr-list (list-fix acl2::x) finalwidth finaltype) (vl-make-idexpr-list acl2::x finalwidth finaltype)) :rule-classes ((:rewrite)))
Theorem:
(defthm vl-make-idexpr-list-of-append (equal (vl-make-idexpr-list (append acl2::a acl2::b) finalwidth finaltype) (append (vl-make-idexpr-list acl2::a finalwidth finaltype) (vl-make-idexpr-list acl2::b finalwidth finaltype))) :rule-classes ((:rewrite)))
Theorem:
(defthm cdr-of-vl-make-idexpr-list (equal (cdr (vl-make-idexpr-list acl2::x finalwidth finaltype)) (vl-make-idexpr-list (cdr acl2::x) finalwidth finaltype)) :rule-classes ((:rewrite)))
Theorem:
(defthm car-of-vl-make-idexpr-list (equal (car (vl-make-idexpr-list acl2::x finalwidth finaltype)) (and (consp acl2::x) (vl-idexpr (car acl2::x) finalwidth finaltype))) :rule-classes ((:rewrite)))
Theorem:
(defthm vl-make-idexpr-list-under-iff (iff (vl-make-idexpr-list acl2::x finalwidth finaltype) (consp acl2::x)) :rule-classes ((:rewrite)))
Theorem:
(defthm consp-of-vl-make-idexpr-list (equal (consp (vl-make-idexpr-list acl2::x finalwidth finaltype)) (consp acl2::x)) :rule-classes ((:rewrite)))
Theorem:
(defthm len-of-vl-make-idexpr-list (equal (len (vl-make-idexpr-list acl2::x finalwidth finaltype)) (len acl2::x)) :rule-classes ((:rewrite)))
Theorem:
(defthm true-listp-of-vl-make-idexpr-list (true-listp (vl-make-idexpr-list acl2::x finalwidth finaltype)) :rule-classes :type-prescription)
Theorem:
(defthm vl-make-idexpr-list-when-not-consp (implies (not (consp acl2::x)) (equal (vl-make-idexpr-list acl2::x finalwidth finaltype) nil)) :rule-classes ((:rewrite)))
Theorem:
(defthm vl-make-idexpr-list-of-cons (equal (vl-make-idexpr-list (cons acl2::a acl2::b) finalwidth finaltype) (cons (vl-idexpr acl2::a finalwidth finaltype) (vl-make-idexpr-list acl2::b finalwidth finaltype))) :rule-classes ((:rewrite)))
Theorem:
(defthm vl-idexprlist->names-of-vl-make-idexpr-list (implies (force (string-listp x)) (equal (vl-idexprlist->names (vl-make-idexpr-list x finalwidth finaltype)) x)))