• 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

    Long-format-32tcnt

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

    Signature
    (long-format-32tcnt) → format
    Returns
    format — Type (integer-formatp format).

    This is the simplest and smallest format for 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: long-format-32tcnt

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

    Theorem: integer-formatp-of-long-format-32tcnt

    (defthm integer-formatp-of-long-format-32tcnt
      (b* ((format (long-format-32tcnt)))
        (integer-formatp format))
      :rule-classes :rewrite)

    Theorem: integer-format-long-wfp-of-long-format-32tcnt

    (defthm integer-format-long-wfp-of-long-format-32tcnt
      (integer-format-long-wfp (long-format-32tcnt)
                               (uchar-format-8)
                               (int-format-16tcnt)))

    Theorem: integer-format->bit-size-of-long-format-32tcnt

    (defthm integer-format->bit-size-of-long-format-32tcnt
      (equal (integer-format->bit-size (long-format-32tcnt))
             32))

    Theorem: uinteger-format->max-of-long-format-32tcnt

    (defthm uinteger-format->max-of-long-format-32tcnt
      (equal (uinteger-format->max
                  (uinteger+sinteger-format->unsigned
                       (integer-format->pair (long-format-32tcnt))))
             4294967295))

    Theorem: sinteger-format->max-of-long-format-32tcnt

    (defthm sinteger-format->max-of-long-format-32tcnt
      (equal (sinteger-format->max
                  (uinteger+sinteger-format->signed
                       (integer-format->pair (long-format-32tcnt))))
             2147483647))

    Theorem: sinteger-format->min-of-long-format-32tcnt

    (defthm sinteger-format->min-of-long-format-32tcnt
      (equal (sinteger-format->min
                  (uinteger+sinteger-format->signed
                       (integer-format->pair (long-format-32tcnt))))
             -2147483648))