Documentation

TauCeti.Analysis.Sobolev.W1p.ChainRule

The chain rule and the positive part in W^{1,p}(Ω) for p < ∞ #

For 1 ≤ p < ∞, W^{1,p}(Ω) is stable under composition with a Lipschitz C¹ function F vanishing at 0, and the weak gradient obeys the classical chain rule

∇(F ∘ u) = F'(u) ∇u.

In the same exponent range, its limiting case is the truncation property: u⁺ ∈ W^{1,p}(Ω), with

∇(u⁺) = 1_{u > 0} ∇u,

which is the starting point of the truncation arguments of elliptic regularity: the Caccioppoli inequality for the truncations (u − k)⁺ of a subsolution, and the weak maximum principle for a weak solution, both test the equation against a truncation of the solution itself.

The two limits #

Neither statement can be read off from the definition, because a weak derivative is only defined by integration against test functions and F ∘ u has no reason to be smooth. Both are obtained by approximation, and the order of the two limits matters.

Main declarations #

References #

The classical chain rule for a test function #

The chain rule in W^{1,p}(Ω) for p < ∞ #

theorem TauCeti.W1p.hasWeakFDerivOn_comp {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] {F : ℝ → ℝ} {M : NNReal} [FiniteDimensional ℝ E] (hp : p ≠ ⊤) (hF : ContDiff ℝ 1 F) (hM : ∀ (t : ℝ), ‖deriv F t‖₊ ≤ M) (u : ↥(W1p mu Omega p)) :
HasWeakFDerivOn mu Omega (fun (x : E) => F (↑↑(value u) x)) fun (x : E) => (innerSL ℝ) (deriv F (↑↑(value u) x) • ↑↑(gradient u) x)

The local chain rule for W^{1,p}(Ω) when 1 ≤ p < ∞. If F is C¹ with derivative bounded by M, then F ∘ u has the weak gradient F'(u) ∇u on Ω. No boundary regularity of Ω is needed: the statement is local, and the approximation happens on subdomains relatively compact in Ω.

noncomputable def TauCeti.W1p.contDiffComp {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] {F : ℝ → ℝ} {M : NNReal} [FiniteDimensional ℝ E] (hp : p ≠ ⊤) (hF : ContDiff ℝ 1 F) (hM : ∀ (t : ℝ), ‖deriv F t‖₊ ≤ M) (hF0 : F 0 = 0) (u : ↥(W1p mu Omega p)) :
↥(W1p mu Omega p)

