Documentation

TauCeti.Analysis.Calculus.DifferentialForm.CylinderHomotopy

The homotopy operator on a cylinder over a subset of a normed space #

Let ω : E × ℝ → (E × ℝ) [⋀^Fin (n + 1)]→L[ℝ] F be a differential (n + 1)-form on the product of a real normed space E with the time line. The cylinder homotopy operator (TauCeti.cylinderHomotopy) contracts ω with the unit time vector ∂ₜ = (0, 1) and integrates the result over the time interval [0, 1]:

(h ω)(x)(v₁, …, vₙ) = ∫₀¹ ω(x, t)(∂ₜ, v₁, …, vₙ) dt,

where each vᵢ ∈ E is viewed in E × ℝ through ContinuousLinearMap.inl. Writing ιₜ^* ω = x ↦ (ω (x, t)).compContinuousLinearMap (.inl ℝ E ℝ) for the pullback of ω along the slice x ↦ (x, t), the operator satisfies the cochain-homotopy identity

d (h ω) + h (d ω) = ι₁^* ω - ι₀^* ω.

Everything is relative to a cylinder s ×ˢ Icc 0 1: the form only needs to be C¹ on it, and the exterior derivatives are taken within it (and within s for h ω). The base s is a convex set with unique derivatives that need not be open, such as a closed half-ball, the local shape of the image of a boundary chart of a manifold with boundary; the time direction always has boundary. Convexity is what Mathlib's mean value inequality needs to differentiate under the integral within s. In degree zero the identity reduces to the fundamental theorem of calculus h (d f) = ι₁^* f - ι₀^* f (TauCeti.cylinderHomotopy_extDerivWithin_eq_sub), which needs no convexity.

The proof differentiates under the integral sign and uses the fundamental theorem of calculus in the time variable. Pointwise, the derivative terms combine through the constant-coefficient Cartan formula ContinuousAlternatingMap.alternatizeUncurryFin_curryLeft_comp_add_curryLeft for the vector ∂ₜ, pulled back along inl by ContinuousAlternatingMap.alternatizeUncurryFin_compContinuousLinearMap, into the time derivative of ιₜ^* ω.

This is the chart-level form of the homotopy operator on forms on M × [0, 1] for a manifold M with or without boundary, the analytic input for homotopy invariance of de Rham cohomology. It is proved directly, without Stokes' theorem on the manifold with corners M × [0, 1].

Main declarations #

References #

