Documentation

Mathlib.Data.ENNReal.Holder

Hölder triples #

This file defines a new class: ENNReal.HolderTriple which takes arguments p q r : ℝ≥0∞, with r marked as a semiOutParam, and states that p⁻¹ + q⁻¹ = r⁻¹. This is exactly the condition for which Hölder's inequality is valid (see MeasureTheory.Memℒp.smul). This allows us to declare a heterogeneous scalar multiplication (HSMul) instance on MeasureTheory.Lp spaces.

In this file we provide many convenience lemmas in the presence of a HolderTriple instance. All these are easily provable from facts about ℝ≥0∞, but it's convenient not to be forced to reprove them each time.

For convenience we also define ENNReal.HolderConjugate (with arguments p q) as an abbreviation for ENNReal.HolderTriple p q 1.

A class stating that p q r : ℝ≥0∞ satisfy p⁻¹ + q⁻¹ = r⁻¹. This is exactly the condition for which Hölder's inequality is valid (see MeasureTheory.Memℒp.smul).

When r := 1, one generally says that p q are Hölder conjugate.

This class exists so that we can define a heterogeneous scalar multiplication on MeasureTheory.Lp, and this is why r must be marked as a semiOutParam. We don't mark it as an outParam because this would prevent Lean from using HolderTriple p q r and HolderTriple p q r' within a single proof, as may be occasionally convenient.

Instances
    @[reducible, inline]

    An abbreviation for ENNReal.HolderTriple p q 1, this class states p⁻¹ + q⁻¹ = 1.

    Equations
    Instances For

      Hölder triples #

      This is not marked as an instance so that Lean doesn't always find this one and a more canonical value of r can be used.

      instance ENNReal.HolderTriple.symm {p q r : ENNReal} [hpqr : p.HolderTriple q r] :
      theorem ENNReal.HolderTriple.one_div_eq (p q r : ENNReal) [p.HolderTriple q r] :
      1 / r = 1 / p + 1 / q
      theorem ENNReal.HolderTriple.le (p q r : ENNReal) [p.HolderTriple q r] :
      r p

      assumes q ≠ 0 instead of r ≠ 0.

      Hölder conjugates #