• 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-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
        • Fgl
        • Vl
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Testing-utilities
      • Math
    • Esim-vl-iopattern-p

    Esim-vl-iopattern-entry-p

    (esim-vl-iopattern-entry-p x) recognize lists of vl-emodwire-ps like (A[0] A[1] ... A[N]), i.e., non-empty lists of emodwires with the same basenames and unique indices.

    Definitions and Theorems

    Function: esim-vl-iopattern-entry-p

    (defun
     esim-vl-iopattern-entry-p (x)
     (declare (xargs :guard t))
     (and
       (consp x)
       (vl-emodwirelist-p x)
       (true-listp x)
       (let ((basename (vl-emodwire->basename (car x))))
            (all-equalp-of-vl-emodwirelist->basenames basename (cdr x)))
       (uniquep (vl-emodwirelist->indices x))))

    Theorem: vl-emodwirelist-p-when-esim-vl-iopattern-entry-p

    (defthm vl-emodwirelist-p-when-esim-vl-iopattern-entry-p
            (implies (esim-vl-iopattern-entry-p x)
                     (vl-emodwirelist-p x)))

    Theorem: consp-when-esim-vl-iopattern-entry-p

    (defthm consp-when-esim-vl-iopattern-entry-p
            (implies (esim-vl-iopattern-entry-p x)
                     (and (true-listp x) (consp x)))
            :rule-classes :compound-recognizer)