Documentation

Mathlib.Data.Real.ConjExponents

Real conjugate exponents #

This file defines Hölder triple and Hölder conjugate exponents in and ℝ≥0. Real numbers p, q and r form a Hölder triple if 0 < p and 0 < q and p⁻¹ + q⁻¹ = r⁻¹ (which of course implies 0 < r). We say p and q are Hölder conjugate if p, q and 1 are a Hölder triple. In this case, 1 < p and 1 < q. This property shows up often in analysis, especially when dealing with L^p spaces.

These notions mimic the same notions for extended nonnegative reals where p q r : ℝ≥0∞ are allowed to take the values 0 and .

Main declarations #

TODO #

structure Real.HolderTriple (p q r : ) :

Real numbers p q r : ℝ are said to be a Hölder triple if p and q are positive and p⁻¹ + q⁻¹ = r⁻¹.

Instances For
    theorem Real.holderTriple_iff (p q r : ) :
    p.HolderTriple q r p⁻¹ + q⁻¹ = r⁻¹ 0 < p 0 < q
    @[reducible, inline]
    abbrev Real.HolderConjugate (p q : ) :

    Real numbers p q : ℝ are Hölder conjugate if they are positive and satisfy the equality p⁻¹ + q⁻¹ = 1. This is an abbreviation for Real.HolderTriple p q 1. This condition shows up in many theorems in analysis, notably related to L^p norms.

    It is equivalent that 1 < p and p⁻¹ + q⁻¹ = 1. See Real.holderConjugate_iff.

    Equations
    Instances For

      The conjugate exponent of p is q = p / (p-1), so that p⁻¹ + q⁻¹ = 1.

      Equations
      Instances For
        theorem Real.HolderTriple.of_pos {p q : } (hp : 0 < p) (hq : 0 < q) :
        theorem Real.HolderTriple.symm {p q r : } (h : p.HolderTriple q r) :
        theorem Real.HolderTriple.pos {p q r : } (h : p.HolderTriple q r) :
        0 < p
        theorem Real.HolderTriple.nonneg {p q r : } (h : p.HolderTriple q r) :
        0 p
        theorem Real.HolderTriple.ne_zero {p q r : } (h : p.HolderTriple q r) :
        p 0
        theorem Real.HolderTriple.inv_pos {p q r : } (h : p.HolderTriple q r) :
        0 < p⁻¹
        theorem Real.HolderTriple.inv_nonneg {p q r : } (h : p.HolderTriple q r) :
        theorem Real.HolderTriple.one_div_pos {p q r : } (h : p.HolderTriple q r) :
        0 < 1 / p
        theorem Real.HolderTriple.one_div_nonneg {p q r : } (h : p.HolderTriple q r) :
        0 1 / p
        theorem Real.HolderTriple.one_div_ne_zero {p q r : } (h : p.HolderTriple q r) :
        1 / p 0
        theorem Real.HolderTriple.pos' {p q r : } (h : p.HolderTriple q r) :
        0 < r

        For r, instead of p

        theorem Real.HolderTriple.nonneg' {p q r : } (h : p.HolderTriple q r) :
        0 r

        For r, instead of p

        theorem Real.HolderTriple.ne_zero' {p q r : } (h : p.HolderTriple q r) :
        r 0

        For r, instead of p

        theorem Real.HolderTriple.inv_pos' {p q r : } (h : p.HolderTriple q r) :
        0 < r⁻¹

        For r, instead of p

        theorem Real.HolderTriple.inv_nonneg' {p q r : } (h : p.HolderTriple q r) :

        For r, instead of p

        theorem Real.HolderTriple.inv_ne_zero' {p q r : } (h : p.HolderTriple q r) :

        For r, instead of p

        theorem Real.HolderTriple.one_div_pos' {p q r : } (h : p.HolderTriple q r) :
        0 < 1 / r

        For r, instead of p

        theorem Real.HolderTriple.one_div_nonneg' {p q r : } (h : p.HolderTriple q r) :
        0 1 / r

        For r, instead of p

        theorem Real.HolderTriple.one_div_ne_zero' {p q r : } (h : p.HolderTriple q r) :
        1 / r 0

        For r, instead of p

        theorem Real.HolderTriple.one_div_add_one_div {p q r : } (h : p.HolderTriple q r) :
        1 / p + 1 / q = 1 / r
        theorem Real.HolderTriple.one_div_eq {p q r : } (h : p.HolderTriple q r) :
        1 / r = 1 / p + 1 / q
        theorem Real.HolderTriple.lt {p q r : } (h : p.HolderTriple q r) :
        r < p
        theorem Real.HolderConjugate.conjugate_eq {p q : } (h : p.HolderConjugate q) :
        q = p / (p - 1)
        theorem Real.HolderConjugate.mul_eq_add {p q : } (h : p.HolderConjugate q) :
        p * q = p + q
        theorem Real.HolderConjugate.inv_inv {a b : } (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) :
        theorem Real.HolderConjugate.inv_one_sub_inv {a : } (ha₀ : 0 < a) (ha₁ : a < 1) :
        theorem Real.HolderConjugate.one_sub_inv_inv {a : } (ha₀ : 0 < a) (ha₁ : a < 1) :
        theorem Real.holderConjugate_iff_eq_conjExponent {p q : } (hp : 1 < p) :
        p.HolderConjugate q q = p / (p - 1)
        theorem Real.holderConjugate_one_div {a b : } (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) :
        (1 / a).HolderConjugate (1 / b)
        structure NNReal.HolderTriple (p q r : NNReal) :

        Nonnegative real numbers p q r : ℝ≥0 are said to be a Hölder triple if p and q are positive and p⁻¹ + q⁻¹ = r⁻¹.

        Instances For
          @[reducible, inline]

          Nonnegative real numbers p q : ℝ≥0 are Hölder conjugate if they are positive and satisfy the equality p⁻¹ + q⁻¹ = 1. This is an abbreviation for NNReal.HolderTriple p q 1. This condition shows up in many theorems in analysis, notably related to L^p norms.

          It is equivalent that 1 < p and p⁻¹ + q⁻¹ = 1. See NNReal.holderConjugate_iff.

          Equations
          Instances For

            The conjugate exponent of p is q = p/(p-1), so that p⁻¹ + q⁻¹ = 1.

            Equations
            Instances For
              @[simp]
              theorem NNReal.holderTriple_coe_iff {p q r : NNReal} :
              (↑p).HolderTriple q r p.HolderTriple q r
              theorem NNReal.HolderTriple.coe {p q r : NNReal} :
              p.HolderTriple q r(↑p).HolderTriple q r

              Alias of the reverse direction of NNReal.holderTriple_coe_iff.

              Alias of the reverse direction of NNReal.holderConjugate_coe_iff.

              theorem NNReal.HolderTriple.of_pos {p q : NNReal} (hp : 0 < p) (hq : 0 < q) :
              theorem NNReal.HolderTriple.symm {p q r : NNReal} (h : p.HolderTriple q r) :
              theorem NNReal.HolderTriple.pos {p q r : NNReal} (h : p.HolderTriple q r) :
              0 < p
              theorem NNReal.HolderTriple.nonneg {p q r : NNReal} (h : p.HolderTriple q r) :
              0 p
              theorem NNReal.HolderTriple.ne_zero {p q r : NNReal} (h : p.HolderTriple q r) :
              p 0
              theorem NNReal.HolderTriple.inv_pos {p q r : NNReal} (h : p.HolderTriple q r) :
              0 < p⁻¹
              theorem NNReal.HolderTriple.one_div_pos {p q r : NNReal} (h : p.HolderTriple q r) :
              0 < 1 / p
              theorem NNReal.HolderTriple.pos' {p q r : NNReal} (h : p.HolderTriple q r) :
              0 < r

              For r, instead of p

              theorem NNReal.HolderTriple.nonneg' {p q r : NNReal} (h : p.HolderTriple q r) :
              0 r

              For r, instead of p

              theorem NNReal.HolderTriple.ne_zero' {p q r : NNReal} (h : p.HolderTriple q r) :
              r 0

              For r, instead of p

              theorem NNReal.HolderTriple.inv_pos' {p q r : NNReal} (h : p.HolderTriple q r) :
              0 < r⁻¹

              For r, instead of p

              theorem NNReal.HolderTriple.inv_nonneg' {p q r : NNReal} (h : p.HolderTriple q r) :

              For r, instead of p

              For r, instead of p

              theorem NNReal.HolderTriple.one_div_pos' {p q r : NNReal} (h : p.HolderTriple q r) :
              0 < 1 / r

              For r, instead of p

              theorem NNReal.HolderTriple.one_div_nonneg' {p q r : NNReal} (h : p.HolderTriple q r) :
              0 1 / r

              For r, instead of p

              theorem NNReal.HolderTriple.one_div_ne_zero' {p q r : NNReal} (h : p.HolderTriple q r) :
              1 / r 0

              For r, instead of p

              theorem NNReal.HolderTriple.one_div_add_one_div {p q r : NNReal} (h : p.HolderTriple q r) :
              1 / p + 1 / q = 1 / r
              theorem NNReal.HolderTriple.one_div_eq {p q r : NNReal} (h : p.HolderTriple q r) :
              1 / r = 1 / p + 1 / q
              theorem NNReal.HolderTriple.lt {p q r : NNReal} (h : p.HolderTriple q r) :
              r < p
              theorem NNReal.HolderConjugate.inv_inv {a b : NNReal} (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) :
              theorem NNReal.HolderConjugate.inv_one_sub_inv {a : NNReal} (ha₀ : 0 < a) (ha₁ : a < 1) :
              theorem NNReal.HolderConjugate.one_sub_inv_inv {a : NNReal} (ha₀ : 0 < a) (ha₁ : a < 1) :
              theorem NNReal.holderConjugate_one_div {a b : NNReal} (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) :
              (1 / a).HolderConjugate (1 / b)
              noncomputable def ENNReal.conjExponent (p : ENNReal) :

              The conjugate exponent of p is q = 1 + (p - 1)⁻¹, so that p⁻¹ + q⁻¹ = 1.

              Equations
              Instances For
                theorem ENNReal.coe_conjExponent {p : NNReal} (hp : 1 < p) :
                @[simp]
                theorem ENNReal.holderTriple_coe_iff {p q r : NNReal} (hr : r 0) :
                (↑p).HolderTriple q r p.HolderTriple q r
                theorem NNReal.HolderTriple.coe_ennreal {p q r : NNReal} (hr : r 0) :
                p.HolderTriple q r(↑p).HolderTriple q r

                Alias of the reverse direction of ENNReal.holderTriple_coe_iff.

                Alias of the reverse direction of ENNReal.holderConjugate_coe_iff.

                theorem ENNReal.HolderTriple.toReal {p q : ENNReal} (r : ENNReal) (hp : 0 < p.toReal) (hq : 0 < q.toReal) [p.HolderTriple q r] :