Skip to content

Commit 8158985

Browse files
committed
Revert "WIP: improve construction of extend; typeclasses fail to be found"
This reverts commit 6eef1526a7bba6ffb597c296bd38bcc10111e435.
1 parent 1511821 commit 8158985

1 file changed

Lines changed: 15 additions & 21 deletions

File tree

Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative.lean

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -434,24 +434,19 @@ 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).
435435
Thus, we choose `s` to be somewhat nice: our chosen construction is linear in `v`.
436436
-/
437-
noncomputable def extend [FiniteDimensional ℝ F] [T2Space M] {x : M} (v : V x) :
438-
(x' : M) → V x' := by
437+
noncomputable def extend [FiniteDimensional ℝ F] {x : M} (v : V x) : (x' : M) → V x' :=
439438
letI b := Basis.ofVectorSpace ℝ F
440439
letI t := trivializationAt F V x
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).
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!!)
450445
-- so, one may argue this is mathematically wrong, but it encodes the "choice some extension
451446
-- with this and that property" nicely
452447
-- a different proof would be to argue only the value at a point matters for cov
453448
@[simp]
454-
lemma extend_add_apply [FiniteDimensional ℝ F] [T2Space M] {x : M} (v v' : V x) :
449+
lemma extend_add_apply [FiniteDimensional ℝ F] {x : M} (v v' : V x) :
455450
extend F (v + v') = extend F v + extend F v' := by
456451
ext x
457452
simp [extend]
@@ -469,29 +464,28 @@ lemma extend_add_apply [FiniteDimensional ℝ F] [T2Space M] {x : M} (v v' : V x
469464
sorry
470465

471466
@[simp]
472-
lemma extend_smul_apply [FiniteDimensional ℝ F] [T2Space M] {a : ℝ} (v : V x) :
467+
lemma extend_smul_apply [FiniteDimensional ℝ F] {a : ℝ} (v : V x) :
473468
extend F (a • v) = a • extend F v := sorry
474469

475470
-- TODO: cleanup this proof by adding simp lemmas to the localFrame stuff
476471
omit [∀ (x : M), IsTopologicalAddGroup (V x)] [∀ (x : M), ContinuousSMul ℝ (V x)] in
477-
@[simp] lemma extend_apply_self [FiniteDimensional ℝ F] [T2Space M] {x : M} (v : V x) :
472+
@[simp] lemma extend_apply_self [FiniteDimensional ℝ F] {x : M} (v : V x) :
478473
extend F v x = v := by
479474
letI b := Basis.ofVectorSpace ℝ F
480475
letI t := trivializationAt F V x
481476
have x_mem : x ∈ t.baseSet := FiberBundle.mem_baseSet_trivializationAt F V x
482477
letI bV := b.localFrame_toBasis_at t 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]
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]
487481

488-
lemma contMDiff_extend [FiniteDimensional ℝ F] [T2Space M] {x : M} (σ₀ : V x) :
482+
lemma contMDiff_extend [FiniteDimensional ℝ F] {x : M} (σ₀ : V x) :
489483
ContMDiff I (I.prod 𝓘(ℝ, F)) 1 (fun x ↦ TotalSpace.mk' F x (extend F σ₀ x)) := by
490484
-- use contMDiffOn_localExtensionOn, plus an abstract result about capping with a bump function
491485
sorry
492486

493487
/-- The difference of two covariant derivatives, as a tensorial map -/
494-
noncomputable def difference [FiniteDimensional ℝ F] [T2Space M] [FiniteDimensional ℝ E] [IsManifold I 1 M]
488+
noncomputable def difference [FiniteDimensional ℝ F] [FiniteDimensional ℝ E] [IsManifold I 1 M]
495489
(cov cov' : CovariantDerivative I F V) :
496490
Π x : M, TangentSpace I x → V x → V x :=
497491
fun x X₀ σ₀ ↦ differenceAux cov cov' (extend E X₀) (extend F σ₀) x
@@ -509,7 +503,7 @@ noncomputable def difference [FiniteDimensional ℝ F] [T2Space M] [FiniteDimens
509503

510504
omit [∀ (x : M), IsTopologicalAddGroup (V x)] [∀ (x : M), ContinuousSMul ℝ (V x)] in
511505
@[simp]
512-
lemma difference_apply [FiniteDimensional ℝ F] [IsManifold I 1 M] [T2Space M]
506+
lemma difference_apply [FiniteDimensional ℝ F] [IsManifold I 1 M]
513507
(cov cov' : CovariantDerivative I F V) (x : M) (X₀ : TangentSpace I x) (σ₀ : V x) :
514508
difference cov cov' x X₀ σ₀ =
515509
cov (extend E X₀) (extend F σ₀) x - cov' (extend E X₀) (extend F σ₀) x := rfl

0 commit comments

Comments
 (0)