• 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

    Short-format-16tcnt

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

    Signature
    (short-format-16tcnt) → format
    Returns
    format — Type (integer-formatp format).

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

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

    Theorem: integer-formatp-of-short-format-16tcnt

    (defthm integer-formatp-of-short-format-16tcnt
      (b* ((format (short-format-16tcnt)))
        (integer-formatp format))
      :rule-classes :rewrite)

    Theorem: integer-format-short-wfp-of-short-format-16tcnt

    (defthm integer-format-short-wfp-of-short-format-16tcnt
      (integer-format-short-wfp (short-format-16tcnt)
                                (uchar-format-8)
                                (schar-format-8tcnt)))

    Theorem: integer-format->bit-size-of-short-format-16tcnt

    (defthm integer-format->bit-size-of-short-format-16tcnt
      (equal (integer-format->bit-size (short-format-16tcnt))
             16))

    Theorem: uinteger-format->max-of-short-format-16tcnt

    (defthm uinteger-format->max-of-short-format-16tcnt
      (equal (uinteger-format->max
                  (uinteger+sinteger-format->unsigned
                       (integer-format->pair (short-format-16tcnt))))
             65535))

    Theorem: sinteger-format->max-of-short-format-16tcnt

    (defthm sinteger-format->max-of-short-format-16tcnt
      (equal (sinteger-format->max
                  (uinteger+sinteger-format->signed
                       (integer-format->pair (short-format-16tcnt))))
             32767))

    Theorem: sinteger-format->min-of-short-format-16tcnt

    (defthm sinteger-format->min-of-short-format-16tcnt
      (equal (sinteger-format->min
                  (uinteger+sinteger-format->signed
                       (integer-format->pair (short-format-16tcnt))))
             -32768))