• Top
  • Sv::vl-moddb.lisp

Vl-fixup-wide-gate-inputs

(vl-fixup-wide-gate-inputs x) maps vl-fixup-wide-gate-input across a list.

Signature
(vl-fixup-wide-gate-inputs x) → fixed-inputs
Arguments
x — Guard (sv::svexlist-p x).
Returns
fixed-inputs — Type (sv::svexlist-p fixed-inputs).

This is an ordinary defprojection.

Definitions and Theorems

Function: vl-fixup-wide-gate-inputs-exec

(defun vl-fixup-wide-gate-inputs-exec (x acc)
  (declare (xargs :guard (sv::svexlist-p x)))
  (declare (xargs :guard t))
  (let ((__function__ 'vl-fixup-wide-gate-inputs-exec))
    (declare (ignorable __function__))
    (if (consp x)
        (vl-fixup-wide-gate-inputs-exec
             (cdr x)
             (cons (vl-fixup-wide-gate-input (car x))
                   acc))
      acc)))

Function: vl-fixup-wide-gate-inputs-nrev

(defun vl-fixup-wide-gate-inputs-nrev (x nrev)
  (declare (xargs :stobjs (nrev)))
  (declare (xargs :guard (sv::svexlist-p x)))
  (declare (xargs :guard t))
  (let ((__function__ 'vl-fixup-wide-gate-inputs-nrev))
    (declare (ignorable __function__))
    (if (atom x)
        (nrev-fix nrev)
      (let ((nrev (nrev-push (vl-fixup-wide-gate-input (car x))
                             nrev)))
        (vl-fixup-wide-gate-inputs-nrev (cdr x)
                                        nrev)))))

Function: vl-fixup-wide-gate-inputs

(defun vl-fixup-wide-gate-inputs (x)
 (declare (xargs :guard (sv::svexlist-p x)))
 (declare (xargs :guard t))
 (let ((__function__ 'vl-fixup-wide-gate-inputs))
  (declare (ignorable __function__))
  (mbe
     :logic
     (if (consp x)
         (cons (vl-fixup-wide-gate-input (car x))
               (vl-fixup-wide-gate-inputs (cdr x)))
       nil)
     :exec
     (if (atom x)
         nil
       (with-local-nrev (vl-fixup-wide-gate-inputs-nrev x nrev))))))

Theorem: svexlist-p-of-vl-fixup-wide-gate-inputs

(defthm svexlist-p-of-vl-fixup-wide-gate-inputs
  (b* ((fixed-inputs (vl-fixup-wide-gate-inputs x)))
    (sv::svexlist-p fixed-inputs))
  :rule-classes :rewrite)

Theorem: vl-fixup-wide-gate-inputs-of-svexlist-fix-x

(defthm vl-fixup-wide-gate-inputs-of-svexlist-fix-x
  (equal (vl-fixup-wide-gate-inputs (sv::svexlist-fix x))
         (vl-fixup-wide-gate-inputs x)))

Theorem: vl-fixup-wide-gate-inputs-svexlist-equiv-congruence-on-x

(defthm vl-fixup-wide-gate-inputs-svexlist-equiv-congruence-on-x
  (implies (sv::svexlist-equiv x x-equiv)
           (equal (vl-fixup-wide-gate-inputs x)
                  (vl-fixup-wide-gate-inputs x-equiv)))
  :rule-classes :congruence)

Theorem: vl-fixup-wide-gate-inputs-of-update-nth

(defthm vl-fixup-wide-gate-inputs-of-update-nth
 (implies
  (<= (nfix acl2::n) (len acl2::x))
  (equal
    (vl-fixup-wide-gate-inputs (update-nth acl2::n acl2::v acl2::x))
    (update-nth acl2::n
                (vl-fixup-wide-gate-input acl2::v)
                (vl-fixup-wide-gate-inputs acl2::x))))
 :rule-classes ((:rewrite)))

Theorem: vl-fixup-wide-gate-inputs-of-revappend

(defthm vl-fixup-wide-gate-inputs-of-revappend
  (equal (vl-fixup-wide-gate-inputs (revappend acl2::x acl2::y))
         (revappend (vl-fixup-wide-gate-inputs acl2::x)
                    (vl-fixup-wide-gate-inputs acl2::y)))
  :rule-classes ((:rewrite)))

Theorem: nthcdr-of-vl-fixup-wide-gate-inputs

(defthm nthcdr-of-vl-fixup-wide-gate-inputs
  (equal (nthcdr acl2::n
                 (vl-fixup-wide-gate-inputs acl2::x))
         (vl-fixup-wide-gate-inputs (nthcdr acl2::n acl2::x)))
  :rule-classes ((:rewrite)))

Theorem: nth-of-vl-fixup-wide-gate-inputs

(defthm nth-of-vl-fixup-wide-gate-inputs
  (equal (nth acl2::n
              (vl-fixup-wide-gate-inputs acl2::x))
         (and (< (nfix acl2::n) (len acl2::x))
              (vl-fixup-wide-gate-input (nth acl2::n acl2::x))))
  :rule-classes ((:rewrite)))

Theorem: vl-fixup-wide-gate-inputs-of-take

(defthm vl-fixup-wide-gate-inputs-of-take
  (implies (<= (nfix acl2::n) (len acl2::x))
           (equal (vl-fixup-wide-gate-inputs (take acl2::n acl2::x))
                  (take acl2::n
                        (vl-fixup-wide-gate-inputs acl2::x))))
  :rule-classes ((:rewrite)))

Theorem: set-equiv-congruence-over-vl-fixup-wide-gate-inputs

(defthm set-equiv-congruence-over-vl-fixup-wide-gate-inputs
  (implies (set-equiv acl2::x acl2::y)
           (set-equiv (vl-fixup-wide-gate-inputs acl2::x)
                      (vl-fixup-wide-gate-inputs acl2::y)))
  :rule-classes ((:congruence)))

Theorem: subsetp-of-vl-fixup-wide-gate-inputs-when-subsetp

(defthm subsetp-of-vl-fixup-wide-gate-inputs-when-subsetp
  (implies (subsetp acl2::x acl2::y)
           (subsetp (vl-fixup-wide-gate-inputs acl2::x)
                    (vl-fixup-wide-gate-inputs acl2::y)))
  :rule-classes ((:rewrite)))

Theorem: member-of-vl-fixup-wide-gate-input-in-vl-fixup-wide-gate-inputs

(defthm
    member-of-vl-fixup-wide-gate-input-in-vl-fixup-wide-gate-inputs
  (implies (member acl2::k acl2::x)
           (member (vl-fixup-wide-gate-input acl2::k)
                   (vl-fixup-wide-gate-inputs acl2::x)))
  :rule-classes ((:rewrite)))

Theorem: vl-fixup-wide-gate-inputs-nrev-removal

(defthm vl-fixup-wide-gate-inputs-nrev-removal
  (equal (vl-fixup-wide-gate-inputs-nrev acl2::x nrev)
         (append nrev
                 (vl-fixup-wide-gate-inputs acl2::x)))
  :rule-classes ((:rewrite)))

Theorem: vl-fixup-wide-gate-inputs-exec-removal

(defthm vl-fixup-wide-gate-inputs-exec-removal
  (equal (vl-fixup-wide-gate-inputs-exec acl2::x acl2::acc)
         (revappend (vl-fixup-wide-gate-inputs acl2::x)
                    acl2::acc))
  :rule-classes ((:rewrite)))

Theorem: vl-fixup-wide-gate-inputs-of-rev

(defthm vl-fixup-wide-gate-inputs-of-rev
  (equal (vl-fixup-wide-gate-inputs (rev acl2::x))
         (rev (vl-fixup-wide-gate-inputs acl2::x)))
  :rule-classes ((:rewrite)))

Theorem: vl-fixup-wide-gate-inputs-of-list-fix

(defthm vl-fixup-wide-gate-inputs-of-list-fix
  (equal (vl-fixup-wide-gate-inputs (list-fix acl2::x))
         (vl-fixup-wide-gate-inputs acl2::x))
  :rule-classes ((:rewrite)))

Theorem: vl-fixup-wide-gate-inputs-of-append

(defthm vl-fixup-wide-gate-inputs-of-append
  (equal (vl-fixup-wide-gate-inputs (append acl2::a acl2::b))
         (append (vl-fixup-wide-gate-inputs acl2::a)
                 (vl-fixup-wide-gate-inputs acl2::b)))
  :rule-classes ((:rewrite)))

Theorem: cdr-of-vl-fixup-wide-gate-inputs

(defthm cdr-of-vl-fixup-wide-gate-inputs
  (equal (cdr (vl-fixup-wide-gate-inputs acl2::x))
         (vl-fixup-wide-gate-inputs (cdr acl2::x)))
  :rule-classes ((:rewrite)))

Theorem: car-of-vl-fixup-wide-gate-inputs

(defthm car-of-vl-fixup-wide-gate-inputs
  (equal (car (vl-fixup-wide-gate-inputs acl2::x))
         (and (consp acl2::x)
              (vl-fixup-wide-gate-input (car acl2::x))))
  :rule-classes ((:rewrite)))

Theorem: vl-fixup-wide-gate-inputs-under-iff

(defthm vl-fixup-wide-gate-inputs-under-iff
  (iff (vl-fixup-wide-gate-inputs acl2::x)
       (consp acl2::x))
  :rule-classes ((:rewrite)))

Theorem: consp-of-vl-fixup-wide-gate-inputs

(defthm consp-of-vl-fixup-wide-gate-inputs
  (equal (consp (vl-fixup-wide-gate-inputs acl2::x))
         (consp acl2::x))
  :rule-classes ((:rewrite)))

Theorem: len-of-vl-fixup-wide-gate-inputs

(defthm len-of-vl-fixup-wide-gate-inputs
  (equal (len (vl-fixup-wide-gate-inputs acl2::x))
         (len acl2::x))
  :rule-classes ((:rewrite)))

Theorem: true-listp-of-vl-fixup-wide-gate-inputs

(defthm true-listp-of-vl-fixup-wide-gate-inputs
  (true-listp (vl-fixup-wide-gate-inputs acl2::x))
  :rule-classes :type-prescription)

Theorem: vl-fixup-wide-gate-inputs-when-not-consp

(defthm vl-fixup-wide-gate-inputs-when-not-consp
  (implies (not (consp acl2::x))
           (equal (vl-fixup-wide-gate-inputs acl2::x)
                  nil))
  :rule-classes ((:rewrite)))

Theorem: vl-fixup-wide-gate-inputs-of-cons

(defthm vl-fixup-wide-gate-inputs-of-cons
  (equal (vl-fixup-wide-gate-inputs (cons acl2::a acl2::b))
         (cons (vl-fixup-wide-gate-input acl2::a)
               (vl-fixup-wide-gate-inputs acl2::b)))
  :rule-classes ((:rewrite)))

Theorem: vars-of-vl-fixup-wide-gate-inputs

(defthm vars-of-vl-fixup-wide-gate-inputs
  (b* ((?fixed-inputs (vl-fixup-wide-gate-inputs x)))
    (implies (not (member v (sv::svexlist-vars x)))
             (not (member v (sv::svexlist-vars fixed-inputs))))))