88public import Mathlib.Geometry.Manifold.VectorBundle.Riemannian
99public import Mathlib.Geometry.Manifold.PartitionOfUnity
1010
11- /-! # Existence of a Riemannian bundle metric
11+ /-! ## Existence of a Riemannian bundle metric
1212
1313Using a partition of unity, we prove the existence of a smooth Riemannian metric.
1414
15+ The idea is that there are two equivalent ways of defining a bilinear positive definite form:
16+
17+ 1) pull back the inner product on ℝ^n via the inverse trivialisation
18+ 2) push forward vectors and then apply the inner product on ℝ^n
19+
20+ It turns out that using (1) makes proving smoothness straightforward and
21+ `g_bilin_smooth_on_chart` proves that locally `g_bilini` is smooth (the trick is to make
22+ the set on which this is true small enough hence the intersection:
23+ `((trivializationAt F E i).baseSet ∩ (chartAt HB i).source)`).
24+ This can then be used to prove global smoothness via a partition of unity.
25+
26+ However it is not so clear (to me at any rate) how one uses (1) to prove positive definiteness.
27+ This is where (2) comes in. With this definition, it is straightforward to prove
28+ positivity, definiteness and symmetry.
29+
30+ We then prove that the two definitions are equal which allows me to prove that (1) is symmetric,
31+ positive and definite.
32+
33+ But one is still not done. Mathlib's definition requires von Neumann boundedness
34+ which is true for finite dimensional manifolds.
35+
1536-/
1637
1738open Set Bundle ContDiff Manifold Trivialization SmoothPartitionOfUnity
1839
19- variable
20- {B : Type *}
21- {E : B → Type *} [∀ x, NormedAddCommGroup (E x)]
40+ variable {B : Type *}
41+ {E : B → Type *}
42+ [∀ x, NormedAddCommGroup (E x)]
2243
2344section tangentSpaceEquiv
2445
25- variable
26- [∀ x, NormedSpace ℝ (E x)]
46+ variable [∀ x, NormedSpace ℝ (E x)]
2747
2848structure VectorSpaceAux
2949 (x : B) (φ : E x →L[ℝ] E x →L[ℝ] ℝ) (hpos : ∀ v, 0 ≤ φ v v)
@@ -119,7 +139,7 @@ lemma my_eq_of_dist_eq_zero {x : B} (φ : E x →L[ℝ] E x →L[ℝ] ℝ) (hpos
119139 (seminormOfBilinearForm φ hpos hsymm) (u.val - v.val) = 0 → u = v := by
120140 intro h
121141 rw [seminormOfBilinearForm] at h
122- have h1 : u.val - v.val = 0 := ( hdef (u.val - v.val) )
142+ have h1 : u.val - v.val = 0 := hdef (u.val - v.val)
123143 ((Real.sqrt_eq_zero (hpos (u.val - v.val))).mp h)
124144 apply (VectorSpaceAux.ext_iff φ hpos hsymm hdef u v).mpr
125145 exact sub_eq_zero.mp h1
@@ -205,28 +225,28 @@ variable
205225 [IsManifold IB ω B] [ContMDiffVectorBundle ω F E IB]
206226 [FiniteDimensional ℝ EB]
207227
208- def g_bilin_1 (i b : B) :
228+ def g_bilin (i b : B) :
209229 (TotalSpace (F →L[ℝ] F →L[ℝ] ℝ)
210230 (fun (x : B) ↦ E x →L[ℝ] E x →L[ℝ] ℝ)) :=
211231 ⟨b, (trivializationAt (F →L[ℝ] F →L[ℝ] ℝ)
212232 (fun (x : B) ↦ E x →L[ℝ] E x →L[ℝ] ℝ) i).symm b (innerSL ℝ)⟩
213233
214234variable (F) in
215- def g_bilin_2 (i p : B) : E p →L[ℝ] (E p →L[ℝ] ℝ) :=
235+ def g_bilin_aux (i p : B) : E p →L[ℝ] (E p →L[ℝ] ℝ) :=
216236 letI χ := trivializationAt F E i
217237 (innerSL ℝ).comp (χ.continuousLinearMapAt ℝ p) |>.flip.comp (χ.continuousLinearMapAt ℝ p)
218238
219239lemma g_nonneg {j b : B} (v : E b) :
220- 0 ≤ ((g_bilin_2 F j b).toFun v).toFun v := by
221- unfold g_bilin_2
240+ 0 ≤ ((g_bilin_aux F j b).toFun v).toFun v := by
241+ unfold g_bilin_aux
222242 simp only [AddHom.toFun_eq_coe, LinearMap.coe_toAddHom, ContinuousLinearMap.coe_coe]
223243 · exact inner_self_nonneg (𝕜 := ℝ)
224244
225245lemma g_pos {i b : B}
226246 (hb : b ∈ (trivializationAt F E i).baseSet ∩ (chartAt HB i).source)
227247 (v : E b) (hv : v ≠ 0 ) :
228- 0 < ((g_bilin_2 F i b).toFun v).toFun v := by
229- unfold g_bilin_2
248+ 0 < ((g_bilin_aux F i b).toFun v).toFun v := by
249+ unfold g_bilin_aux
230250 simp only [AddHom.toFun_eq_coe, LinearMap.coe_toAddHom, ContinuousLinearMap.coe_coe]
231251 letI χ := trivializationAt F E i
232252 have h1 : (continuousLinearMapAt ℝ χ b) v ≠ 0 := by
@@ -235,10 +255,10 @@ lemma g_pos {i b : B}
235255 exact Std.lt_of_le_of_ne (inner_self_nonneg (𝕜 := ℝ))
236256 (inner_self_ne_zero.mpr h1).symm
237257
238- theorem g_bilin_symm_2 (i p : B) (v w : E p) :
239- ((g_bilin_2 F i p).toFun v).toFun w =
240- ((g_bilin_2 F i p).toFun w).toFun v := by
241- unfold g_bilin_2
258+ theorem g_bilin_symm_aux (i p : B) (v w : E p) :
259+ ((g_bilin_aux F i p).toFun v).toFun w =
260+ ((g_bilin_aux F i p).toFun w).toFun v := by
261+ unfold g_bilin_aux
242262 simp only [ContinuousLinearMap.coe_comp, AddHom.toFun_eq_coe, LinearMap.coe_toAddHom,
243263 LinearMap.coe_comp, ContinuousLinearMap.coe_coe, continuousLinearMapAt_apply,
244264 Function.comp_apply]
@@ -333,9 +353,9 @@ variable
333353 [∀ x, NormedSpace ℝ (E x)]
334354 [FiberBundle F E] [VectorBundle ℝ F E]
335355
336- def g_global_bilin_2 (f : SmoothPartitionOfUnity B IB B) (p : B) :
356+ def g_global_bilin_aux (f : SmoothPartitionOfUnity B IB B) (p : B) :
337357 E p →L[ℝ] (E p →L[ℝ] ℝ) :=
338- ∑ᶠ (j : B), (f j) p • g_bilin_2 F j p
358+ ∑ᶠ (j : B), (f j) p • g_bilin_aux F j p
339359
340360lemma finsum_image_eq_sum {B E F : Type *} [AddCommMonoid E] [AddCommMonoid F]
341361 (φ : E →+ F) {f : B → E} {h_fin : Finset B}
@@ -355,52 +375,52 @@ def evalAt (b : B) (v w : E b) :
355375 map_zero' := by simp
356376 map_add' := by intro f g; exact rfl
357377
358- private lemma g_global_bilin_2_support_finite (f : SmoothPartitionOfUnity B IB B) (b : B) :
359- (Function.support fun j ↦ ((f j) b • (g_bilin_2 F j b) :
378+ private lemma g_global_bilin_aux_support_finite (f : SmoothPartitionOfUnity B IB B) (b : B) :
379+ (Function.support fun j ↦ ((f j) b • (g_bilin_aux F j b) :
360380 E b →L[ℝ] E b →L[ℝ] ℝ)).Finite :=
361381 (f.locallyFinite'.point_finite b).subset (fun i hi => by
362382 simp only [Function.mem_support, ne_eq, smul_eq_zero, not_or] at hi; exact hi.1 )
363383
364- lemma riemannian_metric_symm_2 (f : SmoothPartitionOfUnity B IB B) (b : B)
384+ lemma riemannian_metric_symm_aux (f : SmoothPartitionOfUnity B IB B) (b : B)
365385 (v w : E b) :
366- ((g_global_bilin_2 (F := F) f b).toFun v).toFun w
386+ ((g_global_bilin_aux (F := F) f b).toFun v).toFun w
367387 =
368- ((g_global_bilin_2 (F := F) f b).toFun w).toFun v := by
369- unfold g_global_bilin_2
388+ ((g_global_bilin_aux (F := F) f b).toFun w).toFun v := by
389+ unfold g_global_bilin_aux
370390 simp only [AddHom.toFun_eq_coe, LinearMap.coe_toAddHom, ContinuousLinearMap.coe_coe]
371- have h1 := g_global_bilin_2_support_finite (F := F) (E := E) f b
391+ have h1 := g_global_bilin_aux_support_finite (F := F) (E := E) f b
372392 rw [finsum_eq_sum _ h1]
373- letI h : (j : B) → (E b →L[ℝ] (E b →L[ℝ] ℝ)) := fun j ↦ (f j) b • g_bilin_2 F j b
393+ letI h : (j : B) → (E b →L[ℝ] (E b →L[ℝ] ℝ)) := fun j ↦ (f j) b • g_bilin_aux F j b
374394 have h2 : (Function.support h) ⊆ h1.toFinset := Finite.toFinset_subset.mp fun ⦃a⦄ a ↦ a
375395 have h3 : ∀ (u v : E b),
376- ∑ j ∈ h1.toFinset, (((f j) b • g_bilin_2 F j b).toFun u).toFun v =
377- ((∑ j ∈ h1.toFinset, (f j) b • g_bilin_2 F j b).toFun u).toFun v := by
396+ ∑ j ∈ h1.toFinset, (((f j) b • g_bilin_aux F j b).toFun u).toFun v =
397+ ((∑ j ∈ h1.toFinset, (f j) b • g_bilin_aux F j b).toFun u).toFun v := by
378398 intros u v
379399 simp only [AddHom.toFun_eq_coe, LinearMap.coe_toAddHom, ContinuousLinearMap.coe_coe]
380400 rw [ContinuousLinearMap.sum_apply, ContinuousLinearMap.sum_apply]
381- calc ((∑ j ∈ h1.toFinset, (f j) b • g_bilin_2 F j b).toFun v).toFun w
382- = ∑ j ∈ h1.toFinset, (((f j) b • g_bilin_2 F j b).toFun v).toFun w := (h3 v w).symm
383- _ = ∑ᶠ (j : B), (((f j) b • g_bilin_2 F j b).toFun v).toFun w :=
401+ calc ((∑ j ∈ h1.toFinset, (f j) b • g_bilin_aux F j b).toFun v).toFun w
402+ = ∑ j ∈ h1.toFinset, (((f j) b • g_bilin_aux F j b).toFun v).toFun w := (h3 v w).symm
403+ _ = ∑ᶠ (j : B), (((f j) b • g_bilin_aux F j b).toFun v).toFun w :=
384404 (finsum_image_eq_sum (evalAt b v w) (f := h) (h_fin := h1.toFinset) h2).symm
385- _ = ∑ᶠ (j : B), (((f j) b • g_bilin_2 F j b).toFun w).toFun v :=
386- finsum_congr (fun j ↦ congrArg (HMul.hMul ((f j) b)) (g_bilin_symm_2 j b v w))
387- _ = ∑ j ∈ h1.toFinset, (((f j) b • g_bilin_2 F j b).toFun w).toFun v :=
405+ _ = ∑ᶠ (j : B), (((f j) b • g_bilin_aux F j b).toFun w).toFun v :=
406+ finsum_congr (fun j ↦ congrArg (HMul.hMul ((f j) b)) (g_bilin_symm_aux j b v w))
407+ _ = ∑ j ∈ h1.toFinset, (((f j) b • g_bilin_aux F j b).toFun w).toFun v :=
388408 finsum_image_eq_sum (evalAt b w v) (f := h) (h_fin := h1.toFinset) h2
389- _ = ((∑ j ∈ h1.toFinset, (f j) b • g_bilin_2 F j b).toFun w).toFun v := h3 w v
409+ _ = ((∑ j ∈ h1.toFinset, (f j) b • g_bilin_aux F j b).toFun w).toFun v := h3 w v
390410
391- lemma riemannian_metric_pos_def_2 (f : SmoothPartitionOfUnity B IB B)
411+ lemma riemannian_metric_pos_def_aux (f : SmoothPartitionOfUnity B IB B)
392412 (hf : f.IsSubordinate (fun x ↦ (trivializationAt F E x).baseSet ∩ (chartAt HB x).source))
393413 (b : B) {v : E b} (hv : v ≠ 0 ) :
394- 0 < g_global_bilin_2 (F := F) f b v v := by
395- unfold g_global_bilin_2
396- have h1 := g_global_bilin_2_support_finite (F := F) (E := E) f b
414+ 0 < g_global_bilin_aux (F := F) f b v v := by
415+ unfold g_global_bilin_aux
416+ have h1 := g_global_bilin_aux_support_finite (F := F) (E := E) f b
397417 rw [finsum_eq_sum _ h1]
398- have h2 : ∑ j ∈ h1.toFinset, (((f j) b • g_bilin_2 F j b).toFun v).toFun v =
399- ((∑ j ∈ h1.toFinset, (f j) b • g_bilin_2 F j b).toFun v).toFun v := by
418+ have h2 : ∑ j ∈ h1.toFinset, (((f j) b • g_bilin_aux F j b).toFun v).toFun v =
419+ ((∑ j ∈ h1.toFinset, (f j) b • g_bilin_aux F j b).toFun v).toFun v := by
400420 simp only [AddHom.toFun_eq_coe, LinearMap.coe_toAddHom, ContinuousLinearMap.coe_coe]
401421 rw [ContinuousLinearMap.sum_apply, ContinuousLinearMap.sum_apply]
402- letI h : (j : B) → (E b →L[ℝ] (E b →L[ℝ] ℝ)) := fun j ↦ (f j) b • g_bilin_2 F j b
403- letI h' x := f x b * ((g_bilin_2 F x b).toFun v).toFun v
422+ letI h : (j : B) → (E b →L[ℝ] (E b →L[ℝ] ℝ)) := fun j ↦ (f j) b • g_bilin_aux F j b
423+ letI h' x := f x b * ((g_bilin_aux F x b).toFun v).toFun v
404424 have h3 : (Function.support h) ⊆ h1.toFinset := Set.Finite.toFinset_subset.mp fun ⦃a⦄ a ↦ a
405425 have ⟨i, h5⟩ : ∃ i, 0 < f i b := by
406426 by_contra! hneg
@@ -417,23 +437,23 @@ lemma riemannian_metric_pos_def_2 (f : SmoothPartitionOfUnity B IB B)
417437 simp only [Function.support_mul, Set.mem_inter_iff, Function.mem_support, ne_eq, h'] at hx
418438 exact mul_ne_zero_iff.mp (mul_ne_zero_iff.mpr hx) |>.1
419439 have hb : ∑ᶠ i, h' i =
420- ∑ j ∈ h1.toFinset, (((f j) b • g_bilin_2 F j b).toFun v).toFun v :=
440+ ∑ j ∈ h1.toFinset, (((f j) b • g_bilin_aux F j b).toFun v).toFun v :=
421441 (finsum_image_eq_sum (evalAt b v v) (f := h) (h_fin := h1.toFinset) h3) ▸ rfl
422442 exact lt_of_lt_of_eq (finsum_pos h7 h8 h9) (hb.trans h2)
423443
424- lemma riemannian_unit_ball_bounded_2 (f : SmoothPartitionOfUnity B IB B)
444+ lemma riemannian_unit_ball_bounded_aux (f : SmoothPartitionOfUnity B IB B)
425445 (hf : f.IsSubordinate (fun x ↦ (trivializationAt F E x).baseSet ∩ (chartAt HB x).source))
426446 [∀ x, FiniteDimensional ℝ (E x)] (b : B) :
427- Bornology.IsVonNBounded ℝ {v : E b | g_global_bilin_2 (F := F) f b v v < 1 } :=
428- aux_tvs (g_global_bilin_2 f b)
447+ Bornology.IsVonNBounded ℝ {v : E b | g_global_bilin_aux (F := F) f b v v < 1 } :=
448+ aux_tvs (g_global_bilin_aux f b)
429449 (fun v => by
430450 rcases eq_or_ne v 0 with rfl | hv
431451 · simp
432- · exact le_of_lt (riemannian_metric_pos_def_2 f hf b hv))
433- (riemannian_metric_symm_2 f b)
452+ · exact le_of_lt (riemannian_metric_pos_def_aux f hf b hv))
453+ (riemannian_metric_symm_aux f b)
434454 (fun v h => by
435455 by_contra hv
436- exact lt_irrefl 0 (h ▸ riemannian_metric_pos_def_2 f hf b hv))
456+ exact lt_irrefl 0 (h ▸ riemannian_metric_pos_def_aux f hf b hv))
437457
438458end section3
439459
@@ -447,11 +467,11 @@ variable
447467 [FiberBundle F E] [VectorBundle ℝ F E]
448468 [ContMDiffVectorBundle ω F E IB]
449469
450- lemma g_bilin_1_smooth_on_chart (i : B) :
470+ lemma g_bilin_smooth_on_chart (i : B) :
451471 ContMDiffOn IB (IB.prod 𝓘(ℝ, F →L[ℝ] F →L[ℝ] ℝ)) ∞
452- (g_bilin_1 (F := F) (E := E) i)
472+ (g_bilin (F := F) (E := E) i)
453473 ((trivializationAt F E i).baseSet ∩ (chartAt HB i).source) := by
454- unfold g_bilin_1
474+ unfold g_bilin
455475 intro b hb
456476 letI ψ := trivializationAt (F →L[ℝ] F →L[ℝ] ℝ) (fun x ↦ E x →L[ℝ] E x →L[ℝ] ℝ) i
457477 letI innerAtP : B → F →L[ℝ] F →L[ℝ] ℝ := fun x ↦ innerSL ℝ
@@ -480,24 +500,24 @@ lemma g_bilin_1_smooth_on_chart (i : B) :
480500 · simp [cast_eq]
481501 · exact (mk_mem_target ψ).mp (h5 hy)
482502
483- noncomputable def g_global_bilin_1 (f : SmoothPartitionOfUnity B IB B) (p : B) :
503+ noncomputable def g_global_bilin (f : SmoothPartitionOfUnity B IB B) (p : B) :
484504 E p →L[ℝ] (E p →L[ℝ] ℝ) :=
485- ∑ᶠ (j : B), (f j) p • (g_bilin_1 (F := F) j p).snd
505+ ∑ᶠ (j : B), (f j) p • (g_bilin (F := F) j p).snd
486506
487- lemma g_global_bilin_1_smooth (f : SmoothPartitionOfUnity B IB B)
507+ lemma g_global_bilin_smooth (f : SmoothPartitionOfUnity B IB B)
488508 (h_sub : f.IsSubordinate (fun x ↦ (trivializationAt F E x).baseSet ∩ (chartAt HB x).source)) :
489509 ContMDiff IB (IB.prod 𝓘(ℝ, F →L[ℝ] F →L[ℝ] ℝ)) ∞
490- (fun x ↦ TotalSpace.mk' (F →L[ℝ] F →L[ℝ] ℝ) x (g_global_bilin_1 (F := F) (E := E) f x)) :=
510+ (fun x ↦ TotalSpace.mk' (F →L[ℝ] F →L[ℝ] ℝ) x (g_global_bilin (F := F) (E := E) f x)) :=
491511 contMDiff_totalSpace_weighted_sum_of_local_sections
492512 (V := fun b => E b →L[ℝ] (E b →L[ℝ] Trivial B ℝ b))
493513 (F_fiber := F →L[ℝ] (F →L[ℝ] ℝ))
494- (s_loc := fun (i b : B) => (g_bilin_1 (F := F) i b).snd)
514+ (s_loc := fun (i b : B) => (g_bilin (F := F) i b).snd)
495515 (U := fun x ↦ (trivializationAt F E x).baseSet ∩ (chartAt HB x).source)
496516 (hU_isOpen := fun i => ((trivializationAt F E i).open_baseSet.inter (chartAt HB i).open_source))
497517 (hρ_subord := h_sub)
498518 (h_smooth_s_loc := fun i =>
499- (g_bilin_1_smooth_on_chart i).congr (by
500- unfold g_bilin_1
519+ (g_bilin_smooth_on_chart i).congr (by
520+ unfold g_bilin
501521 simp only [Set.mem_inter_iff, implies_true]))
502522
503523end smooth
@@ -553,19 +573,19 @@ lemma g_global_bilin_eq
553573 (f : SmoothPartitionOfUnity B IB B)
554574 (hf : f.IsSubordinate (fun x ↦ (trivializationAt F E x).baseSet ∩ (chartAt HB x).source))
555575 (p : B) (u v : E p) :
556- g_global_bilin_1 (F := F) (E := E) f p u v =
557- g_global_bilin_2 (F := F) f p u v := by
558- have : g_global_bilin_1 (F := F) (E := E) f p = g_global_bilin_2 (F := F) f p := by
559- unfold g_global_bilin_1 g_global_bilin_2
576+ g_global_bilin (F := F) (E := E) f p u v =
577+ g_global_bilin_aux (F := F) f p u v := by
578+ have : g_global_bilin (F := F) (E := E) f p = g_global_bilin_aux (F := F) f p := by
579+ unfold g_global_bilin g_global_bilin_aux
560580 congr 1
561581 ext j
562582 congr 2
563583 ext u v
564584 by_cases h : (f j) p = 0
565- · have h2 : (f j) p • (g_bilin_1 (F := F) (E := E) j p).snd = 0 :=
566- smul_eq_zero_of_left h (g_bilin_1 j p).snd
567- have h3 : (f j) p • g_bilin_2 F (E := E) j p = 0 :=
568- smul_eq_zero_of_left h (g_bilin_2 F j p)
585+ · have h2 : (f j) p • (g_bilin (F := F) (E := E) j p).snd = 0 :=
586+ smul_eq_zero_of_left h (g_bilin j p).snd
587+ have h3 : (f j) p • g_bilin_aux F (E := E) j p = 0 :=
588+ smul_eq_zero_of_left h (g_bilin_aux F j p)
569589 rw [h2, h3]
570590 · have hp : p ∈ tsupport (f j) := by
571591 rw [tsupport]
@@ -574,36 +594,36 @@ lemma g_global_bilin_eq
574594 hf j hp
575595 simp only [ContinuousLinearMap.coe_smul', Pi.smul_apply, smul_eq_mul]
576596 congr 1
577- unfold g_bilin_1 g_bilin_2
597+ unfold g_bilin g_bilin_aux
578598 simp only [ContinuousLinearMap.coe_coe]
579599 conv_lhs => rw [inCoordinates_apply_eq₂_spec_symm j p hsupp.1 (innerSL ℝ) u v]
580600 exact real_inner_comm _ _
581601 rw [this]
582602
583- lemma riemannian_metric_symm_1
603+ lemma riemannian_metric_symm
584604 (f : SmoothPartitionOfUnity B IB B)
585605 (hf : f.IsSubordinate (fun x ↦ (trivializationAt F E x).baseSet ∩ (chartAt HB x).source))
586606 (b : B) (v w : E b) :
587- g_global_bilin_1 (F := F) (E := E) f b v w =
588- g_global_bilin_1 (F := F) (E := E) f b w v := by
607+ g_global_bilin (F := F) (E := E) f b v w =
608+ g_global_bilin (F := F) (E := E) f b w v := by
589609 rw [g_global_bilin_eq f hf b v w, g_global_bilin_eq f hf b w v]
590- exact (riemannian_metric_symm_2 (F := F) f b v w)
610+ exact (riemannian_metric_symm_aux (F := F) f b v w)
591611
592- lemma riemannian_metric_pos_def_1
612+ lemma riemannian_metric_pos_def
593613 (f : SmoothPartitionOfUnity B IB B)
594614 (hf : f.IsSubordinate (fun x ↦ (trivializationAt F E x).baseSet ∩ (chartAt HB x).source))
595615 (b : B) (v : E b) (hv : v ≠ 0 ) :
596- 0 < g_global_bilin_1 (F := F) (E := E) f b v v := by
616+ 0 < g_global_bilin (F := F) (E := E) f b v v := by
597617 rw [g_global_bilin_eq (F := F) (E := E) f hf b v v]
598- exact riemannian_metric_pos_def_2 f hf b hv
618+ exact riemannian_metric_pos_def_aux f hf b hv
599619
600- lemma riemannian_unit_ball_bounded_1 (f : SmoothPartitionOfUnity B IB B)
620+ lemma riemannian_unit_ball_bounded (f : SmoothPartitionOfUnity B IB B)
601621 (hf : f.IsSubordinate (fun x ↦ (trivializationAt F E x).baseSet ∩ (chartAt HB x).source))
602622 [∀ x, FiniteDimensional ℝ (E x)] (b : B) :
603623 Bornology.IsVonNBounded ℝ
604- {v : E b | g_global_bilin_1 (F := F) (E := E) f b v v < 1 } := by
624+ {v : E b | g_global_bilin (F := F) (E := E) f b v v < 1 } := by
605625 simp_rw [fun v => g_global_bilin_eq f hf b v v]
606- exact riemannian_unit_ball_bounded_2 f hf b
626+ exact riemannian_unit_ball_bounded_aux f hf b
607627
608628end section6
609629
@@ -633,10 +653,10 @@ public theorem exists_riemannian_metric
633653 · intro b _
634654 simp only [Set.mem_iUnion, Set.mem_inter_iff]
635655 exact ⟨b, FiberBundle.mem_baseSet_trivializationAt' b, mem_chart_source HB b⟩
636- ⟨{ inner := g_global_bilin_1 (F := F) f
637- symm := riemannian_metric_symm_1 f hf
638- pos := riemannian_metric_pos_def_1 f hf
639- isVonNBounded := riemannian_unit_ball_bounded_1 f hf
640- contMDiff := g_global_bilin_1_smooth f hf }⟩
656+ ⟨{ inner := g_global_bilin (F := F) f
657+ symm := riemannian_metric_symm f hf
658+ pos := riemannian_metric_pos_def f hf
659+ isVonNBounded := riemannian_unit_ball_bounded f hf
660+ contMDiff := g_global_bilin_smooth f hf }⟩
641661
642662end section9
0 commit comments