Skip to content

Commit f8f158c

Browse files
committed
Start: stub file on the Levi-Civita connection.
1 parent bf0e2e6 commit f8f158c

2 files changed

Lines changed: 67 additions & 1 deletion

File tree

Mathlib.lean

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3714,10 +3714,12 @@ import Mathlib.Geometry.Manifold.PoincareConjecture
37143714
import Mathlib.Geometry.Manifold.Sheaf.Basic
37153715
import Mathlib.Geometry.Manifold.Sheaf.LocallyRingedSpace
37163716
import Mathlib.Geometry.Manifold.Sheaf.Smooth
3717+
import Mathlib.Geometry.Manifold.Traces
37173718
import Mathlib.Geometry.Manifold.VectorBundle.Basic
37183719
import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative
37193720
import Mathlib.Geometry.Manifold.VectorBundle.FiberwiseLinear
37203721
import Mathlib.Geometry.Manifold.VectorBundle.Hom
3722+
import Mathlib.Geometry.Manifold.VectorBundle.LeviCivita
37213723
import Mathlib.Geometry.Manifold.VectorBundle.LocalFrame
37223724
import Mathlib.Geometry.Manifold.VectorBundle.MDifferentiable
37233725
import Mathlib.Geometry.Manifold.VectorBundle.Pullback
@@ -3727,7 +3729,6 @@ import Mathlib.Geometry.Manifold.VectorBundle.Tangent
37273729
import Mathlib.Geometry.Manifold.VectorBundle.Tensoriality
37283730
import Mathlib.Geometry.Manifold.VectorField.LieBracket
37293731
import Mathlib.Geometry.Manifold.VectorField.Pullback
3730-
import Mathlib.Geometry.Manifold.Traces
37313732
import Mathlib.Geometry.Manifold.WhitneyEmbedding
37323733
import Mathlib.Geometry.RingedSpace.Basic
37333734
import Mathlib.Geometry.RingedSpace.LocallyRingedSpace
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/-
2+
Copyright (c) 2025 Michael Rothgang. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Patrick Massot, Michael Rothgang
5+
-/
6+
import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative
7+
import Mathlib.Geometry.Manifold.VectorBundle.Riemannian
8+
9+
/-!
10+
# The Levi-Civita connection
11+
12+
This file will define the Levi-Civita connection on any Riemannian manifold.
13+
Details to be written!
14+
15+
-/
16+
17+
open Bundle Filter Function Topology
18+
19+
open scoped Bundle Manifold ContDiff
20+
21+
-- Let M be a C^k real manifold modeled on (E, H), endowed with a Riemannian metric.
22+
variable {n : WithTop ℕ∞}
23+
{E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
24+
{H : Type*} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
25+
{M : Type*} [EMetricSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
26+
[RiemannianBundle (fun (x : M) ↦ TangentSpace I x)]
27+
[IsContMDiffRiemannianBundle I ∞ E (fun (x : M) ↦ TangentSpace I x)]
28+
-- comes in a future PR by sgouezel; don't need this part yet
29+
-- [IsRiemannianManifold I M]
30+
31+
variable {E' : Type*} [NormedAddCommGroup E'] [NormedSpace ℝ E']
32+
33+
local notation "⟪" x ", " y "⟫" => inner ℝ x y
34+
35+
/-! Compatible connections: a connection on TM is compatible with the metric on M iff
36+
`∇ X ⟨Y, Z⟩ = ⟨∇ X Y, Z⟩ + ⟨Y, ∇ X Z⟩` holds for all vector fields X, Y and Z on `M`.
37+
The left hand side is the differential of the function ⟨Y, Z⟩ along the vector field X:
38+
at each point p, let γ(t) be a curve representing the tangent vector X p,
39+
then the LHS is the initial derivative of the function t ↦ ⟨Y(γ(p)), Z(γ p)⟩ at 0. -/
40+
41+
variable {X Y Z W : Π x : M, TangentSpace I x}
42+
43+
-- /-- The scalar product of two vector fields -/
44+
-- noncomputable def product (X Y : Π x : M, TangentSpace I x) : M → ℝ := fun x ↦ ⟪X x, Y x⟫
45+
-- smoothness results shown in Riemannian.lean: will omit
46+
47+
-- TODO: state "cov is a connection on TM" in a way that type-checks...
48+
-- (cov : CovariantDerivative I E (V := fun x ↦ TangentSpace I x)) does not...
49+
50+
variable {I} in
51+
def Xcurve (x : M) : ℝ → M := sorry -- TODO: include X also!
52+
53+
lemma Xcurve_zero (x : M) : Xcurve x 0 = x := sorry -- will be rfl
54+
55+
-- tangent vector X x equals the differential of Xcurve; not sure how to say this best!
56+
-- lemma Xcurve_diff (x : M) : X x = ... := sorry
57+
58+
variable {I} (X Y Z) in
59+
noncomputable def asdf (x : M) : ℝ → ℝ := (fun t ↦ ⟪Y (Xcurve x t), Z (Xcurve x t)⟫)
60+
61+
variable (X Y Z) in
62+
noncomputable def lhs : M → ℝ := fun x ↦ deriv (asdf Y Z x) 0
63+
64+
-- variable (X Y Z) in
65+
-- noncomputable def rhs : M → ℝ := ⟪cov X Y, Z⟫ + ⟪Y, cov X Z⟫

0 commit comments

Comments
 (0)