Documentation

TauCeti.Geometry.Manifold.VectorBundle.ContinuousAlternatingMap

Smooth bundles of continuous alternating maps #

Continuous alternating maps between two smooth vector bundles form a smooth vector bundle. This equips the bundles underlying differential forms with smooth coordinate changes, without changing Mathlib's topology, trivializations, or atlas.

Mathlib's Mathlib.Geometry.Manifold.VectorBundle.ContinuousAlternatingMap provides the same construction over characteristic-zero fields, together with the fibre-coordinate regularity criteria such as contMDiffAt_continuousAlternatingMap_bundle. The results here remove the characteristic-zero assumption.

A family of alternating maps of two vectors whose values are given by a C^n section of the bundle of bilinear maps is itself a C^n section of the alternating-map bundle (TauCeti.contMDiffAt_continuousAlternatingMap_bundle_of_bilinear). This lets a two-form be built from a smooth bilinear tensor field without repeating a coordinate computation.

The coordinate-change proof follows Floris van Doorn's smooth Hom-bundle construction in Mathlib.Geometry.Manifold.VectorBundle.Hom, using the topological alternating-map bundle of Yury Kudryashov, Heather Macbeth, and Floris van Doorn. Its domain pullback is smooth, while its codomain postcomposition is continuous linear. The construction works over every nontrivially normed field at finite orders and āˆž. At the analytic order ω, the construction assumes a nonzero arity factorial, automatically including characteristic-zero fields. Models with corners are arbitrary, with no dimension or completeness assumptions.

theorem TauCeti.contMDiffOn_continuousAlternatingMapCoordChange {š•œ : Type u_1} {ι : Type u_2} {B : Type u_3} {F₁ : Type u_4} {Fā‚‚ : Type u_5} [NontriviallyNormedField š•œ] [Fintype ι] {n : WithTop ā„•āˆž} {E₁ : B → Type u_6} {Eā‚‚ : B → Type u_7} [(x : B) → AddCommGroup (E₁ x)] [(x : B) → Module š•œ (E₁ x)] [NormedAddCommGroup F₁] [NormedSpace š•œ F₁] [TopologicalSpace (Bundle.TotalSpace F₁ E₁)] [(x : B) → TopologicalSpace (E₁ x)] [(x : B) → AddCommGroup (Eā‚‚ x)] [(x : B) → Module š•œ (Eā‚‚ x)] [NormedAddCommGroup Fā‚‚] [NormedSpace š•œ Fā‚‚] [TopologicalSpace (Bundle.TotalSpace Fā‚‚ Eā‚‚)] [(x : B) → TopologicalSpace (Eā‚‚ x)] {EB : Type u_8} {HB : Type u_9} [NormedAddCommGroup EB] [NormedSpace š•œ EB] [TopologicalSpace HB] {IB : ModelWithCorners š•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] [FiberBundle F₁ E₁] [VectorBundle š•œ F₁ E₁] [FiberBundle Fā‚‚ Eā‚‚] [VectorBundle š•œ Fā‚‚ Eā‚‚] [ContMDiffVectorBundle n F₁ E₁ IB] [ContMDiffVectorBundle n Fā‚‚ Eā‚‚ IB] {e₁ e₁' : Bundle.Trivialization F₁ Bundle.TotalSpace.proj} {eā‚‚ eā‚‚' : Bundle.Trivialization Fā‚‚ Bundle.TotalSpace.proj} [MemTrivializationAtlas e₁] [MemTrivializationAtlas e₁'] [MemTrivializationAtlas eā‚‚] [MemTrivializationAtlas eā‚‚'] (hn : n = ⊤ → ↑(Fintype.card ι).factorial ≠ 0 := by intro h first | exact NeZero.ne _ | cases h) :
ContMDiffOn IB (modelWithCornersSelf š•œ (F₁ [ā‹€^ι]→L[š•œ] Fā‚‚ →L[š•œ] F₁ [ā‹€^ι]→L[š•œ] Fā‚‚)) n (Bundle.Pretrivialization.continuousAlternatingMapCoordChange š•œ ι e₁ e₁' eā‚‚ eā‚‚') (e₁.baseSet ∩ eā‚‚.baseSet ∩ (e₁'.baseSet ∩ eā‚‚'.baseSet))

Coordinate changes of the alternating-map bundle have the same regularity as the coordinate changes of its domain and codomain bundles, provided the arity factorial is nonzero in š•œ at the analytic order ω. Finite orders and āˆž have no characteristic restriction.