For 1 ≤ p < ∞, W^{1,p}(Ω) is stable under composition with a Lipschitz C¹ function vanishing at 0. Its value and weak gradient are F ∘ u and F'(u) ∇u, by TauCeti.W1p.value_contDiffComp_ae and TauCeti.W1p.gradient_contDiffComp_ae.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem TauCeti.W1p.value_contDiffComp_ae {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] {F : ℝ → ℝ} {M : NNReal} [FiniteDimensional ℝ E] (hp : p ≠ ⊤) (hF : ContDiff ℝ 1 F) (hM : ∀ (t : ℝ), ‖deriv F t‖₊ ≤ M) (hF0 : F 0 = 0) (u : ↥(W1p mu Omega p)) :
    ↑↑(value (contDiffComp hp hF hM hF0 u)) =ᵐ[mu.restrict ↑Omega] fun (x : E) => F (↑↑(value u) x)

    The value of F ∘ u produced by W1p.contDiffComp agrees almost everywhere with the pointwise composition.

    @[simp]
    theorem TauCeti.W1p.gradient_contDiffComp_ae {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] {F : ℝ → ℝ} {M : NNReal} [FiniteDimensional ℝ E] (hp : p ≠ ⊤) (hF : ContDiff ℝ 1 F) (hM : ∀ (t : ℝ), ‖deriv F t‖₊ ≤ M) (hF0 : F 0 = 0) (u : ↥(W1p mu Omega p)) :
    ↑↑(gradient (contDiffComp hp hF hM hF0 u)) =ᵐ[mu.restrict ↑Omega] fun (x : E) => deriv F (↑↑(value u) x) • ↑↑(gradient u) x

    The weak gradient of F ∘ u produced by W1p.contDiffComp is F'(u) ∇u almost everywhere.

    The positive part #

    The positive part of a Sobolev function #

    theorem TauCeti.W1p.memLp_posPartAbove {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] {k : ℝ} (hk : 0 ≤ k) (u : ↥(W1p mu Omega p)) :
    MeasureTheory.MemLp (fun (x : E) => max (↑↑(value u) x - k) 0) p (mu.restrict ↑Omega)

    The pointwise truncation (u - k)⁺ is in Lᵖ when u is and k ≥ 0.

    theorem TauCeti.W1p.memLp_posPartAbove_of_le {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] (u : ↥(W1p mu Omega p)) {k l : ℝ} (hkl : k ≤ l) (hk : MeasureTheory.MemLp (fun (x : E) => max (↑↑(value u) x - k) 0) p (mu.restrict ↑Omega)) :
    MeasureTheory.MemLp (fun (x : E) => max (↑↑(value u) x - l) 0) p (mu.restrict ↑Omega)

    Raising the level of an Lᵖ positive truncation preserves its Lᵖ membership.

    theorem TauCeti.W1p.hasWeakFDerivOn_posPartAbove {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] [FiniteDimensional ℝ E] (hp : p ≠ ⊤) (k : ℝ) (u : ↥(W1p mu Omega p)) :
    HasWeakFDerivOn mu Omega (fun (x : E) => max (↑↑(value u) x - k) 0) fun (x : E) => (innerSL ℝ) ({x : E | k < ↑↑(value u) x}.indicator (↑↑(gradient u)) x)

    For 1 ≤ p < ∞, truncation above any real level is weakly differentiable, with weak gradient 1_{u > k} ∇u.

    theorem TauCeti.W1p.hasWeakFDerivOn_posPart {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] [FiniteDimensional ℝ E] (hp : p ≠ ⊤) (u : ↥(W1p mu Omega p)) :
    HasWeakFDerivOn mu Omega (fun (x : E) => max (↑↑(value u) x) 0) fun (x : E) => (innerSL ℝ) ({x : E | 0 < ↑↑(value u) x}.indicator (↑↑(gradient u)) x)

    For 1 ≤ p < ∞, the positive part of a Sobolev function is weakly differentiable, with weak gradient 1_{u > 0} ∇u.

    noncomputable def TauCeti.W1p.posPartAboveOfMemLp {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] [FiniteDimensional ℝ E] (hp : p ≠ ⊤) (k : ℝ) (u : ↥(W1p mu Omega p)) (hmem : MeasureTheory.MemLp (fun (x : E) => max (↑↑(value u) x - k) 0) p (mu.restrict ↑Omega)) :
    ↥(W1p mu Omega p)

    For 1 ≤ p < ∞, truncation above any level preserves W^{1,p}(Ω) whenever the truncated value is globally in Lᵖ. Its weak gradient is 1_{u > k} ∇u.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem TauCeti.W1p.value_posPartAboveOfMemLp_ae {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] [FiniteDimensional ℝ E] (hp : p ≠ ⊤) (k : ℝ) (u : ↥(W1p mu Omega p)) (hmem : MeasureTheory.MemLp (fun (x : E) => max (↑↑(value u) x - k) 0) p (mu.restrict ↑Omega)) :
      ↑↑(value (posPartAboveOfMemLp hp k u hmem)) =ᵐ[mu.restrict ↑Omega] fun (x : E) => max (↑↑(value u) x - k) 0

      The value of W1p.posPartAboveOfMemLp hp k u hmem is (u - k)⁺ almost everywhere.

      @[simp]
      theorem TauCeti.W1p.gradient_posPartAboveOfMemLp_ae {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] [FiniteDimensional ℝ E] (hp : p ≠ ⊤) (k : ℝ) (u : ↥(W1p mu Omega p)) (hmem : MeasureTheory.MemLp (fun (x : E) => max (↑↑(value u) x - k) 0) p (mu.restrict ↑Omega)) :
      ↑↑(gradient (posPartAboveOfMemLp hp k u hmem)) =ᵐ[mu.restrict ↑Omega] {x : E | k < ↑↑(value u) x}.indicator ↑↑(gradient u)

      The weak gradient of an Lᵖ truncation (u - k)⁺ is 1_{u > k} ∇u almost everywhere.

      noncomputable def TauCeti.W1p.posPartAbove {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] [FiniteDimensional ℝ E] (hp : p ≠ ⊤) {k : ℝ} (hk : 0 ≤ k) (u : ↥(W1p mu Omega p)) :
      ↥(W1p mu Omega p)

      For 1 ≤ p < ∞, truncation above a nonnegative level preserves W^{1,p}(Ω). The value of W1p.posPartAbove hp hk u is (u - k)⁺, and its weak gradient is 1_{u > k} ∇u.

      Equations
      Instances For
        @[simp]
        theorem TauCeti.W1p.posPartAboveOfMemLp_eq_posPartAbove {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] [FiniteDimensional ℝ E] (hp : p ≠ ⊤) {k : ℝ} (hk : 0 ≤ k) (u : ↥(W1p mu Omega p)) (hmem : MeasureTheory.MemLp (fun (x : E) => max (↑↑(value u) x - k) 0) p (mu.restrict ↑Omega)) :
        posPartAboveOfMemLp hp k u hmem = posPartAbove hp hk u

        At a nonnegative level, the general Lᵖ truncation constructor agrees with W1p.posPartAbove, independently of the supplied MemLp proof.

        @[simp]
        theorem TauCeti.W1p.value_posPartAbove_ae {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] [FiniteDimensional ℝ E] (hp : p ≠ ⊤) {k : ℝ} (hk : 0 ≤ k) (u : ↥(W1p mu Omega p)) :
        ↑↑(value (posPartAbove hp hk u)) =ᵐ[mu.restrict ↑Omega] fun (x : E) => max (↑↑(value u) x - k) 0

        The value of W1p.posPartAbove hp hk u is (u - k)⁺ almost everywhere.

        @[simp]
        theorem TauCeti.W1p.gradient_posPartAbove_ae {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] [FiniteDimensional ℝ E] (hp : p ≠ ⊤) {k : ℝ} (hk : 0 ≤ k) (u : ↥(W1p mu Omega p)) :
        ↑↑(gradient (posPartAbove hp hk u)) =ᵐ[mu.restrict ↑Omega] {x : E | k < ↑↑(value u) x}.indicator ↑↑(gradient u)

        The weak gradient of (u - k)⁺ is 1_{u > k} ∇u almost everywhere.

        noncomputable def TauCeti.W1p.posPart {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] [FiniteDimensional ℝ E] (hp : p ≠ ⊤) (u : ↥(W1p mu Omega p)) :
        ↥(W1p mu Omega p)

        For 1 ≤ p < ∞, the positive part u⁺ of a Sobolev function is again in W^{1,p}(Ω). Its value is Mathlib's MeasureTheory.Lp.posPart of the value of u, and its weak gradient is 1_{u > 0} ∇u (TauCeti.W1p.gradient_posPart_ae).

        Equations
        Instances For
          @[simp]

          The value of W1p.posPart hp u is the Lᵖ positive part of the value of u.

          @[simp]
          theorem TauCeti.W1p.gradient_posPart_ae {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [MeasurableSpace E] [BorelSpace E] {mu : MeasureTheory.Measure E} [mu.IsAddHaarMeasure] {Omega : TopologicalSpace.Opens E} {p : ENNReal} [Fact (1 ≤ p)] [FiniteDimensional ℝ E] (hp : p ≠ ⊤) (u : ↥(W1p mu Omega p)) :
          ↑↑(gradient (posPart hp u)) =ᵐ[mu.restrict ↑Omega] {x : E | 0 < ↑↑(value u) x}.indicator ↑↑(gradient u)

          The weak gradient of u⁺ is 1_{u > 0} ∇u almost everywhere.

          @[simp]

          Truncation above zero is the positive part.