• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
        • Use-set
        • Syntax
        • Getting-started
        • Utilities
        • Loader
        • Transforms
        • Lint
        • Mlib
          • Scopestack
          • Filtering-by-name
          • Vl-namefactory
          • Substitution
          • Allexprs
          • Hid-tools
          • Vl-consteval
          • Range-tools
          • Lvalexprs
          • Hierarchy
          • Finding-by-name
          • Expr-tools
          • Expr-slicing
          • Stripping-functions
            • Vl-plainarglist-strip
            • Vl-namedarglist-strip
            • Vl-gateinstlist-strip
            • Vl-modinstlist-strip
            • Vl-assignlist-strip
            • Vl-rangelist-strip
            • Vl-expr-strip
            • Vl-atom-strip
            • Vl-gateinst-strip
            • Vl-plainarg-strip
            • Vl-namedarg-strip
            • Vl-modinst-strip
            • Vl-assign-strip
            • Vl-arguments-strip
            • Vl-range-strip
            • Vl-maybe-range-strip
          • Stmt-tools
          • Modnamespace
          • Vl-parse-expr-from-str
          • Welltyped
          • Reordering-by-name
          • Flat-warnings
          • Genblob
          • Expr-building
          • Datatype-tools
          • Syscalls
          • Relocate
          • Expr-cleaning
          • Namemangle
          • Caremask
          • Port-tools
          • Lvalues
        • Server
        • Kit
        • Printer
        • Esim-vl
        • Well-formedness
      • Sv
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Mlib

Stripping-functions

Functions for throwing away attributes, widths, etc., so that expressions and module elements can be compared using equal.

In many basic kinds of linting and well-formedness checking, it is useful to be able to compare module elements using equal. But equal can report that elements are different because of, e.g., their location information, widths and other annotations on expressions, and other kinds of semantically irrelevant attributes.

These stripping functions attempt to strip away these kind of semantically irrelevant components of module elements, so that they can be compared with equal. For instance, we replace all locations with *vl-fakeloc*, replace all attributes with nil, etc.

Exactly what we throw away depends on the kind of module element. In some cases this may not be exactly what you want. See the individual functions for details.

Subtopics

Vl-plainarglist-strip
(vl-plainarglist-strip x) maps vl-plainarg-strip across a list.
Vl-namedarglist-strip
(vl-namedarglist-strip x) maps vl-namedarg-strip across a list.
Vl-gateinstlist-strip
(vl-gateinstlist-strip x) maps vl-gateinst-strip across a list.
Vl-modinstlist-strip
(vl-modinstlist-strip x) maps vl-modinst-strip across a list.
Vl-assignlist-strip
(vl-assignlist-strip x) maps vl-assign-strip across a list.
Vl-rangelist-strip
(vl-rangelist-strip x) maps vl-range-strip across a list.
Vl-expr-strip
Throw away attributes and widths, keeping just the core of an expression. (memoized)
Vl-atom-strip
Throw away widths and types from an atom.
Vl-gateinst-strip
Vl-plainarg-strip
Vl-namedarg-strip
Vl-modinst-strip
Vl-assign-strip
Vl-arguments-strip
Vl-range-strip
Vl-maybe-range-strip