• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Testing-utilities
    • Math
      • Arithmetic
      • Bit-vectors
        • Sparseint
        • Bitops
        • Bv
        • Ihs
          • Logops-definitions
          • Math-lemmas
            • Prefer-*-to-/
            • ACL2-numberp-algebra
            • Integerp-+-minus-*
            • Rewrite-linear-equalities-to-iff
            • Normalize-<-/-to-*-3
            • Ihs-math
            • Rationalp-algebra
            • Normalize-<-/-to-*
              • Expt-algebra
              • Cancel-equal-+-*
              • Normalize-<-minus-/
              • Normalize-equal-/-to-*
              • Normalize-equal-0
              • Integerp-algebra
            • Ihs-theories
            • Ihs-init
            • Logops
          • Rtl
        • Algebra
    • 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)))))))