theorem TauCeti.isContMDiff_continuousAlternatingMap_vectorPrebundle {š•œ : Type u_1} {ι : Type u_2} {B : Type u_3} {F₁ : Type u_4} {Fā‚‚ : Type u_5} [NontriviallyNormedField š•œ] [Fintype ι] {n : WithTop ā„•āˆž} {E₁ : B → Type u_6} {Eā‚‚ : B → Type u_7} [(x : B) → AddCommGroup (E₁ x)] [(x : B) → Module š•œ (E₁ x)] [NormedAddCommGroup F₁] [NormedSpace š•œ F₁] [TopologicalSpace (Bundle.TotalSpace F₁ E₁)] [(x : B) → TopologicalSpace (E₁ x)] [(x : B) → AddCommGroup (Eā‚‚ x)] [(x : B) → Module š•œ (Eā‚‚ x)] [NormedAddCommGroup Fā‚‚] [NormedSpace š•œ Fā‚‚] [TopologicalSpace (Bundle.TotalSpace Fā‚‚ Eā‚‚)] [(x : B) → TopologicalSpace (Eā‚‚ x)] {EB : Type u_8} {HB : Type u_9} [NormedAddCommGroup EB] [NormedSpace š•œ EB] [TopologicalSpace HB] {IB : ModelWithCorners š•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] [FiberBundle F₁ E₁] [VectorBundle š•œ F₁ E₁] [FiberBundle Fā‚‚ Eā‚‚] [VectorBundle š•œ Fā‚‚ Eā‚‚] [ContMDiffVectorBundle n F₁ E₁ IB] [ContMDiffVectorBundle n Fā‚‚ Eā‚‚ IB] [āˆ€ (x : B), IsTopologicalAddGroup (Eā‚‚ x)] [āˆ€ (x : B), ContinuousSMul š•œ (Eā‚‚ x)] (hn : n = ⊤ → ↑(Fintype.card ι).factorial ≠ 0 := by intro h first | exact NeZero.ne _ | cases h) :
VectorPrebundle.IsContMDiff IB (Bundle.ContinuousAlternatingMap.vectorPrebundle š•œ ι F₁ E₁ Fā‚‚ Eā‚‚) n

Mathlib's alternating-map vector prebundle has smooth coordinate changes. The analytic order ω requires a nonzero arity factorial in š•œ.

instance TauCeti.instIsContMDiffContinuousAlternatingMapVectorPrebundleOfFactorialNeZero {š•œ : Type u_1} {ι : Type u_2} {B : Type u_3} {F₁ : Type u_4} {Fā‚‚ : Type u_5} [NontriviallyNormedField š•œ] [Fintype ι] {n : WithTop ā„•āˆž} {E₁ : B → Type u_6} {Eā‚‚ : B → Type u_7} [(x : B) → AddCommGroup (E₁ x)] [(x : B) → Module š•œ (E₁ x)] [NormedAddCommGroup F₁] [NormedSpace š•œ F₁] [TopologicalSpace (Bundle.TotalSpace F₁ E₁)] [(x : B) → TopologicalSpace (E₁ x)] [(x : B) → AddCommGroup (Eā‚‚ x)] [(x : B) → Module š•œ (Eā‚‚ x)] [NormedAddCommGroup Fā‚‚] [NormedSpace š•œ Fā‚‚] [TopologicalSpace (Bundle.TotalSpace Fā‚‚ Eā‚‚)] [(x : B) → TopologicalSpace (Eā‚‚ x)] {EB : Type u_8} {HB : Type u_9} [NormedAddCommGroup EB] [NormedSpace š•œ EB] [TopologicalSpace HB] {IB : ModelWithCorners š•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] [FiberBundle F₁ E₁] [VectorBundle š•œ F₁ E₁] [FiberBundle Fā‚‚ Eā‚‚] [VectorBundle š•œ Fā‚‚ Eā‚‚] [ContMDiffVectorBundle n F₁ E₁ IB] [ContMDiffVectorBundle n Fā‚‚ Eā‚‚ IB] [āˆ€ (x : B), IsTopologicalAddGroup (Eā‚‚ x)] [āˆ€ (x : B), ContinuousSMul š•œ (Eā‚‚ x)] [NeZero ↑(Fintype.card ι).factorial] :
VectorPrebundle.IsContMDiff IB (Bundle.ContinuousAlternatingMap.vectorPrebundle š•œ ι F₁ E₁ Fā‚‚ Eā‚‚) n

When the arity factorial is nonzero in š•œ, the alternating-map prebundle has C^n coordinate changes at every order n, including ω.

