• 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
        • Set
        • Soft
        • C
        • Bv
        • Imp-language
        • Event-macros
        • Java
        • Bitcoin
        • Ethereum
        • Yul
          • Transformations
            • Renaming-variables
            • Dead-code-eliminator
            • Renamings
              • Renaming
              • Renaming-result
              • Renaming-old
              • Renaming-new
              • Renaming-pair-equality
              • Disambiguator
              • Unique-variables
              • Dead-code-eliminator-static-safety
              • No-function-definitions
              • Unique-functions
              • Renaming-functions
              • Dead-code-eliminator-no-loop-initializers
              • Dead-code-eliminator-no-function-definitions
              • No-loop-initializers
              • For-loop-init-rewriter
            • Language
            • Yul-json
          • 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
    • Renamings

    Renaming-pair-equality

    Theorem about pair equality in renamings.

    Two pairs in a renaming are equal if and only if their cars or their cdrs are equal. This is because there cannot be two distinct pairs with the same car or cdr.

    Definitions and Theorems

    Theorem: renaming-pair-equality

    (defthm renaming-pair-equality
      (implies (and (member-equal pair1 (renaming->list ren))
                    (member-equal pair2 (renaming->list ren)))
               (equal (equal pair1 pair2)
                      (or (equal (car pair1) (car pair2))
                          (equal (cdr pair1) (cdr pair2))))))