@@ -434,19 +434,24 @@ The details of the extension are mostly unspecified: for covariant derivatives,
434434`s` at points other than `x` will not matter (except for shorter proofs).
435435Thus, we choose `s` to be somewhat nice: our chosen construction is linear in `v`.
436436-/
437- noncomputable def extend [FiniteDimensional ℝ F] {x : M} (v : V x) : (x' : M) → V x' :=
437+ noncomputable def extend [FiniteDimensional ℝ F] [T2Space M] {x : M} (v : V x) :
438+ (x' : M) → V x' := by
438439 letI b := Basis.ofVectorSpace ℝ F
439440 letI t := trivializationAt F V x
440- letI bV := b.localFrame_toBasis_at t (FiberBundle.mem_baseSet_trivializationAt F V x)
441- fun x' ↦ ∑ i, bV.repr v i • b.localFrame t i x'
442-
443- -- FIXME: these two lemmas only hold for *very particular* choices of extensions of v
444- -- (but there exist such choices, and our definition makes these ?! TODO check!!)
441+ letI V₀ := localExtensionOn b t x v
442+ -- Choose a smooth bump function ψ near `x`, supported without t.baseSet
443+ -- and return ψ • V₀ instead
444+ letI ht := t.open_baseSet.mem_nhds (FiberBundle.mem_baseSet_trivializationAt' x)
445+ choose ψ _ hψ using (SmoothBumpFunction.nhds_basis_support (I := I) ht).mem_iff.1 ht
446+ exact ψ.toFun • localExtensionOn b t x v
447+
448+ -- NB. These two lemmas don't hold for *any* choice of extension of `v`, but they hold for
449+ -- *well-chosen* extensions (such as ours).
445450-- so, one may argue this is mathematically wrong, but it encodes the "choice some extension
446451-- with this and that property" nicely
447452-- a different proof would be to argue only the value at a point matters for cov
448453@[simp]
449- lemma extend_add_apply [FiniteDimensional ℝ F] {x : M} (v v' : V x) :
454+ lemma extend_add_apply [FiniteDimensional ℝ F] [T2Space M] {x : M} (v v' : V x) :
450455 extend F (v + v') = extend F v + extend F v' := by
451456 ext x
452457 simp [extend]
@@ -464,28 +469,29 @@ lemma extend_add_apply [FiniteDimensional ℝ F] {x : M} (v v' : V x) :
464469 sorry
465470
466471@[simp]
467- lemma extend_smul_apply [FiniteDimensional ℝ F] {a : ℝ} (v : V x) :
472+ lemma extend_smul_apply [FiniteDimensional ℝ F] [T2Space M] {a : ℝ} (v : V x) :
468473 extend F (a • v) = a • extend F v := sorry
469474
470475-- TODO: cleanup this proof by adding simp lemmas to the localFrame stuff
471476omit [∀ (x : M), IsTopologicalAddGroup (V x)] [∀ (x : M), ContinuousSMul ℝ (V x)] in
472- @[simp] lemma extend_apply_self [FiniteDimensional ℝ F] {x : M} (v : V x) :
477+ @[simp] lemma extend_apply_self [FiniteDimensional ℝ F] [T2Space M] {x : M} (v : V x) :
473478 extend F v x = v := by
474479 letI b := Basis.ofVectorSpace ℝ F
475480 letI t := trivializationAt F V x
476481 have x_mem : x ∈ t.baseSet := FiberBundle.mem_baseSet_trivializationAt F V x
477482 letI bV := b.localFrame_toBasis_at t x_mem
478- change ∑ i, bV.repr v i • b.localFrame t i x = v
479- conv_rhs => rw [←bV.sum_repr v]
480- simp [bV, Basis.localFrame_toBasis_at, Basis.localFrame, x_mem]
483+ sorry
484+ -- change ∑ i, bV.repr v i • b.localFrame t i x = v
485+ -- conv_rhs => rw [←bV.sum_repr v]
486+ -- simp [bV, Basis.localFrame_toBasis_at, Basis.localFrame, x_mem]
481487
482- lemma contMDiff_extend [FiniteDimensional ℝ F] {x : M} (σ₀ : V x) :
488+ lemma contMDiff_extend [FiniteDimensional ℝ F] [T2Space M] {x : M} (σ₀ : V x) :
483489 ContMDiff I (I.prod 𝓘(ℝ, F)) 1 (fun x ↦ TotalSpace.mk' F x (extend F σ₀ x)) := by
484490 -- use contMDiffOn_localExtensionOn, plus an abstract result about capping with a bump function
485491 sorry
486492
487493/-- The difference of two covariant derivatives, as a tensorial map -/
488- noncomputable def difference [FiniteDimensional ℝ F] [FiniteDimensional ℝ E] [IsManifold I 1 M]
494+ noncomputable def difference [FiniteDimensional ℝ F] [T2Space M] [ FiniteDimensional ℝ E] [IsManifold I 1 M]
489495 (cov cov' : CovariantDerivative I F V) :
490496 Π x : M, TangentSpace I x → V x → V x :=
491497 fun x X₀ σ₀ ↦ differenceAux cov cov' (extend E X₀) (extend F σ₀) x
@@ -503,7 +509,7 @@ noncomputable def difference [FiniteDimensional ℝ F] [FiniteDimensional ℝ E]
503509
504510omit [∀ (x : M), IsTopologicalAddGroup (V x)] [∀ (x : M), ContinuousSMul ℝ (V x)] in
505511@[simp]
506- lemma difference_apply [FiniteDimensional ℝ F] [IsManifold I 1 M]
512+ lemma difference_apply [FiniteDimensional ℝ F] [IsManifold I 1 M] [T2Space M]
507513 (cov cov' : CovariantDerivative I F V) (x : M) (X₀ : TangentSpace I x) (σ₀ : V x) :
508514 difference cov cov' x X₀ σ₀ =
509515 cov (extend E X₀) (extend F σ₀) x - cov' (extend E X₀) (extend F σ₀) x := rfl
0 commit comments