• 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
            • Prefer-*-to-/
              • Normalize-<-/-to-*-3
              • Normalize-<-/-to-*
                • Normalize-equal-/-to-*
              • ACL2-numberp-algebra
              • Integerp-+-minus-*
              • Rewrite-linear-equalities-to-iff
              • Ihs-math
              • Rationalp-algebra
              • Normalize-<-/-to-*-3
              • Expt-algebra
              • Cancel-equal-+-*
              • Normalize-<-/-to-*
                • Normalize-<-minus-/
                • Normalize-equal-/-to-*
                • Normalize-equal-0
                • Integerp-algebra
              • Ihs-theories
              • Ihs-init
              • Logops
            • Rtl
          • Algebra
        • Testing-utilities
      • Math-lemmas
      • Prefer-*-to-/

      Normalize-<-/-to-*

      Rewrite: Replace x < 1/y with x*y < 1 or x*y > 1, based on the sign of y.

      Definitions and Theorems

      Theorem: normalize-<-/-to-*

      (defthm normalize-<-/-to-*
        (implies (and (real/rationalp x)
                      (real/rationalp y)
                      (not (equal y 0)))
                 (and (equal (< x (/ y))
                             (if (< y 0)
                                 (< 1 (* x y))
                               (< (* x y) 1)))
                      (equal (< (/ y) x)
                             (if (< y 0)
                                 (< (* x y) 1)
                               (< 1 (* x y)))))))