• 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
          • Syntax-for-tools
          • Atc
          • Language
            • Abstract-syntax
            • Integer-ranges
            • Implementation-environments
              • Schar-format
              • Uinteger-sinteger-bit-roles-wfp
              • Integer-format
              • Sinteger-format
              • Integer-format-llong-wfp
              • Integer-format-short-wfp
              • Integer-format-long-wfp
              • Integer-format-int-wfp
              • Uinteger-format
              • Schar-format->min
              • Char+short+int+long+llong-format
              • Uchar-format
              • Char-format->min
              • Integer-format-inc-sign-tcnpnt
              • Char-format->max
              • Sinteger-format->min
              • Sinteger-bit-role
              • Sinteger-bit-roles-wfp
              • Schar-format->max
              • Signed-format
              • Short-format-16tcnt
              • Llong-format-64tcnt
                • Ienv
                • Uinteger-bit-role
                • Long-format-32tcnt
                • Int-format-16tcnt
                • Uinteger-bit-roles-wfp
                • Uinteger+sinteger-format
                • Uinteger-bit-roles-value-count
                • Sinteger-bit-roles-value-count
                • Sinteger-bit-roles-inc-n-and-sign
                • Uinteger-bit-roles-inc-n
                • Sinteger-format-inc-sign-tcnpnt
                • Sinteger-bit-roles-inc-n
                • Uchar-format->max
                • Char+short+int+long+llong-format-wfp
                • Uinteger-bit-roles-exponents
                • Sinteger-bit-roles-exponents
                • Integer-format->bit-size
                • Char-format
                • Sinteger-bit-roles-sign-count
                • Ienv->char-min
                • Uinteger-format-inc-npnt
                • Ienv->schar-min
                • Ienv->char-size
                • Ienv->char-max
                • Uinteger-format->max
                • Sinteger-format->max
                • Ienv->schar-max
                • Ienv->uchar-max
                • Ienv->short-bit-size
                • Ienv->long-bit-size
                • Ienv->llong-bit-size
                • Schar-format-8tcnt
                • Ienv->int-bit-size
                • Ienv->sshort-min
                • Ienv->sllong-min
                • Char-format-8u
                • Ienv->ushort-max
                • Ienv->ulong-max
                • Ienv->ullong-max
                • Ienv->uint-max
                • Ienv->sshort-max
                • Ienv->slong-min
                • Ienv->slong-max
                • Ienv->sllong-max
                • Ienv->sint-min
                • Ienv->sint-max
                • Char8+short16+int16+long32+llong64-tcnt
                • Uchar-format-8
                • Uinteger-bit-role-list
                • Sinteger-bit-role-list
                • Uinteger-sinteger-bit-roles-wfp-of-inc-n-and-sign
              • Dynamic-semantics
              • Static-semantics
              • Grammar
              • Integer-formats
              • Types
              • Portable-ascii-identifiers
              • Values
              • Integer-operations
              • Computation-states
              • Object-designators
              • Operations
              • Errors
              • Tag-environments
              • Function-environments
              • Character-sets
              • Flexible-array-member-removal
              • Arithmetic-operations
              • Pointer-operations
              • Bytes
              • Keywords
              • Real-operations
              • Array-operations
              • Scalar-operations
              • Structure-operations
            • Representation
            • Transformation-tools
            • Insertion-sort
            • Pack
          • 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
    • Implementation-environments

    Llong-format-64tcnt

    The (unsigned and signed) long long format defined by 64 bits with increasing values, two's complement, and no trap representations.

    Signature
    (llong-format-64tcnt) → format
    Returns
    format — Type (integer-formatp format).

    This is the simplest and smallest format for long long integers, with two's complement being the most common signed format. There cannot be any padding bits, otherwise the value bits would not suffice to cover the required ranges of values. With no padding bits, there is only one possible trap representation, namely the one with sign bit 1 and all value bits 0, but the simplest and most common choice is that it is a valid value instead (the smallest signed value representable in the type).

    Definitions and Theorems

    Function: llong-format-64tcnt

    (defun llong-format-64tcnt nil
      (declare (xargs :guard t))
      (let ((__function__ 'llong-format-64tcnt))
        (declare (ignorable __function__))
        (integer-format-inc-sign-tcnpnt 64)))

    Theorem: integer-formatp-of-llong-format-64tcnt

    (defthm integer-formatp-of-llong-format-64tcnt
      (b* ((format (llong-format-64tcnt)))
        (integer-formatp format))
      :rule-classes :rewrite)

    Theorem: integer-format-llong-wfp-of-long-format-64tcnt

    (defthm integer-format-llong-wfp-of-long-format-64tcnt
      (integer-format-llong-wfp (llong-format-64tcnt)
                                (uchar-format-8)
                                (long-format-32tcnt)))

    Theorem: integer-format->bit-size-of-llong-format-64tcnt

    (defthm integer-format->bit-size-of-llong-format-64tcnt
      (equal (integer-format->bit-size (llong-format-64tcnt))
             64))

    Theorem: uinteger-format->max-of-llong-format-64tcnt

    (defthm uinteger-format->max-of-llong-format-64tcnt
      (equal (uinteger-format->max
                  (uinteger+sinteger-format->unsigned
                       (integer-format->pair (llong-format-64tcnt))))
             18446744073709551615))

    Theorem: sinteger-format->max-of-llong-format-64tcnt

    (defthm sinteger-format->max-of-llong-format-64tcnt
      (equal (sinteger-format->max
                  (uinteger+sinteger-format->signed
                       (integer-format->pair (llong-format-64tcnt))))
             9223372036854775807))

    Theorem: sinteger-format->min-of-llong-format-64tcnt

    (defthm sinteger-format->min-of-llong-format-64tcnt
      (equal (sinteger-format->min
                  (uinteger+sinteger-format->signed
                       (integer-format->pair (llong-format-64tcnt))))
             -9223372036854775808))