instance TauCeti.instContMDiffVectorBundleContinuousAlternatingMap {š•œ : Type u_1} {ι : Type u_2} {B : Type u_3} {F₁ : Type u_4} {Fā‚‚ : Type u_5} [NontriviallyNormedField š•œ] [Fintype ι] {n : WithTop ā„•āˆž} {E₁ : B → Type u_6} {Eā‚‚ : B → Type u_7} [(x : B) → AddCommGroup (E₁ x)] [(x : B) → Module š•œ (E₁ x)] [NormedAddCommGroup F₁] [NormedSpace š•œ F₁] [TopologicalSpace (Bundle.TotalSpace F₁ E₁)] [(x : B) → TopologicalSpace (E₁ x)] [(x : B) → AddCommGroup (Eā‚‚ x)] [(x : B) → Module š•œ (Eā‚‚ x)] [NormedAddCommGroup Fā‚‚] [NormedSpace š•œ Fā‚‚] [TopologicalSpace (Bundle.TotalSpace Fā‚‚ Eā‚‚)] [(x : B) → TopologicalSpace (Eā‚‚ x)] {EB : Type u_8} {HB : Type u_9} [NormedAddCommGroup EB] [NormedSpace š•œ EB] [TopologicalSpace HB] {IB : ModelWithCorners š•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] [FiberBundle F₁ E₁] [VectorBundle š•œ F₁ E₁] [FiberBundle Fā‚‚ Eā‚‚] [VectorBundle š•œ Fā‚‚ Eā‚‚] [āˆ€ (x : B), IsTopologicalAddGroup (Eā‚‚ x)] [āˆ€ (x : B), ContinuousSMul š•œ (Eā‚‚ x)] [VectorPrebundle.IsContMDiff IB (Bundle.ContinuousAlternatingMap.vectorPrebundle š•œ ι F₁ E₁ Fā‚‚ Eā‚‚) n] :
ContMDiffVectorBundle n (F₁ [ā‹€^ι]→L[š•œ] Fā‚‚) (fun (b : B) => E₁ b [ā‹€^ι]→L[š•œ] Eā‚‚ b) IB

Smooth coordinate changes of Mathlib's alternating-map prebundle induce a C^n vector bundle with its existing topology and atlas.

theorem TauCeti.mdifferentiableOn_continuousAlternatingMapCoordChange {š•œ : Type u_1} {ι : Type u_2} {B : Type u_3} {F₁ : Type u_4} {Fā‚‚ : Type u_5} [NontriviallyNormedField š•œ] [Fintype ι] {E₁ : B → Type u_6} {Eā‚‚ : B → Type u_7} [(x : B) → AddCommGroup (E₁ x)] [(x : B) → Module š•œ (E₁ x)] [NormedAddCommGroup F₁] [NormedSpace š•œ F₁] [TopologicalSpace (Bundle.TotalSpace F₁ E₁)] [(x : B) → TopologicalSpace (E₁ x)] [(x : B) → AddCommGroup (Eā‚‚ x)] [(x : B) → Module š•œ (Eā‚‚ x)] [NormedAddCommGroup Fā‚‚] [NormedSpace š•œ Fā‚‚] [TopologicalSpace (Bundle.TotalSpace Fā‚‚ Eā‚‚)] [(x : B) → TopologicalSpace (Eā‚‚ x)] {EB : Type u_8} {HB : Type u_9} [NormedAddCommGroup EB] [NormedSpace š•œ EB] [TopologicalSpace HB] {IB : ModelWithCorners š•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] [FiberBundle F₁ E₁] [VectorBundle š•œ F₁ E₁] [FiberBundle Fā‚‚ Eā‚‚] [VectorBundle š•œ Fā‚‚ Eā‚‚] [ContMDiffVectorBundle 1 F₁ E₁ IB] [ContMDiffVectorBundle 1 Fā‚‚ Eā‚‚ IB] {e₁ e₁' : Bundle.Trivialization F₁ Bundle.TotalSpace.proj} {eā‚‚ eā‚‚' : Bundle.Trivialization Fā‚‚ Bundle.TotalSpace.proj} [MemTrivializationAtlas e₁] [MemTrivializationAtlas e₁'] [MemTrivializationAtlas eā‚‚] [MemTrivializationAtlas eā‚‚'] :
MDiff[e₁.baseSet ∩ eā‚‚.baseSet ∩ (e₁'.baseSet ∩ eā‚‚'.baseSet)] (Bundle.Pretrivialization.continuousAlternatingMapCoordChange š•œ ι e₁ e₁' eā‚‚ eā‚‚')

Coordinate changes of the alternating-map bundle are differentiable when the domain and codomain bundles have C^1 coordinate changes.

