• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
        • Use-set
        • Syntax
        • Getting-started
        • Utilities
        • Loader
        • Transforms
        • Lint
          • Vl-lintconfig-p
          • Lucid
          • Skip-detection
          • Vl-lintresult-p
          • Lint-warning-suppression
          • Condcheck
          • Selfassigns
          • Leftright-check
          • Dupeinst-check
          • Oddexpr-check
          • Remove-toohard
          • Qmarksize-check
          • Portcheck
          • Duplicate-detect
          • Vl-print-certain-warnings
          • Duperhs-check
          • *vl-lint-help*
          • Lint-stmt-rewrite
          • Drop-missing-submodules
          • Check-case
            • Vl-modulelist-check-case
            • Vl-collect-ieqv-strings
            • Vl-find-case-equivalent-strings
              • Vl-find-case-equivalent-strings-aux
            • Vl-module-check-case
            • Vl-design-check-case
            • Vl-equiv-strings-to-lines
          • Drop-user-submodules
          • Check-namespace
          • Vl-lint
        • Mlib
        • Server
        • Kit
        • Printer
        • Esim-vl
        • Well-formedness
      • Sv
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Check-case

Vl-find-case-equivalent-strings

Find all case-equivalent strings in a string-list.

Signature
(vl-find-case-equivalent-strings x) → equiv-sets
Arguments
x — Guard (string-listp x).
Returns
equiv-sets — Each sub-list is a set of case-equivalent strings that occur within x.
    Type (string-list-listp equiv-sets), given the guard.

Definitions and Theorems

Function: vl-find-case-equivalent-strings

(defun vl-find-case-equivalent-strings (x)
  (declare (xargs :guard (string-listp x)))
  (let ((__function__ 'vl-find-case-equivalent-strings))
    (declare (ignorable __function__))
    (b* ((xl (str::downcase-string-list x))
         (dupes (duplicated-members xl))
         (sets (vl-find-case-equivalent-strings-aux dupes x)))
      sets)))

Theorem: string-list-listp-of-vl-find-case-equivalent-strings

(defthm string-list-listp-of-vl-find-case-equivalent-strings
  (implies (and (force (string-listp x)))
           (b* ((equiv-sets (vl-find-case-equivalent-strings x)))
             (string-list-listp equiv-sets)))
  :rule-classes :rewrite)

Subtopics

Vl-find-case-equivalent-strings-aux