Documentation

Mathlib.Data.EReal.Inv

Absolute value, sign, inversion and division on extended real numbers #

This file defines an absolute value and sign function on EReal and uses them to provide a CommMonoidWithZero instance, based on the absolute value and sign characterising all EReals. Then it defines the inverse of an EReal as ⊤⁻¹ = ⊥⁻¹ = 0, which leads to a DivInvMonoid instance and division.

Absolute value #

The absolute value from EReal to ℝ≥0∞, mapping and to and a real x to |x|.

Equations
    Instances For
      @[simp]
      @[simp]
      theorem EReal.abs_def (x : ) :
      theorem EReal.abs_coe_lt_top (x : ) :
      (↑x).abs <
      @[simp]
      theorem EReal.abs_eq_zero_iff {x : EReal} :
      x.abs = 0 x = 0
      @[simp]
      @[simp]
      theorem EReal.coe_abs (x : ) :
      (↑x).abs = |x|
      @[simp]
      theorem EReal.abs_neg (x : EReal) :
      (-x).abs = x.abs
      @[simp]
      theorem EReal.abs_mul (x y : EReal) :
      (x * y).abs = x.abs * y.abs

      Sign #

      @[simp]
      @[simp]
      theorem EReal.coe_coe_sign (x : SignType) :
      x = x
      @[simp]
      theorem EReal.sign_mul_abs (x : EReal) :
      (SignType.sign x) * x.abs = x
      @[simp]
      theorem EReal.abs_mul_sign (x : EReal) :
      x.abs * (SignType.sign x) = x
      theorem EReal.mul_le_mul_of_nonpos_right {a b c : EReal} (h : b a) (hc : c 0) :
      a * c b * c
      @[simp]
      theorem EReal.coe_pow (x : ) (n : ) :
      ↑(x ^ n) = x ^ n
      @[simp]
      theorem EReal.coe_ennreal_pow (x : ENNReal) (n : ) :
      ↑(x ^ n) = x ^ n
      theorem EReal.exists_nat_ge_mul {a : EReal} (ha : a ) (n : ) :
      ∃ (m : ), a * n m

      Min and Max #

      theorem EReal.min_neg_neg (x y : EReal) :
      min (-x) (-y) = -max x y
      theorem EReal.max_neg_neg (x y : EReal) :
      max (-x) (-y) = -min x y

      Inverse #

      Multiplicative inverse of an EReal. We choose 0⁻¹ = 0 to guarantee several good properties, for instance (a * b)⁻¹ = a⁻¹ * b⁻¹.

      Equations
        Instances For
          Equations
            noncomputable instance EReal.instDivInvMonoid :
            Equations
              @[simp]
              @[simp]
              theorem EReal.coe_inv (x : ) :
              x⁻¹ = (↑x)⁻¹
              @[simp]
              theorem EReal.inv_zero :
              0⁻¹ = 0
              Equations
                theorem EReal.inv_inv {a : EReal} (h : a ) (h' : a ) :
                theorem EReal.mul_inv (a b : EReal) :
                (a * b)⁻¹ = a⁻¹ * b⁻¹

                Inversion and Absolute Value #

                Inversion and Positivity #

                theorem EReal.inv_nonneg_of_nonneg {a : EReal} (h : 0 a) :
                theorem EReal.inv_nonpos_of_nonpos {a : EReal} (h : a 0) :
                theorem EReal.inv_pos_of_pos_ne_top {a : EReal} (h : 0 < a) (h' : a ) :
                0 < a⁻¹
                theorem EReal.inv_neg_of_neg_ne_bot {a : EReal} (h : a < 0) (h' : a ) :
                a⁻¹ < 0

                Division #

                theorem EReal.div_eq_inv_mul (a b : EReal) :
                a / b = b⁻¹ * a
                theorem EReal.coe_div (a b : ) :
                ↑(a / b) = a / b
                theorem EReal.natCast_div_le (m n : ) :
                ↑(m / n) m / n
                @[simp]
                theorem EReal.div_bot {a : EReal} :
                a / = 0
                @[simp]
                theorem EReal.div_top {a : EReal} :
                a / = 0
                @[simp]
                theorem EReal.div_zero {a : EReal} :
                a / 0 = 0
                @[simp]
                theorem EReal.zero_div {a : EReal} :
                0 / a = 0
                theorem EReal.top_div_of_pos_ne_top {a : EReal} (h : 0 < a) (h' : a ) :
                theorem EReal.top_div_of_neg_ne_bot {a : EReal} (h : a < 0) (h' : a ) :
                theorem EReal.bot_div_of_pos_ne_top {a : EReal} (h : 0 < a) (h' : a ) :
                theorem EReal.bot_div_of_neg_ne_bot {a : EReal} (h : a < 0) (h' : a ) :

                Division and Multiplication #

                theorem EReal.div_self {a : EReal} (h₁ : a ) (h₂ : a ) (h₃ : a 0) :
                a / a = 1
                theorem EReal.mul_div (a b c : EReal) :
                a * (b / c) = a * b / c
                theorem EReal.mul_div_right (a b c : EReal) :
                a / b * c = a * c / b
                theorem EReal.mul_div_left_comm (a b c : EReal) :
                a * (b / c) = b * (a / c)
                theorem EReal.div_div (a b c : EReal) :
                a / b / c = a / (b * c)
                theorem EReal.div_mul_div_comm (a b c d : EReal) :
                a / b * (c / d) = a * c / (b * d)
                theorem EReal.div_mul_cancel {a b : EReal} (h₁ : b ) (h₂ : b ) (h₃ : b 0) :
                a / b * b = a
                theorem EReal.mul_div_cancel {a b : EReal} (h₁ : b ) (h₂ : b ) (h₃ : b 0) :
                b * (a / b) = a
                theorem EReal.mul_div_mul_cancel {a b c : EReal} (h₁ : c ) (h₂ : c ) (h₃ : c 0) :
                a * c / (b * c) = a / b
                theorem EReal.div_eq_iff {a b c : EReal} (hbot : b ) (htop : b ) (hzero : b 0) :
                c / b = a c = a * b

                Division and Order #

                theorem EReal.monotone_div_right_of_nonneg {b : EReal} (h : 0 b) :
                Monotone fun (a : EReal) => a / b
                theorem EReal.div_le_div_right_of_nonneg {a b c : EReal} (h : 0 c) (h' : a b) :
                a / c b / c
                theorem EReal.strictMono_div_right_of_pos {b : EReal} (h : 0 < b) (h' : b ) :
                StrictMono fun (a : EReal) => a / b
                theorem EReal.div_lt_div_right_of_pos {a b c : EReal} (h₁ : 0 < c) (h₂ : c ) (h₃ : a < b) :
                a / c < b / c
                theorem EReal.antitone_div_right_of_nonpos {b : EReal} (h : b 0) :
                Antitone fun (a : EReal) => a / b
                theorem EReal.div_le_div_right_of_nonpos {a b c : EReal} (h : c 0) (h' : a b) :
                b / c a / c
                theorem EReal.strictAnti_div_right_of_neg {b : EReal} (h : b < 0) (h' : b ) :
                StrictAnti fun (a : EReal) => a / b
                theorem EReal.div_lt_div_right_of_neg {a b c : EReal} (h₁ : c < 0) (h₂ : c ) (h₃ : a < b) :
                b / c < a / c
                theorem EReal.le_div_iff_mul_le {a b c : EReal} (h : b > 0) (h' : b ) :
                a c / b a * b c
                theorem EReal.div_le_iff_le_mul {a b c : EReal} (h : 0 < b) (h' : b ) :
                a / b c a b * c
                theorem EReal.lt_div_iff {a b c : EReal} (h : 0 < b) (h' : b ) :
                a < c / b a * b < c
                theorem EReal.div_lt_iff {a b c : EReal} (h : 0 < c) (h' : c ) :
                b / c < a b < a * c
                theorem EReal.div_nonneg {a b : EReal} (h : 0 a) (h' : 0 b) :
                0 a / b
                theorem EReal.div_pos {a b : EReal} (ha : 0 < a) (hb : 0 < b) (hb' : b ) :
                0 < a / b
                theorem EReal.div_nonpos_of_nonpos_of_nonneg {a b : EReal} (h : a 0) (h' : 0 b) :
                a / b 0
                theorem EReal.div_nonpos_of_nonneg_of_nonpos {a b : EReal} (h : 0 a) (h' : b 0) :
                a / b 0
                theorem EReal.div_nonneg_of_nonpos_of_nonpos {a b : EReal} (h : a 0) (h' : b 0) :
                0 a / b
                theorem EReal.le_mul_of_forall_lt {a b c : EReal} (h₁ : 0 < a b ) (h₂ : a 0 < b) (h : a' > a, b' > b, c a' * b') :
                c a * b
                theorem EReal.mul_le_of_forall_lt_of_nonneg {a b c : EReal} (ha : 0 a) (hc : 0 c) (h : a'Set.Ioo 0 a, b'Set.Ioo 0 b, a' * b' c) :
                a * b c

                Division Distributivity #

                theorem EReal.div_right_distrib_of_nonneg {a b c : EReal} (h : 0 a) (h' : 0 b) :
                (a + b) / c = a / c + b / c
                theorem EReal.add_div_of_nonneg_right {a b c : EReal} (h : 0 c) :
                (a + b) / c = a / c + b / c

                Extension for the positivity tactic: inverse of an EReal.

                Equations
                  Instances For

                    Extension for the positivity tactic: ratio of two EReals.

                    Equations
                      Instances For