instance TauCeti.instIsContMDiffContinuousAlternatingMapVectorPrebundle {š•œ : Type u_1} {ι : Type u_2} {B : Type u_3} {F₁ : Type u_4} {Fā‚‚ : Type u_5} [NontriviallyNormedField š•œ] [Fintype ι] {n : WithTop ā„•āˆž} {E₁ : B → Type u_6} {Eā‚‚ : B → Type u_7} [(x : B) → AddCommGroup (E₁ x)] [(x : B) → Module š•œ (E₁ x)] [NormedAddCommGroup F₁] [NormedSpace š•œ F₁] [TopologicalSpace (Bundle.TotalSpace F₁ E₁)] [(x : B) → TopologicalSpace (E₁ x)] [(x : B) → AddCommGroup (Eā‚‚ x)] [(x : B) → Module š•œ (Eā‚‚ x)] [NormedAddCommGroup Fā‚‚] [NormedSpace š•œ Fā‚‚] [TopologicalSpace (Bundle.TotalSpace Fā‚‚ Eā‚‚)] [(x : B) → TopologicalSpace (Eā‚‚ x)] {EB : Type u_8} {HB : Type u_9} [NormedAddCommGroup EB] [NormedSpace š•œ EB] [TopologicalSpace HB] {IB : ModelWithCorners š•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] [FiberBundle F₁ E₁] [VectorBundle š•œ F₁ E₁] [FiberBundle Fā‚‚ Eā‚‚] [VectorBundle š•œ Fā‚‚ Eā‚‚] [ENat.LEInfty n] [ContMDiffVectorBundle n F₁ E₁ IB] [ContMDiffVectorBundle n Fā‚‚ Eā‚‚ IB] [āˆ€ (x : B), IsTopologicalAddGroup (Eā‚‚ x)] [āˆ€ (x : B), ContinuousSMul š•œ (Eā‚‚ x)] :
VectorPrebundle.IsContMDiff IB (Bundle.ContinuousAlternatingMap.vectorPrebundle š•œ ι F₁ E₁ Fā‚‚ Eā‚‚) n

At finite orders and āˆž, alternating-map coordinate changes are smooth in every characteristic.

theorem TauCeti.contMDiffAt_continuousAlternatingMap_bundle_of_bilinear {š•œ : Type u_1} {B : Type u_3} {F₁ : Type u_4} {Fā‚‚ : Type u_5} [NontriviallyNormedField š•œ] {n : WithTop ā„•āˆž} {E₁ : B → Type u_6} {Eā‚‚ : B → Type u_7} [(x : B) → AddCommGroup (E₁ x)] [(x : B) → Module š•œ (E₁ x)] [NormedAddCommGroup F₁] [NormedSpace š•œ F₁] [TopologicalSpace (Bundle.TotalSpace F₁ E₁)] [(x : B) → TopologicalSpace (E₁ x)] [(x : B) → AddCommGroup (Eā‚‚ x)] [(x : B) → Module š•œ (Eā‚‚ x)] [NormedAddCommGroup Fā‚‚] [NormedSpace š•œ Fā‚‚] [TopologicalSpace (Bundle.TotalSpace Fā‚‚ Eā‚‚)] [(x : B) → TopologicalSpace (Eā‚‚ x)] {EB : Type u_8} {HB : Type u_9} [NormedAddCommGroup EB] [NormedSpace š•œ EB] [TopologicalSpace HB] {IB : ModelWithCorners š•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] [FiberBundle F₁ E₁] [VectorBundle š•œ F₁ E₁] [FiberBundle Fā‚‚ Eā‚‚] [VectorBundle š•œ Fā‚‚ Eā‚‚] [CompleteSpace š•œ] [FiniteDimensional š•œ F₁] [āˆ€ (x : B), IsTopologicalAddGroup (Eā‚‚ x)] [āˆ€ (x : B), ContinuousSMul š•œ (Eā‚‚ x)] {α : (x : B) → E₁ x [ā‹€^Fin 2]→L[š•œ] Eā‚‚ x} {β : (x : B) → E₁ x →L[š•œ] E₁ x →L[š•œ] Eā‚‚ x} {xā‚€ : B} (hβ : ContMDiffAt IB (IB.prod (modelWithCornersSelf š•œ (F₁ →L[š•œ] F₁ →L[š•œ] Fā‚‚))) n (fun (x : B) => ⟨x, β x⟩) xā‚€) (hα : āˆ€ (x : B) (v : Fin 2 → E₁ x), (α x) v = ((β x) (v 0)) (v 1)) :
ContMDiffAt IB (IB.prod (modelWithCornersSelf š•œ (F₁ [ā‹€^Fin 2]→L[š•œ] Fā‚‚))) n (fun (x : B) => ⟨x, α x⟩) xā‚€

A family of alternating maps of two vectors whose values are given by a C^n section of the bundle of bilinear maps is a C^n section of the alternating-map bundle.