noncomputable def TauCeti.cylinderHomotopy {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {n : ℕ} (ω : E × ℝ → (E × ℝ) [⋀^Fin (n + 1)]→L[ℝ] F) (x : E) :

The cylinder homotopy operator: the n-form x ↦ ∫₀¹ ω(x, t)((0, 1), ·) dt on E built from a differential (n + 1)-form ω on E × ℝ, with the arguments in E included into E × ℝ by ContinuousLinearMap.inl. For a C¹ form with values in a Banach space it satisfies d (h ω) + h (d ω) = ι₁^* ω - ι₀^* ω, where ιₜ is the slice x ↦ (x, t).

Instances For
    theorem TauCeti.cylinderHomotopy_congr {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {n : ℕ} {x : E} {ω₁ ω₂ : E × ℝ → (E × ℝ) [⋀^Fin (n + 1)]→L[ℝ] F} (h : ∀ t ∈ Set.Icc 0 1, ω₁ (x, t) = ω₂ (x, t)) :

    The cylinder homotopy operator at x only depends on the form along the segment {x} × [0, 1].

    theorem TauCeti.cylinderHomotopy_apply_apply {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {n : ℕ} [CompleteSpace F] {ω : E × ℝ → (E × ℝ) [⋀^Fin (n + 1)]→L[ℝ] F} {x : E} (hω : IntervalIntegrable (fun (t : ℝ) => ω (x, t)) MeasureTheory.volume 0 1) (v : Fin n → E) :
    (cylinderHomotopy ω x) v = ∫ (t : ℝ) in 0..1, (ω (x, t)) (Fin.cons (0, 1) fun (i : Fin n) => (v i, 0))

    Evaluated on vectors v₁, …, vₙ of E, the cylinder homotopy operator is the time integral ∫₀¹ ω(x, t)(∂ₜ, (v₁, 0), …, (vₙ, 0)) dt, for a form integrable along the segment {x} × [0, 1].

    @[simp]

    The cylinder homotopy operator of the zero form is zero.

    The cylinder homotopy operator commutes with real scalar multiplication of forms.

    The integrand t ↦ ω(x, t)(∂ₜ, (·, 0), …, (·, 0)) of the cylinder homotopy operator is interval integrable for a form that is continuous along the segment {x} × [0, 1].

    theorem TauCeti.cylinderHomotopy_add_apply {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {n : ℕ} {x : E} {ω₁ ω₂ : E × ℝ → (E × ℝ) [⋀^Fin (n + 1)]→L[ℝ] F} (h₁ : ContinuousOn ω₁ ({x} ×ˢ Set.Icc 0 1)) (h₂ : ContinuousOn ω₂ ({x} ×ˢ Set.Icc 0 1)) :
    cylinderHomotopy (ω₁ + ω₂) x = cylinderHomotopy ω₁ x + cylinderHomotopy ω₂ x

    The cylinder homotopy operator is additive on forms that are continuous along the segment {x} × [0, 1].

    The cylinder homotopy operator is supported over the part of the support of the form that lies in E × [0, 1].

    The cylinder homotopy operator of a compactly supported form is topologically supported over the part of the topological support of the form that lies in E × [0, 1].

    theorem TauCeti.norm_cylinderHomotopy_le {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {n : ℕ} {ω : E × ℝ → (E × ℝ) [⋀^Fin (n + 1)]→L[ℝ] F} {x : E} {B : ℝ} (h : ∀ t ∈ Set.Icc 0 1, ‖ω (x, t)‖ ≤ B) :

    The cylinder homotopy operator at x is bounded by any bound for the form along the segment {x} × [0, 1], for the sup norm on E × ℝ.

    theorem TauCeti.norm_iteratedFDeriv_cylinderHomotopy_le {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {n : ℕ} [CompleteSpace F] {r : WithTop ℕ∞} {ω : E × ℝ → (E × ℝ) [⋀^Fin (n + 1)]→L[ℝ] F} (hω : ContDiff ℝ r ω) (hc : HasCompactSupport ω) {i : ℕ} (hi : ↑i ≤ r) {x : E} {B : ℝ} (hB : ∀ t ∈ Set.Icc 0 1, ‖iteratedFDeriv ℝ i ω (x, t)‖ ≤ B) :

    The derivatives of the cylinder homotopy operator of a compactly supported C^r form are bounded by those of the form: if ‖Dⁱ ω (x, t)‖ ≤ B for t ∈ [0, 1] and i ≤ r, then ‖Dⁱ (h ω) x‖ ≤ B, for the sup norm on E × ℝ.

    The cylinder homotopy identity in degree zero, the fundamental theorem of calculus h (d f) = ι₁^* f - ι₀^* f for a C¹ function f on the cylinder s ×ˢ Icc 0 1, viewed as a 0-form.

    theorem Convex.contDiffOn_cylinderHomotopy {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {n : ℕ} {s : Set E} {ω : E × ℝ → (E × ℝ) [⋀^Fin (n + 1)]→L[ℝ] F} (hs : Convex ℝ s) (hsu : UniqueDiffOn ℝ s) {r : ℕ∞} (hω : ContDiffOn ℝ (↑r) ω (s ×ˢ Set.Icc 0 1)) :

    The cylinder homotopy operator of a form that is C^r on the cylinder s ×ˢ Icc 0 1 over a convex set s with unique derivatives is C^r on s.

    The cylinder homotopy identity d (h ω) + h (d ω) = ι₁^* ω - ι₀^* ω, with exterior derivatives within s and within the cylinder s ×ˢ Icc 0 1, for a form C¹ on the cylinder over a convex set s with unique derivatives. Here ιₜ^* ω is the pullback of ω along the slice x ↦ (x, t).

    theorem Convex.extDerivWithin_cylinderHomotopy {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {n : ℕ} {s : Set E} {ω : E × ℝ → (E × ℝ) [⋀^Fin (n + 1)]→L[ℝ] F} [CompleteSpace F] (hs : Convex ℝ s) (hsu : UniqueDiffOn ℝ s) (hω : ContDiffOn ℝ 1 ω (s ×ˢ Set.Icc 0 1)) (hclosed : ∀ p ∈ s ×ˢ Set.Icc 0 1, extDerivWithin ω (s ×ˢ Set.Icc 0 1) p = 0) {x : E} (hx : x ∈ s) :

    Closed forms on a cylinder. For a form C¹ on the cylinder s ×ˢ Icc 0 1 over a convex set s with unique derivatives and closed within the cylinder, the difference of its slice pullbacks ι₁^* ω - ι₀^* ω is the exterior derivative within s of its cylinder homotopy operator.

    theorem TauCeti.contDiff_cylinderHomotopy {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {n : ℕ} {r : ℕ∞} {ω : E × ℝ → (E × ℝ) [⋀^Fin (n + 1)]→L[ℝ] F} (hω : ContDiff ℝ (↑r) ω) :

    The cylinder homotopy operator of a form that is C^r on all of E × ℝ is C^r.

    The cylinder homotopy identity d (h ω) + h (d ω) = ι₁^* ω - ι₀^* ω for a form that is C¹ on all of E × ℝ, with exterior derivatives on the whole spaces. Here ιₜ^* ω is the pullback of ω along the slice x ↦ (x, t).

    The cylinder homotopy identity in degree zero, h (d f) = ι₁^* f - ι₀^* f for a function f that is C¹ on all of E × ℝ, viewed as a 0-form.