Theorem: exists_contMDiffOn_forall_mem_convex_of_local
File: Mathlib/Geometry/Manifold/PartitionOfUnity.lean

Proof steps:
state_before: ι : Type uι
E : Type uE
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : FiniteDimensional ℝ E
F : Type uF
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
H : Type uH
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
inst✝¹ : SigmaCompactSpace M
inst✝ : T2Space M
t : M → Set F
n : ℕ∞
ht : ∀ (x : M), Convex ℝ (t x)
Hloc : ∀ (x : M), ∃ U ∈ 𝓝 x, ∃ g, ContMDiffOn I 𝓘(ℝ, F) n g U ∧ ∀ y ∈ U, g y ∈ t y
⊢ ∃ g, ∀ (x : M), g x ∈ t x
state_after: ι : Type uι
E : Type uE
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : FiniteDimensional ℝ E
F : Type uF
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
H : Type uH
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
inst✝¹ : SigmaCompactSpace M
inst✝ : T2Space M
t : M → Set F
n : ℕ∞
ht : ∀ (x : M), Convex ℝ (t x)
U : M → Set M
hU : ∀ (x : M), U x ∈ 𝓝 x
g : M → M → F
hgs : ∀ (x : M), ContMDiffOn I 𝓘(ℝ, F) n (g x) (U x)
hgt : ∀ (x y : M), y ∈ U x → g x y ∈ t y
⊢ ∃ g, ∀ (x : M), g x ∈ t x
tactic: choose U hU g hgs hgt using Hloc
state_before: ι : Type uι
E : Type uE
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : FiniteDimensional ℝ E
F : Type uF
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
H : Type uH
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
inst✝¹ : SigmaCompactSpace M
inst✝ : T2Space M
t : M → Set F
n : ℕ∞
ht : ∀ (x : M), Convex ℝ (t x)
U : M → Set M
hU : ∀ (x : M), U x ∈ 𝓝 x
g : M → M → F
hgs : ∀ (x : M), ContMDiffOn I 𝓘(ℝ, F) n (g x) (U x)
hgt : ∀ (x y : M), y ∈ U x → g x y ∈ t y
⊢ ∃ g, ∀ (x : M), g x ∈ t x
state_after: case intro
ι : Type uι
E : Type uE
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : FiniteDimensional ℝ E
F : Type uF
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
H : Type uH
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
inst✝¹ : SigmaCompactSpace M
inst✝ : T2Space M
t : M → Set F
n : ℕ∞
ht : ∀ (x : M), Convex ℝ (t x)
U : M → Set M
hU : ∀ (x : M), U x ∈ 𝓝 x
g : M → M → F
hgs : ∀ (x : M), ContMDiffOn I 𝓘(ℝ, F) n (g x) (U x)
hgt : ∀ (x y : M), y ∈ U x → g x y ∈ t y
f : SmoothPartitionOfUnity M I M
hf : f.IsSubordinate fun x => interior (U x)
⊢ ∃ g, ∀ (x : M), g x ∈ t x
tactic: obtain ⟨f, hf⟩ :=
    SmoothPartitionOfUnity.exists_isSubordinate I isClosed_univ (fun x => interior (U x))
      (fun x => isOpen_interior) fun x _ => mem_iUnion.2 ⟨x, mem_interior_iff_mem_nhds.2 (hU x)⟩
state_before: case intro
ι : Type uι
E : Type uE
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : FiniteDimensional ℝ E
F : Type uF
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
H : Type uH
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
inst✝¹ : SigmaCompactSpace M
inst✝ : T2Space M
t : M → Set F
n : ℕ∞
ht : ∀ (x : M), Convex ℝ (t x)
U : M → Set M
hU : ∀ (x : M), U x ∈ 𝓝 x
g : M → M → F
hgs : ∀ (x : M), ContMDiffOn I 𝓘(ℝ, F) n (g x) (U x)
hgt : ∀ (x y : M), y ∈ U x → g x y ∈ t y
f : SmoothPartitionOfUnity M I M
hf : f.IsSubordinate fun x => interior (U x)
⊢ ∃ g, ∀ (x : M), g x ∈ t x
state_after: case intro
ι : Type uι
E : Type uE
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : FiniteDimensional ℝ E
F : Type uF
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
H : Type uH
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
inst✝¹ : SigmaCompactSpace M
inst✝ : T2Space M
t : M → Set F
n : ℕ∞
ht : ∀ (x : M), Convex ℝ (t x)
U : M → Set M
hU : ∀ (x : M), U x ∈ 𝓝 x
g : M → M → F
hgs : ∀ (x : M), ContMDiffOn I 𝓘(ℝ, F) n (g x) (U x)
hgt : ∀ (x y : M), y ∈ U x → g x y ∈ t y
f : SmoothPartitionOfUnity M I M
hf : f.IsSubordinate fun x => interior (U x)
x i : M
hi : (f i) x ≠ 0
⊢ x ∈ U i
tactic: refine ⟨⟨fun x => ∑ᶠ i, f i x • g i x,
      hf.contMDiff_finsum_smul (fun i => isOpen_interior) fun i => (hgs i).mono interior_subset⟩,
    fun x => f.finsum_smul_mem_convex (mem_univ x) (fun i hi => hgt _ _ ?_) (ht _)⟩
state_before: case intro
ι : Type uι
E : Type uE
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : FiniteDimensional ℝ E
F : Type uF
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
H : Type uH
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
inst✝¹ : SigmaCompactSpace M
inst✝ : T2Space M
t : M → Set F
n : ℕ∞
ht : ∀ (x : M), Convex ℝ (t x)
U : M → Set M
hU : ∀ (x : M), U x ∈ 𝓝 x
g : M → M → F
hgs : ∀ (x : M), ContMDiffOn I 𝓘(ℝ, F) n (g x) (U x)
hgt : ∀ (x y : M), y ∈ U x → g x y ∈ t y
f : SmoothPartitionOfUnity M I M
hf : f.IsSubordinate fun x => interior (U x)
x i : M
hi : (f i) x ≠ 0
⊢ x ∈ U i
state_after: no goals
tactic: exact interior_subset (hf _ <| subset_closure hi)