• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
      • 100-theorems
      • Arithmetic
      • Bit-vectors
        • Sparseint
        • Bitops
        • Bv
        • Ihs
          • Logops-definitions
          • Math-lemmas
          • Ihs-theories
          • Ihs-init
          • Logops
            • Logops-lemmas
              • Logops-recursive-definitions-theory
              • Ihs/logbitp-lemmas
              • Ihs/loghead-lemmas
              • Ihs/logtail-lemmas
              • Ihs/logrpl-lemmas
              • Ihs/logand-lemmas
              • Ihs/logapp-lemmas
              • Ihs/logcar-lemmas
              • Ihs/integer-length-lemmas
                • Ihs/unsigned-byte-p-lemmas
                • Ihs/logext-lemmas
                • Ihs/logcons-lemmas
                • Signed-byte-p-logops
                • Ihs/logxor-lemmas
                • Ihs/logior-lemmas
                • Ihs/logextu-lemmas
                • Ihs/signed-byte-p-lemmas
                • Ihs/lognotu-lemmas
                • Ihs/lognot-lemmas
                • Ihs/logmaskp-lemmas
                • Ihs/ash-lemmas
                • Logops-lemmas-theory
                • Ihs/wrb-lemmas
                • Ihs/logite-lemmas
          • Rtl
        • Algebra
      • Testing-utilities
    • Integer-length
    • Logops-lemmas

    Ihs/integer-length-lemmas

    Lemmas about integer-length from the logops-lemmas book.

    Definitions and Theorems

    Theorem: equal-integer-length-0

    (defthm equal-integer-length-0
      (equal (equal (integer-length i) 0)
             (or (zip i) (equal i -1))))

    Theorem: unsigned-byte-p-integer-length

    (defthm unsigned-byte-p-integer-length
      (implies (and (integerp i)
                    (>= i 0)
                    (equal size (integer-length i)))
               (unsigned-byte-p size i))
      :rule-classes nil)

    Theorem: integer-length-unsigned-byte

    (defthm integer-length-unsigned-byte
      (implies (unsigned-byte-p size i)
               (<= (integer-length i) size))
      :rule-classes nil)

    Theorem: signed-byte-p-integer-length

    (defthm signed-byte-p-integer-length
      (implies (and (integerp i)
                    (integerp size)
                    (> size 0)
                    (equal size (+ (integer-length i) 1)))
               (signed-byte-p size i))
      :rule-classes nil)

    Theorem: integer-length-signed-byte

    (defthm integer-length-signed-byte
      (implies (signed-byte-p size i)
               (<= (+ (integer-length i) 1) size))
      :rule-classes nil)