@@ -5,6 +5,7 @@ Authors: Yury Kudryashov
55-/
66import Mathlib.Geometry.Manifold.Algebra.Structures
77import Mathlib.Geometry.Manifold.BumpFunction
8+ import Mathlib.Geometry.Manifold.VectorBundle.SmoothSection
89import Mathlib.Topology.MetricSpace.PartitionOfUnity
910import Mathlib.Topology.ShrinkingLemma
1011
@@ -58,7 +59,7 @@ smooth bump function, partition of unity
5859
5960universe uι uE uH uM uF
6061
61- open Function Filter Module Set
62+ open Bundle Function Filter Module Set
6263open scoped Topology Manifold ContDiff
6364
6465noncomputable section
@@ -569,33 +570,135 @@ theorem exists_isSubordinate_chartAt_source :
569570 apply exists_isSubordinate _ isClosed_univ _ (fun i ↦ (chartAt H _).open_source) (fun x _ ↦ ?_)
570571 exact mem_iUnion_of_mem x (mem_chart_source H x)
571572
573+ /--
574+ Let `ρ` be a smooth partition of unity subordinate to an open cover `U`.
575+ Let `s_loc` be a family of local sections, where each `s_loc i` is $C^n$ smooth on `U i`
576+ (when viewed as a map to the total space of the bundle).
577+ Then the global section `x ↦ ∑ᶠ i, ρ i x • s_loc i x`, when viewed as a map to the total space,
578+ is $C^n$ smooth.
579+ -/
580+ theorem contMDiff_totalSpace_weighted_sum_of_local_sections
581+ {E : Type uE} [NormedAddCommGroup E] [NormedSpace ℝ E]
582+ {H : Type uH} [TopologicalSpace H] (I : ModelWithCorners ℝ E H) {M : Type uM}
583+ [TopologicalSpace M] [ChartedSpace H M]
584+ {F_fiber : Type *} [NormedAddCommGroup F_fiber] [NormedSpace ℝ F_fiber]
585+ (V : M → Type *) [∀ x, NormedAddCommGroup (V x)] [∀ x, Module ℝ (V x)]
586+ [TopologicalSpace (TotalSpace F_fiber V)] [FiberBundle F_fiber V] [VectorBundle ℝ F_fiber V]
587+ {n : ℕ∞} {ι : Type *} (ρ : SmoothPartitionOfUnity ι I M univ) (s_loc : ι → ((x : M) → V x))
588+ (U : ι → Set M) (hU_isOpen : ∀ i, IsOpen (U i)) (hρ_subord : ρ.IsSubordinate U)
589+ (h_smooth_s_loc : ∀ i, ContMDiffOn I (I.prod 𝓘(ℝ, F_fiber)) n
590+ (fun x ↦ TotalSpace.mk' F_fiber x (s_loc i x)) (U i)) :
591+ ContMDiff I (I.prod 𝓘(ℝ, F_fiber)) n
592+ (fun x ↦ TotalSpace.mk' F_fiber x (∑ᶠ (j : ι), (ρ j x) • (s_loc j x))) := by
593+ intro x₀
594+ apply (Bundle.contMDiffAt_section x₀).mpr
595+ let e₀ := trivializationAt F_fiber V x₀
596+ apply ContMDiffAt.congr_of_eventuallyEq
597+ · apply ρ.contMDiffAt_finsum
598+ · intro j hx₀
599+ have := h_smooth_s_loc j |>.contMDiffAt <| (hU_isOpen j).mem_nhds <| hρ_subord j hx₀
600+ rwa [Bundle.contMDiffAt_section] at this
601+ · have h_base : {x : M | x ∈ e₀.baseSet} ∈ 𝓝 x₀ :=
602+ e₀.open_baseSet.mem_nhds (FiberBundle.mem_baseSet_trivializationAt' x₀)
603+ filter_upwards [ρ.eventually_fintsupport_subset x₀, h_base] with x _ hx_base
604+ have hfin : {i : ι | (ρ i x • s_loc i x) ≠ 0 }.Finite := by
605+ refine (ρ.locallyFinite.point_finite x).subset fun i hi_smul_ne_zero => ?_
606+ have : ρ i x ≠ 0 ∧ s_loc i x ≠ 0 := by simpa using hi_smul_ne_zero
607+ exact this.1
608+ simpa using e₀.linearEquivAt ℝ x hx_base |>.toAddMonoidHom.map_finsum hfin
609+
572610end SmoothPartitionOfUnity
573611
574612variable [SigmaCompactSpace M] [T2Space M] {t : M → Set F} {n : ℕ∞}
575613
614+ /-- Let `V` be a vector bundle over a σ-compact Hausdorff finite dimensional topological manifold
615+ `M`. Let `t : M → Set (V x)` be a family of convex sets in the fibers of `V`.
616+ Suppose that for each point `x₀ : M` there exists a neighborhood `U_x₀` of `x₀` and a local
617+ section `s_loc : M → V x` such that `s_loc` is $C^n$ smooth on `U_x₀` (when viewed as a map to
618+ the total space of the bundle) and `s_loc y ∈ t y` for all `y ∈ U_x₀`.
619+ Then there exists a global $C^n$ smooth section `s : Cₛ^n⟮I_M; F_fiber, V⟯` such that
620+ `s x ∈ t x` for all `x : M`.
621+ -/
622+ theorem exists_contMDiffOn_section_forall_mem_convex_of_local
623+ {F_fiber : Type *} [NormedAddCommGroup F_fiber] [NormedSpace ℝ F_fiber]
624+ (V : M → Type *) [∀ x, NormedAddCommGroup (V x)] [∀ x, Module ℝ (V x)]
625+ [TopologicalSpace (TotalSpace F_fiber V)] [FiberBundle F_fiber V] [VectorBundle ℝ F_fiber V]
626+ (t : ∀ x, Set (V x)) (ht_conv : ∀ x, Convex ℝ (t x))
627+ (Hloc :
628+ ∀ x₀ : M, ∃ U_x₀ ∈ 𝓝 x₀, ∃ (s_loc : (x : M) → V x),
629+ (ContMDiffOn I (I.prod 𝓘(ℝ, F_fiber)) n
630+ (fun x ↦ TotalSpace.mk' F_fiber x (s_loc x)) U_x₀) ∧
631+ (∀ y ∈ U_x₀, s_loc y ∈ t y)) :
632+ ∃ s : Cₛ^n⟮I; F_fiber, V⟯, ∀ x : M, s x ∈ t x := by
633+ choose W h_nhds s_loc s_smooth h_mem_t using Hloc
634+ -- Construct an open cover from the interiors of the given neighborhoods.
635+ let U (x : M) : Set M := interior (W x)
636+ have hU_covers_univ : univ ⊆ ⋃ x, U x := by
637+ intro x_pt _
638+ simp only [mem_iUnion]
639+ exact ⟨x_pt, mem_interior_iff_mem_nhds.mpr (h_nhds x_pt)⟩
640+ -- Obtain a smooth partition of unity subordinate to this open cover.
641+ obtain ⟨ρ, hρU⟩ : ∃ ρ : SmoothPartitionOfUnity M I M univ, ρ.IsSubordinate U :=
642+ SmoothPartitionOfUnity.exists_isSubordinate
643+ I isClosed_univ U (fun x ↦ isOpen_interior) hU_covers_univ
644+ -- Define the global section `s` by taking a weighted sum of the local sections.
645+ let s x : V x := ∑ᶠ j, (ρ j x) • s_loc j x
646+ -- Prove that `s`, when viewed as a map to the total space, is smooth.
647+ have s_smooth : ContMDiff I (I.prod 𝓘(ℝ, F_fiber)) n (fun x ↦ TotalSpace.mk' F_fiber x (s x)) :=
648+ ρ.contMDiff_totalSpace_weighted_sum_of_local_sections
649+ I V s_loc U (fun x ↦ isOpen_interior) hρU fun j ↦ (s_smooth j).mono interior_subset
650+ -- Construct the smooth section and prove it lies in the convex sets `t x`.
651+ refine ⟨⟨s, s_smooth⟩, fun x ↦ ?_⟩
652+ apply (ht_conv x).finsum_mem (ρ.nonneg · x) (ρ.sum_eq_one (mem_univ x))
653+ intro j h_ρjx_ne_zero
654+ have h_x_in_tsupport_ρj : x ∈ tsupport (ρ j) := subset_closure (mem_support.mpr h_ρjx_ne_zero)
655+ have h_x_in_Umap_j : x ∈ W j := interior_subset (hρU j h_x_in_tsupport_ρj)
656+ exact h_mem_t j x h_x_in_Umap_j
657+
658+ /-- Let `V` be a vector bundle over a σ-compact Hausdorff finite dimensional topological manifold
659+ `M`. Let `t : M → Set (V x)` be a family of convex sets in the fibers of `V`.
660+ Suppose that for each point `x₀ : M` there exists a neighborhood `U_x₀` of `x₀` and a local
661+ section `s_loc : M → V x` such that `s_loc` is $C^∞$ smooth on `U_x₀` (when viewed as a map to
662+ the total space of the bundle) and `s_loc y ∈ t y` for all `y ∈ U_x₀`.
663+ Then there exists a global smooth section `s : Cₛ^∞⟮I_M; F_fiber, V⟯` such that
664+ `s x ∈ t x` for all `x : M`.
665+ -/
666+ theorem exists_smooth_section_forall_mem_convex_of_local
667+ {F_fiber : Type *} [NormedAddCommGroup F_fiber] [NormedSpace ℝ F_fiber]
668+ (V : M → Type *) [∀ x, NormedAddCommGroup (V x)] [∀ x, Module ℝ (V x)]
669+ [TopologicalSpace (TotalSpace F_fiber V)] [FiberBundle F_fiber V] [VectorBundle ℝ F_fiber V]
670+ (t : ∀ x, Set (V x)) (ht_conv : ∀ x, Convex ℝ (t x))
671+ (Hloc :
672+ ∀ x₀ : M, ∃ U_x₀ ∈ 𝓝 x₀, ∃ (s_loc : (x : M) → V x),
673+ (ContMDiffOn I (I.prod 𝓘(ℝ, F_fiber)) ∞ (fun x ↦ TotalSpace.mk' F_fiber x (s_loc x)) U_x₀) ∧
674+ (∀ y ∈ U_x₀, s_loc y ∈ t y)) :
675+ ∃ s : Cₛ^∞⟮I; F_fiber, V⟯, ∀ x : M, s x ∈ t x :=
676+ exists_contMDiffOn_section_forall_mem_convex_of_local I V t ht_conv Hloc
677+
576678/-- Let `M` be a σ-compact Hausdorff finite dimensional topological manifold. Let `t : M → Set F`
577679be a family of convex sets. Suppose that for each point `x : M` there exists a neighborhood
578680`U ∈ 𝓝 x` and a function `g : M → F` such that `g` is $C^n$ smooth on `U` and `g y ∈ t y` for all
579- `y ∈ U`. Then there exists a $C^n$ smooth function `g : C^∞⟮I, M; 𝓘(ℝ, F), F⟯` such that `g x ∈ t x`
580- for all `x`. See also `exists_smooth_forall_mem_convex_of_local` and
681+ `y ∈ U`. Then there exists a $C^n$ smooth function `g : C^n⟮I, M; 𝓘(ℝ, F), F⟯` such that `g x ∈ t x`
682+ for all `x`.
683+
684+ This is a special case of `exists_contMDiffOn_section_forall_mem_convex_of_local` where `V` is the
685+ trivial bundle. See also `exists_smooth_forall_mem_convex_of_local` and
581686`exists_smooth_forall_mem_convex_of_local_const`. -/
582687theorem exists_contMDiffOn_forall_mem_convex_of_local (ht : ∀ x, Convex ℝ (t x))
583688 (Hloc : ∀ x : M, ∃ U ∈ 𝓝 x, ∃ g : M → F, ContMDiffOn I 𝓘(ℝ, F) n g U ∧ ∀ y ∈ U, g y ∈ t y) :
584- ∃ g : C^n⟮I, M; 𝓘(ℝ, F), F⟯, ∀ x, g x ∈ t x := by
585- choose U hU g hgs hgt using Hloc
586- obtain ⟨f, hf⟩ :=
587- SmoothPartitionOfUnity.exists_isSubordinate I isClosed_univ (fun x => interior (U x))
588- (fun x => isOpen_interior) fun x _ => mem_iUnion.2 ⟨x, mem_interior_iff_mem_nhds.2 (hU x)⟩
589- refine ⟨⟨fun x => ∑ᶠ i, f i x • g i x,
590- hf.contMDiff_finsum_smul (fun i => isOpen_interior) fun i => (hgs i).mono interior_subset⟩,
591- fun x => f.finsum_smul_mem_convex (mem_univ x) (fun i hi => hgt _ _ ?_) (ht _)⟩
592- exact interior_subset (hf _ <| subset_closure hi)
689+ ∃ g : C^n⟮I, M; 𝓘(ℝ, F), F⟯, ∀ x, g x ∈ t x :=
690+ let ⟨s, hs⟩ := exists_contMDiffOn_section_forall_mem_convex_of_local I (fun _ ↦ F) t ht
691+ (fun x₀ ↦ let ⟨U, hU, g, hgs, hgt⟩ := Hloc x₀
692+ ⟨U, hU, g, fun y hy ↦ Bundle.contMDiffWithinAt_section |>.mpr <| hgs y hy, hgt⟩)
693+ ⟨⟨s, (Bundle.contMDiffAt_section _ |>.mp <| s.contMDiff ·)⟩, hs⟩
593694
594695/-- Let `M` be a σ-compact Hausdorff finite dimensional topological manifold. Let `t : M → Set F`
595696be a family of convex sets. Suppose that for each point `x : M` there exists a neighborhood
596697`U ∈ 𝓝 x` and a function `g : M → F` such that `g` is smooth on `U` and `g y ∈ t y` for all `y ∈ U`.
597698Then there exists a smooth function `g : C^∞⟮I, M; 𝓘(ℝ, F), F⟯` such that `g x ∈ t x` for all `x`.
598- See also `exists_contMDiffOn_forall_mem_convex_of_local` and
699+
700+ This is a special case of `exists_smooth_section_forall_mem_convex_of_local` where `V` is the
701+ trivial bundle. See also `exists_contMDiffOn_forall_mem_convex_of_local` and
599702`exists_smooth_forall_mem_convex_of_local_const`. -/
600703theorem exists_smooth_forall_mem_convex_of_local (ht : ∀ x, Convex ℝ (t x))
601704 (Hloc : ∀ x : M, ∃ U ∈ 𝓝 x, ∃ g : M → F, ContMDiffOn I 𝓘(ℝ, F) ∞ g U ∧ ∀ y ∈ U, g y ∈ t y) :
@@ -605,7 +708,7 @@ theorem exists_smooth_forall_mem_convex_of_local (ht : ∀ x, Convex ℝ (t x))
605708/-- Let `M` be a σ-compact Hausdorff finite dimensional topological manifold. Let `t : M → Set F` be
606709a family of convex sets. Suppose that for each point `x : M` there exists a vector `c : F` such that
607710for all `y` in a neighborhood of `x` we have `c ∈ t y`. Then there exists a smooth function
608- `g : C^∞⟮I, M; 𝓘(ℝ, F), F⟯` such that `g x ∈ t x` for all `x`. See also
711+ `g : C^∞⟮I, M; 𝓘(ℝ, F), F⟯` such that `g x ∈ t x` for all `x`. See also
609712`exists_contMDiffOn_forall_mem_convex_of_local` and `exists_smooth_forall_mem_convex_of_local`. -/
610713theorem exists_smooth_forall_mem_convex_of_local_const (ht : ∀ x, Convex ℝ (t x))
611714 (Hloc : ∀ x : M, ∃ c : F, ∀ᶠ y in 𝓝 x, c ∈ t y) : ∃ g : C^∞⟮I, M; 𝓘(ℝ, F), F⟯, ∀ x, g x ∈ t x :=
0 commit comments