• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • 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-entrylist-p
              • Esim-vl-iopattern-entry-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
        • Svl
        • X86isa
        • Rtl
      • Software-verification
      • Math
      • Testing-utilities
    • 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)))