• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
      • Fgl
      • Vl
        • Syntax
        • Loader
        • Warnings
        • Getting-started
        • Utilities
        • Printer
        • Kit
        • Mlib
        • Transforms
          • Unparameterization
          • Elaborate
          • Addnames
          • Annotate
            • Increment-elim
            • Make-implicit-wires
            • Basic-bind-elim
            • Argresolve
            • Basicsanity
            • Portdecl-sign
            • Enum-names
              • Vl-enumname-range-declarations
              • Vl-interfacelist-add-enumname-declarations
              • Vl-packagelist-add-enumname-declarations
              • Vl-modulelist-add-enumname-declarations
              • Vl-classlist-add-enumname-declarations
              • Vl-enumitemlist-enumname-declarations
              • Vl-enumname-declarations
              • Vl-paramdecl-enumname-declarations
              • Vl-paramdecllist-enumname-declarations
              • Vl-vardecllist-enumname-declarations
              • Vl-typedeflist-enumname-declarations
              • Vl-typedef-enumname-declarations
                • Vl-vardecl-enumname-declarations
                • Vl-package-add-enumname-declarations
                • Vl-design-add-enumname-declarations
                • Vl-interface-add-enumname-declarations
                • Vl-class-add-enumname-declarations
                • Vl-module-add-enumname-declarations
                • Vl-datatype-map
              • Port-resolve
              • Udp-elim
              • Vl-annotate-design
              • Vl-annotate-module
            • Clean-warnings
            • Eliminitial
            • Custom-transform-hooks
            • Problem-modules
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Testing-utilities
      • Math
    • Enum-names

    Vl-typedef-enumname-declarations

    Signature
    (vl-typedef-enumname-declarations x seen) 
      → 
    (mv new-x warnings paramdecls seen-out)
    Arguments
    x — Guard (vl-typedef-p x).
    seen — Guard (vl-datatype-map-p seen).
    Returns
    new-x — Type (vl-typedef-p new-x).
    warnings — Type (vl-warninglist-p warnings).
    paramdecls — Type (vl-paramdecllist-p paramdecls).
    seen-out — Type (vl-datatype-map-p seen-out).

    Definitions and Theorems

    Function: vl-typedef-enumname-declarations

    (defun vl-typedef-enumname-declarations
           (x seen)
           (declare (xargs :guard (and (vl-typedef-p x)
                                       (vl-datatype-map-p seen))))
           (let ((__function__ 'vl-typedef-enumname-declarations))
                (declare (ignorable __function__))
                (b* (((vl-typedef x))
                     ((mv new-type warnings paramdecls seen)
                      (vl-datatype-enumname-declarations
                           x.type x.name x.minloc seen)))
                    (mv (change-vl-typedef x :type new-type)
                        warnings paramdecls seen))))

    Theorem: vl-typedef-p-of-vl-typedef-enumname-declarations.new-x

    (defthm vl-typedef-p-of-vl-typedef-enumname-declarations.new-x
            (b* (((mv ?new-x ?warnings ?paramdecls ?seen-out)
                  (vl-typedef-enumname-declarations x seen)))
                (vl-typedef-p new-x))
            :rule-classes :rewrite)

    Theorem: vl-warninglist-p-of-vl-typedef-enumname-declarations.warnings

    (defthm
         vl-warninglist-p-of-vl-typedef-enumname-declarations.warnings
         (b* (((mv ?new-x ?warnings ?paramdecls ?seen-out)
               (vl-typedef-enumname-declarations x seen)))
             (vl-warninglist-p warnings))
         :rule-classes :rewrite)

    Theorem: vl-paramdecllist-p-of-vl-typedef-enumname-declarations.paramdecls

    (defthm
       vl-paramdecllist-p-of-vl-typedef-enumname-declarations.paramdecls
       (b* (((mv ?new-x ?warnings ?paramdecls ?seen-out)
             (vl-typedef-enumname-declarations x seen)))
           (vl-paramdecllist-p paramdecls))
       :rule-classes :rewrite)

    Theorem: vl-datatype-map-p-of-vl-typedef-enumname-declarations.seen-out

    (defthm
         vl-datatype-map-p-of-vl-typedef-enumname-declarations.seen-out
         (b* (((mv ?new-x ?warnings ?paramdecls ?seen-out)
               (vl-typedef-enumname-declarations x seen)))
             (vl-datatype-map-p seen-out))
         :rule-classes :rewrite)

    Theorem: vl-typedef-enumname-declarations-of-vl-typedef-fix-x

    (defthm vl-typedef-enumname-declarations-of-vl-typedef-fix-x
            (equal (vl-typedef-enumname-declarations (vl-typedef-fix x)
                                                     seen)
                   (vl-typedef-enumname-declarations x seen)))

    Theorem: vl-typedef-enumname-declarations-vl-typedef-equiv-congruence-on-x

    (defthm
       vl-typedef-enumname-declarations-vl-typedef-equiv-congruence-on-x
       (implies (vl-typedef-equiv x x-equiv)
                (equal (vl-typedef-enumname-declarations x seen)
                       (vl-typedef-enumname-declarations x-equiv seen)))
       :rule-classes :congruence)

    Theorem: vl-typedef-enumname-declarations-of-vl-datatype-map-fix-seen

    (defthm
     vl-typedef-enumname-declarations-of-vl-datatype-map-fix-seen
     (equal
         (vl-typedef-enumname-declarations x (vl-datatype-map-fix seen))
         (vl-typedef-enumname-declarations x seen)))

    Theorem: vl-typedef-enumname-declarations-vl-datatype-map-equiv-congruence-on-seen

    (defthm
     vl-typedef-enumname-declarations-vl-datatype-map-equiv-congruence-on-seen
     (implies (vl-datatype-map-equiv seen seen-equiv)
              (equal (vl-typedef-enumname-declarations x seen)
                     (vl-typedef-enumname-declarations x seen-equiv)))
     :rule-classes :congruence)