• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
      • 100-theorems
      • Arithmetic
        • Lispfloat
        • Arithmetic-1
          • Inequalities-of-products
          • Basic-product-normalization
          • Inequalities-of-reciprocals
          • Arithmetic/natp-posp
          • Basic-expt-normalization
            • More-rational-identities
            • Inequalities-of-exponents
            • Basic-sum-normalization
            • Basic-rational-identities
            • Basic-expt-type-rules
            • Inequalities-of-sums
            • Basic-products-with-negations
            • Fc
          • Number-theory
          • Proof-by-arith
          • Arith-equivs
          • Include-an-arithmetic-book
          • Number-theory
          • Arithmetic-3
          • Arithmetic-2
          • Arithmetic-light
          • Arithmetic-5
        • Bit-vectors
        • Algebra
      • Testing-utilities
    • Arithmetic-1
    • Expt

    Basic-expt-normalization

    Basic rules for normalizing and simplifying exponents.

    Definitions and Theorems

    Theorem: right-unicity-of-1-for-expt

    (defthm right-unicity-of-1-for-expt
      (equal (expt r 1) (fix r)))

    Theorem: expt-minus

    (defthm expt-minus
      (equal (expt r (- i)) (/ (expt r i))))

    Theorem: exponents-add-for-nonneg-exponents

    (defthm exponents-add-for-nonneg-exponents
      (implies (and (<= 0 i)
                    (<= 0 j)
                    (fc (integerp i))
                    (fc (integerp j)))
               (equal (expt r (+ i j))
                      (* (expt r i) (expt r j)))))

    Theorem: exponents-add

    (defthm exponents-add
      (implies (and (syntaxp (not (and (quotep i)
                                       (integerp (cadr i))
                                       (or (equal (cadr i) 1)
                                           (equal (cadr i) -1)))))
                    (syntaxp (not (and (quotep j)
                                       (integerp (cadr j))
                                       (or (equal (cadr j) 1)
                                           (equal (cadr j) -1)))))
                    (not (equal 0 r))
                    (fc (acl2-numberp r))
                    (fc (integerp i))
                    (fc (integerp j)))
               (equal (expt r (+ i j))
                      (* (expt r i) (expt r j)))))

    Theorem: exponents-add-unrestricted

    (defthm exponents-add-unrestricted
      (implies (and (not (equal 0 r))
                    (fc (acl2-numberp r))
                    (fc (integerp i))
                    (fc (integerp j)))
               (equal (expt r (+ i j))
                      (* (expt r i) (expt r j)))))

    Theorem: distributivity-of-expt-over-*

    (defthm distributivity-of-expt-over-*
      (equal (expt (* a b) i)
             (* (expt a i) (expt b i))))

    Theorem: expt-1

    (defthm expt-1 (equal (expt 1 x) 1))

    Theorem: exponents-multiply

    (defthm exponents-multiply
      (implies (and (fc (integerp i))
                    (fc (integerp j)))
               (equal (expt (expt r i) j)
                      (expt r (* i j)))))

    Theorem: functional-commutativity-of-expt-/-base

    (defthm functional-commutativity-of-expt-/-base
      (equal (expt (/ r) i) (/ (expt r i))))

    Theorem: equal-constant-+

    (defthm equal-constant-+
      (implies (syntaxp (and (quotep c1) (quotep c2)))
               (equal (equal (+ c1 x) c2)
                      (if (acl2-numberp c2)
                          (if (acl2-numberp x)
                              (equal x (- c2 c1))
                            (equal (fix c1) c2))
                        nil))))