Skip to content

Commit c565719

Browse files
michaellee94grunweg
andcommitted
feat(Manifold/PartitionOfUnity): existence of global C^n smooth section for nontrivial bundles (#26875)
Add existence of global C^n smooth section for nontrivial bundles Co-authored-by: grunweg <rothgang@math.uni-bonn.de>
1 parent 0db8fb9 commit c565719

1 file changed

Lines changed: 117 additions & 14 deletions

File tree

Mathlib/Geometry/Manifold/PartitionOfUnity.lean

Lines changed: 117 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Authors: Yury Kudryashov
55
-/
66
import Mathlib.Geometry.Manifold.Algebra.Structures
77
import Mathlib.Geometry.Manifold.BumpFunction
8+
import Mathlib.Geometry.Manifold.VectorBundle.SmoothSection
89
import Mathlib.Topology.MetricSpace.PartitionOfUnity
910
import Mathlib.Topology.ShrinkingLemma
1011

@@ -58,7 +59,7 @@ smooth bump function, partition of unity
5859

5960
universe uι uE uH uM uF
6061

61-
open Function Filter Module Set
62+
open Bundle Function Filter Module Set
6263
open scoped Topology Manifold ContDiff
6364

6465
noncomputable 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+
572610
end SmoothPartitionOfUnity
573611

574612
variable [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`
577679
be 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`. -/
582687
theorem 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`
595696
be 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`.
597698
Then 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`. -/
600703
theorem 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
606709
a family of convex sets. Suppose that for each point `x : M` there exists a vector `c : F` such that
607710
for 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`. -/
610713
theorem 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

Comments
 (0)