• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
          • Omaps
          • Directed-untranslate
          • Include-book-paths
          • Ubi
          • Numbered-names
          • Digits-any-base
          • Context-message-pair
          • With-auto-termination
          • Make-termination-theorem
          • Theorems-about-true-list-lists
          • Checkpoint-list
          • Sublis-expr+
          • Integers-from-to
          • Prove$
          • Defthm<w
          • System-utilities-non-built-in
          • Integer-range-fix
          • Minimize-ruler-extenders
          • Add-const-to-untranslate-preprocess
          • Unsigned-byte-fix
          • Signed-byte-fix
          • Defthmr
          • Paired-names
            • Make-paired-name
              • Paired-name-separator
            • Unsigned-byte-list-fix
            • Signed-byte-list-fix
            • Show-books
            • Skip-in-book
            • Typed-tuplep
            • List-utilities
            • Checkpoint-list-pretty
            • Defunt
            • Keyword-value-list-to-alist
            • Magic-macroexpand
            • Top-command-number-fn
            • Bits-as-digits-in-base-2
            • Show-checkpoint-list
            • Ubyte11s-as-digits-in-base-2048
            • Named-formulas
            • Bytes-as-digits-in-base-256
            • String-utilities
            • Make-keyword-value-list-from-keys-and-value
            • Defmacroq
            • Integer-range-listp
            • Apply-fn-if-known
            • Trans-eval-error-triple
            • Checkpoint-info-list
            • Previous-subsumer-hints
            • Fms!-lst
            • Zp-listp
            • Trans-eval-state
            • Injections
            • Doublets-to-alist
            • Theorems-about-osets
            • Typed-list-utilities
            • Book-runes-alist
            • User-interface
            • Bits/ubyte11s-digit-grouping
            • Bits/bytes-digit-grouping
            • Message-utilities
            • Subsetp-eq-linear
            • Oset-utilities
            • Strict-merge-sort-<
            • Miscellaneous-enumerations
            • Maybe-unquote
            • Thm<w
            • Defthmd<w
            • Io-utilities
          • Set
          • Soft
          • C
          • Bv
          • Imp-language
          • Event-macros
          • Java
          • Bitcoin
          • Ethereum
          • Yul
          • Zcash
          • ACL2-programming-language
          • Prime-fields
          • Json
          • Syntheto
          • File-io-light
          • Cryptography
          • Number-theory
          • Lists-light
          • Axe
          • Builtins
          • Solidity
          • Helpers
          • Htclient
          • Typed-lists-light
          • Arithmetic-light
        • X86isa
        • Axe
        • Execloader
      • Math
      • Testing-utilities
    • Paired-names

    Make-paired-name

    Construct a paired name.

    Signature
    (make-paired-name first-name second-name pkg-from wrld) → name
    Arguments
    first-name — Guard (symbolp first-name).
    second-name — Guard (symbolp second-name).
    wrld — Guard (plist-worldp wrld).
    Returns
    name — Type (symbolp name).

    The resulting name consists of the given first and second names, separated by the current separator. An additional argument says whether the package of the resulting name should be the same as the first or second name (immaterial if the first and second names are in the same package).

    Definitions and Theorems

    Function: make-paired-name

    (defun make-paired-name (first-name second-name pkg-from wrld)
     (declare (type (integer 1 2) pkg-from))
     (declare (xargs :guard (and (symbolp first-name)
                                 (symbolp second-name)
                                 (plist-worldp wrld))))
     (let ((__function__ 'make-paired-name))
       (declare (ignorable __function__))
       (b* ((first-chars (explode (symbol-name first-name)))
            (second-chars (explode (symbol-name second-name)))
            (separator-chars (explode (get-paired-name-separator wrld)))
            (name-chars (append first-chars
                                separator-chars second-chars))
            (pkg-symbol (case pkg-from
                          (1 first-name)
                          (2 second-name)
                          (t (impossible)))))
         (intern-in-package-of-symbol (implode name-chars)
                                      pkg-symbol))))

    Theorem: symbolp-of-make-paired-name

    (defthm symbolp-of-make-paired-name
      (b*
        ((name (make-paired-name first-name second-name pkg-from wrld)))
        (symbolp name))
      :rule-classes :rewrite)