• 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
            • Pseudo-event-formp
            • Pseudo-event-form-listp
            • Directed-untranslate
            • Irrelevant-formals-info
            • Numbered-names
            • Context-message-pair
            • Prove$
            • Minimize-ruler-extenders
            • Paired-names
              • Make-paired-name
                • Paired-name-separator
              • Orelse
              • Fresh-name-in-world-with-$s
              • Encapsulate-report-errors
              • On-failure
              • Chk-irrelevant-formals-ok
              • Named-formulas
              • Pseudo-event-landmarkp
              • All-program-fns
              • All-logic-fns
              • Trans-eval-error-triple
              • Trans-eval-state
              • Pseudo-tests-and-callsp
              • User-interface
              • Pseudo-command-landmarkp
              • Pseudo-tests-and-calls-listp
              • Pseudo-command-formp
              • Orelse*
              • Identity-macro
            • 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)