• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
        • Symbolic-test-vectors
        • Esim-primitives
        • E-conversion
        • Esim-steps
        • Patterns
        • Mod-internal-paths
        • Defmodules
        • Esim-simplify-update-fns
        • Esim-tutorial
        • Esim-vl
          • Esim-vl-find-io
          • Esim-vl-iopattern-p
            • Esim-vl-iopattern-entrylist->basenames
              • Esim-vl-iopattern-entry-p
              • Esim-vl-iopattern-entrylist-p
              • Esim-vl-iopattern-entry->basename
              • All-equalp-of-vl-emodwirelist->basenames
            • Esim-vl-designwires
            • Esim-vl-wirealist
            • Esim-vl-annotations
        • Vl2014
        • Sv
        • Vwsim
        • Fgl
        • Vl
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Testing-utilities
      • Math
    • Esim-vl-iopattern-p

    Esim-vl-iopattern-entrylist->basenames

    (esim-vl-iopattern-entrylist->basenames x) maps esim-vl-iopattern-entry->basename across a list.

    Signature
    (esim-vl-iopattern-entrylist->basenames x) → *

    This is an ordinary defprojection.

    Definitions and Theorems

    Function: esim-vl-iopattern-entrylist->basenames-exec

    (defun
      esim-vl-iopattern-entrylist->basenames-exec
      (x acc)
      (declare (xargs :guard (esim-vl-iopattern-entrylist-p x)))
      (let ((__function__ 'esim-vl-iopattern-entrylist->basenames-exec))
           (declare (ignorable __function__))
           (if (consp x)
               (esim-vl-iopattern-entrylist->basenames-exec
                    (cdr x)
                    (cons (esim-vl-iopattern-entry->basename (car x))
                          acc))
               acc)))

    Function: esim-vl-iopattern-entrylist->basenames-nrev

    (defun
     esim-vl-iopattern-entrylist->basenames-nrev
     (x nrev)
     (declare (xargs :stobjs (nrev)))
     (declare (xargs :guard (esim-vl-iopattern-entrylist-p x)))
     (let
      ((__function__ 'esim-vl-iopattern-entrylist->basenames-nrev))
      (declare (ignorable __function__))
      (if
       (atom x)
       (nrev-fix nrev)
       (let
           ((nrev (nrev-push (esim-vl-iopattern-entry->basename (car x))
                             nrev)))
           (esim-vl-iopattern-entrylist->basenames-nrev (cdr x)
                                                        nrev)))))

    Function: esim-vl-iopattern-entrylist->basenames

    (defun
     esim-vl-iopattern-entrylist->basenames
     (x)
     (declare (xargs :guard (esim-vl-iopattern-entrylist-p x)))
     (let
      ((__function__ 'esim-vl-iopattern-entrylist->basenames))
      (declare (ignorable __function__))
      (mbe
       :logic
       (if (consp x)
           (cons (esim-vl-iopattern-entry->basename (car x))
                 (esim-vl-iopattern-entrylist->basenames (cdr x)))
           nil)
       :exec
       (if
          (atom x)
          nil
          (with-local-nrev
               (esim-vl-iopattern-entrylist->basenames-nrev x nrev))))))

    Theorem: esim-vl-iopattern-entrylist->basenames-nrev-removal

    (defthm
       esim-vl-iopattern-entrylist->basenames-nrev-removal
       (equal (esim-vl-iopattern-entrylist->basenames-nrev acl2::x nrev)
              (append nrev
                      (esim-vl-iopattern-entrylist->basenames acl2::x)))
       :rule-classes ((:rewrite)))

    Theorem: esim-vl-iopattern-entrylist->basenames-exec-removal

    (defthm
     esim-vl-iopattern-entrylist->basenames-exec-removal
     (equal
         (esim-vl-iopattern-entrylist->basenames-exec acl2::x acl2::acc)
         (revappend (esim-vl-iopattern-entrylist->basenames acl2::x)
                    acl2::acc))
     :rule-classes ((:rewrite)))

    Theorem: esim-vl-iopattern-entrylist->basenames-of-take

    (defthm
     esim-vl-iopattern-entrylist->basenames-of-take
     (implies
      (<= (nfix acl2::n) (len acl2::x))
      (equal
         (esim-vl-iopattern-entrylist->basenames (take acl2::n acl2::x))
         (take acl2::n
               (esim-vl-iopattern-entrylist->basenames acl2::x))))
     :rule-classes ((:rewrite)))

    Theorem: set-equiv-congruence-over-esim-vl-iopattern-entrylist->basenames

    (defthm
      set-equiv-congruence-over-esim-vl-iopattern-entrylist->basenames
      (implies
           (set-equiv acl2::x acl2::y)
           (set-equiv (esim-vl-iopattern-entrylist->basenames acl2::x)
                      (esim-vl-iopattern-entrylist->basenames acl2::y)))
      :rule-classes ((:congruence)))

    Theorem: subsetp-of-esim-vl-iopattern-entrylist->basenames-when-subsetp

    (defthm
        subsetp-of-esim-vl-iopattern-entrylist->basenames-when-subsetp
        (implies
             (subsetp acl2::x acl2::y)
             (subsetp (esim-vl-iopattern-entrylist->basenames acl2::x)
                      (esim-vl-iopattern-entrylist->basenames acl2::y)))
        :rule-classes ((:rewrite)))

    Theorem: member-of-esim-vl-iopattern-entry->basename-in-esim-vl-iopattern-entrylist->basenames

    (defthm
     member-of-esim-vl-iopattern-entry->basename-in-esim-vl-iopattern-entrylist->basenames
     (implies (member acl2::k acl2::x)
              (member (esim-vl-iopattern-entry->basename acl2::k)
                      (esim-vl-iopattern-entrylist->basenames acl2::x)))
     :rule-classes ((:rewrite)))

    Theorem: esim-vl-iopattern-entrylist->basenames-of-rev

    (defthm
         esim-vl-iopattern-entrylist->basenames-of-rev
         (equal (esim-vl-iopattern-entrylist->basenames (rev acl2::x))
                (rev (esim-vl-iopattern-entrylist->basenames acl2::x)))
         :rule-classes ((:rewrite)))

    Theorem: esim-vl-iopattern-entrylist->basenames-of-list-fix

    (defthm
      esim-vl-iopattern-entrylist->basenames-of-list-fix
      (equal (esim-vl-iopattern-entrylist->basenames (list-fix acl2::x))
             (esim-vl-iopattern-entrylist->basenames acl2::x))
      :rule-classes ((:rewrite)))

    Theorem: esim-vl-iopattern-entrylist->basenames-of-append

    (defthm
     esim-vl-iopattern-entrylist->basenames-of-append
     (equal
       (esim-vl-iopattern-entrylist->basenames (append acl2::a acl2::b))
       (append (esim-vl-iopattern-entrylist->basenames acl2::a)
               (esim-vl-iopattern-entrylist->basenames acl2::b)))
     :rule-classes ((:rewrite)))

    Theorem: cdr-of-esim-vl-iopattern-entrylist->basenames

    (defthm
         cdr-of-esim-vl-iopattern-entrylist->basenames
         (equal (cdr (esim-vl-iopattern-entrylist->basenames acl2::x))
                (esim-vl-iopattern-entrylist->basenames (cdr acl2::x)))
         :rule-classes ((:rewrite)))

    Theorem: car-of-esim-vl-iopattern-entrylist->basenames

    (defthm
         car-of-esim-vl-iopattern-entrylist->basenames
         (equal (car (esim-vl-iopattern-entrylist->basenames acl2::x))
                (and (consp acl2::x)
                     (esim-vl-iopattern-entry->basename (car acl2::x))))
         :rule-classes ((:rewrite)))

    Theorem: esim-vl-iopattern-entrylist->basenames-under-iff

    (defthm esim-vl-iopattern-entrylist->basenames-under-iff
            (iff (esim-vl-iopattern-entrylist->basenames acl2::x)
                 (consp acl2::x))
            :rule-classes ((:rewrite)))

    Theorem: consp-of-esim-vl-iopattern-entrylist->basenames

    (defthm
         consp-of-esim-vl-iopattern-entrylist->basenames
         (equal (consp (esim-vl-iopattern-entrylist->basenames acl2::x))
                (consp acl2::x))
         :rule-classes ((:rewrite)))

    Theorem: len-of-esim-vl-iopattern-entrylist->basenames

    (defthm
         len-of-esim-vl-iopattern-entrylist->basenames
         (equal (len (esim-vl-iopattern-entrylist->basenames acl2::x))
                (len acl2::x))
         :rule-classes ((:rewrite)))

    Theorem: true-listp-of-esim-vl-iopattern-entrylist->basenames

    (defthm
         true-listp-of-esim-vl-iopattern-entrylist->basenames
         (true-listp (esim-vl-iopattern-entrylist->basenames acl2::x))
         :rule-classes :type-prescription)

    Theorem: esim-vl-iopattern-entrylist->basenames-when-not-consp

    (defthm
        esim-vl-iopattern-entrylist->basenames-when-not-consp
        (implies (not (consp acl2::x))
                 (equal (esim-vl-iopattern-entrylist->basenames acl2::x)
                        nil))
        :rule-classes ((:rewrite)))

    Theorem: esim-vl-iopattern-entrylist->basenames-of-cons

    (defthm
     esim-vl-iopattern-entrylist->basenames-of-cons
     (equal
         (esim-vl-iopattern-entrylist->basenames (cons acl2::a acl2::b))
         (cons (esim-vl-iopattern-entry->basename acl2::a)
               (esim-vl-iopattern-entrylist->basenames acl2::b)))
     :rule-classes ((:rewrite)))