Skip to content

Mr. Covariant Derivatives#26221

Draft
grunweg wants to merge 458 commits into
leanprover-community:masterfrom
grunweg:MR-covariant-derivatives
Draft

Mr. Covariant Derivatives#26221
grunweg wants to merge 458 commits into
leanprover-community:masterfrom
grunweg:MR-covariant-derivatives

Conversation

@grunweg

@grunweg grunweg commented Jun 20, 2025

Copy link
Copy Markdown
Contributor

This PR is a work in progress, and will land in individual pieces. Some contributions include

  • additional API for differentiability of vector bundle sections
  • finite sums, differences and scalar products of smooth sections are smooth
  • the same result for mdifferentiable
  • add missing mdifferentiable congruence lemmas
  • define smooth local frames of a vector bundle
  • a general tensoriality criterion
  • define covariant derivatives, proving their tensoriality and that convex combinations of these are covariant derivatives
  • the classification of covariant derivatives over a trivial bundle
  • additional API for the Lie bracket of vector fields: the product rule (one sorry left!), Lie bracket at zero vanishes
  • torsion of a connection, torsion-free connections
  • Gram-Schmidt procedure for sections of a Riemannian vector bundle
  • orthonormal frames on a Riemannian vector bundle
  • connections compatible with a metric; definition of the Levi-Civita connection
  • uniqueness of the Levi-Civita connection
  • Christoffel symbols
  • in progress: existence of the Levi-Civita connection (connection done; torsion-freeness and compatibility in progress)
  • custom elaborators for sections in a vector bundle (converting dependent to non-dependent functions)
  • custom elaborators for inferring a model with corners, in differentiability/smoothness definitions
  • a #check' command and tactic which only shows explicit arguments

More to come soon!

Joint work with @PatrickMassot; supported by the FMJH.


Open in Gitpod

@github-actions

github-actions Bot commented Jun 20, 2025

Copy link
Copy Markdown

PR summary 7c0aa26a8b

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.Geometry.Manifold.VectorField.LieBracket 1
Mathlib.Geometry.Manifold.ContMDiffMFDeriv Mathlib.Geometry.Manifold.VectorField.Pullback 2
4 files Mathlib.Geometry.Manifold.Riemannian.Basic Mathlib.Geometry.Manifold.VectorBundle.Hom Mathlib.Geometry.Manifold.VectorBundle.MDifferentiable Mathlib.Geometry.Manifold.VectorBundle.Riemannian
3
Mathlib.Geometry.Manifold.VectorBundle.Misc (new file) 2242
Mathlib.Geometry.Manifold.VectorBundle.GramSchmidtOrtho (new file) 2319
Mathlib.Geometry.Manifold.VectorBundle.OrthonormalFrame (new file) 2321
Mathlib.Geometry.Manifold.VectorBundle.Tensoriality (new file) 2560
Mathlib.Geometry.Manifold.Riemannian.ExistsRiemannianMetric (new file) 2574
Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Prelim (new file) 2578
Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Basic (new file) 2579
Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Torsion (new file) 2580
Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Lift (new file) 2581
Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.LeviCivita (new file) 2585

Declarations diff

+ Bundle.Trivial.mdifferentiableAt_iff
+ Bundle.pullback_diag
+ Bundle.torsion
+ ChristoffelSymbol
+ ChristoffelSymbol.sum_eq
+ ContMDiff.smul_section_of_tsupport'
+ ContMDiffCovariantDerivative
+ ContMDiffCovariantDerivative.affineCombination
+ ContMDiffCovariantDerivative.affineCombination'
+ ContMDiffCovariantDerivativeOn
+ ContMDiffWithinAt.orthogonalProjection
+ CovariantDerivative
+ CovariantDerivative.geodVF
+ CovariantDerivative.geodVF_horiz
+ CovariantDerivative.isGeod
+ CovariantDerivative.isGeodAt
+ CovariantDerivative.isGeodAt_iff_horiz
+ CovariantDerivative.isGeodAt_iff_proj
+ CovariantDerivative.lift_vec
+ CovariantDerivative.lift_vec_apply
+ CovariantDerivative.lift_vec_eq
+ CovariantDerivative.lift_vec_eq_iff
+ CovariantDerivative.lift_vec_horiz
+ CovariantDerivative.mfderiv_proj_lift_vec
+ CovariantDerivative.orbit_geodVF
+ CovariantDerivative.proj_geodVF
+ CovariantDerivative.proj_lift_vec
+ FiberBundle.trivializationAt.baseSet_mem_nhds
+ IsBilinearMap
+ IsBilinearMap.toContinuousLinearMap
+ IsBilinearMap.toLinearMap
+ IsCompatible
+ IsCovariantDerivativeOn
+ IsCovariantDerivativeOn.fst_comp_lift_vec
+ IsCovariantDerivativeOn.lift_vec
+ IsCovariantDerivativeOn.lift_vec_apply
+ IsCovariantDerivativeOn.lift_vec_eq_iff
+ IsCovariantDerivativeOn.projection_lift_vec
+ IsLeviCivitaConnection
+ IsLeviCivitaConnection.eq_leviCivitaRhs
+ IsLeviCivitaConnection.uniqueness
+ IsLocalFrameOn.gramSchmidtNormed
+ IsMIntegralCurveAt.acceleration
+ IsMIntegralCurveAt.eventually_acceleration
+ IsMIntegralCurveAt.eventually_isMIntegralCurveAt
+ IsMIntegralCurveAt.mdifferentiableAt
+ IsMIntegralCurveAt.mfderiv
+ IsMIntegralCurveAt.proj_acceleration
+ IsMIntegralCurveAt.velocity_eventuallyEq
+ IsMIntegralCurveAt_iff_mfderiv
+ IsOrthonormalFrameOn
+ IsOrthonormalFrameOn.gramSchmidtNormed
+ IsOrthonormalFrameOn.mono
+ IsTorsionFree
+ IsTorsionFreeOn
+ LeviCivitaConnection
+ LeviCivitaConnection.christoffelSymbol_symm
+ LeviCivitaConnection_aux
+ LinearEquiv.comap_isCompl
+ LinearMap.comap_isCompl
+ MDifferentiable.inner_bundle'
+ MDifferentiableAt.inner_bundle'
+ V
+ W
+ _root_.Bundle.vert
+ _root_.ContMDiffCovariantDerivativeOn.affineCombination
+ _root_.ContMDiffCovariantDerivativeOn.affineCombination'
+ _root_.CovariantDerivative.exists_one_form
+ _root_.IsCovariantDerivativeOn.congr_iff_christoffelSymbol_eq
+ _root_.IsCovariantDerivativeOn.congr_of_christoffelSymbol_eq
+ _root_.IsCovariantDerivativeOn.isTorsionFreeOn_iff_localFrame
+ _root_.contMDiffAt_orthonormalFrame_of_mem
+ _root_.mdifferentiableAt_orthonormalFrame_of_mem
+ _root_.mdifferentiableAt_section_trivial_iff
+ add_one_form
+ apply_section_eventuallyEq
+ apply_symm_eventuallyEq
+ aux1
+ aux2
+ aux_computation
+ aux_computation2
+ aux_computation2'
+ aux_special
+ aux_tvs
+ bar
+ baseSet_mem_nhds
+ baseSet_prod_univ_mem_nhds
+ baz
+ bijective_deriv
+ bijective_symm
+ christoffelSymbol_zero
+ christoffelSymbol_zero_apply
+ coe_gramSchmidtBasis
+ coe_gramSchmidtNormedBasis
+ coeff_eq_inner'
+ comap_trivializationAt_horiz
+ comap_vert
+ comp_invFun_eventuallyEq
+ condition
+ condition1
+ condition2
+ congr_X_at
+ congr_of_forall_product
+ congr_σ_of_eqOn
+ congr_σ_smoothBumpFunction
+ contDiff_extend
+ contMDiffAt_aux
+ contMDiffAt_coeff
+ contMDiffAt_iff_coeff
+ contMDiffAt_iff_coeff'
+ contMDiffCovariantDerivativeOn_univ_iff
+ contMDiffOn_coeff
+ contMDiffOn_iff_coeff
+ contMDiffOn_iff_coeff'
+ contMDiffOn_localExtensionOn
+ contMDiffOn_orthonormalFrame_baseSet
+ contMDiffWithinAt_aux
+ contMDiffWithinAt_coeff
+ contMDiffWithinAt_inner
+ contMDiff_extend
+ contMDiff_localSection
+ convex_condition
+ convex_condition1
+ convex_condition2
+ coordChangeL_coordChangeL
+ coordChangeL_mem_horiz
+ coordChangeL_mem_horiz_iff
+ coordChangeL_pushCovDer
+ cov_eq_proj
+ deriv
+ derivInv
+ derivInv_deriv
+ derivInv_deriv_apply
+ deriv_derivInv
+ deriv_derivInv_apply
+ difference
+ differenceAux
+ differenceAux_apply
+ differenceAux_smul_eq
+ differenceAux_smul_eq'
+ differenceAux_tensorial
+ difference_apply
+ difference_def
+ eq_of
+ eq_one_form
+ eq_product_apply
+ evalL
+ exists_map_of
+ exists_one_form
+ extend
+ extend_add
+ extend_apply_self
+ extend_smul
+ extend_zero
+ foo
+ foo_aux
+ foo_aux_prop
+ foobar
+ fst_comp_eventuallyEq
+ gramSchmidt
+ gramSchmidtBasis
+ gramSchmidtNormed
+ gramSchmidtNormedBasis
+ gramSchmidtNormed_apply_of_orthogonal
+ gramSchmidtNormed_apply_of_orthonormal
+ gramSchmidtNormed_coe
+ gramSchmidtNormed_contMDiff
+ gramSchmidtNormed_contMDiffAt
+ gramSchmidtNormed_contMDiffOn
+ gramSchmidtNormed_contMDiffWithinAt
+ gramSchmidtNormed_linearIndependent
+ gramSchmidtNormed_orthonormal
+ gramSchmidtNormed_orthonormal'
+ gramSchmidtNormed_unit_length
+ gramSchmidtNormed_unit_length'
+ gramSchmidtNormed_unit_length_coe
+ gramSchmidtOrthonormalBasis
+ gramSchmidtOrthonormalBasis_apply_of_orthonormal
+ gramSchmidtOrthonormalBasis_coe
+ gramSchmidt_apply
+ gramSchmidt_bot
+ gramSchmidt_contMDiff
+ gramSchmidt_contMDiffAt
+ gramSchmidt_contMDiffOn
+ gramSchmidt_contMDiffWithinAt
+ gramSchmidt_def
+ gramSchmidt_def'
+ gramSchmidt_def''
+ gramSchmidt_inv_triangular
+ gramSchmidt_linearIndependent
+ gramSchmidt_mem_span
+ gramSchmidt_ne_zero
+ gramSchmidt_ne_zero_coe
+ gramSchmidt_of_orthogonal
+ gramSchmidt_orthogonal
+ gramSchmidt_pairwise_orthogonal
+ gramSchmidt_zero
+ hloc_TODO
+ hoge
+ injective_mfderiv_of_eventually_leftInverse
+ injective_symm
+ instance (cov : CovariantDerivative I F V) {s : Set M} :
+ instance (f : F) : CoeOut (TangentSpace 𝓘(ℝ, F) f) F
+ instance (x : B) : AddCommGroup (W E x) := by
+ instance (x : B) : ContinuousAdd (V E x) := by
+ instance (x : B) : ContinuousSMul ℝ (V E x) := by
+ instance (x : B) : IsTopologicalAddGroup (V E x) := by
+ instance (x : B) : Module ℝ (V E x) := by
+ instance (x : B) : Module ℝ (W E x) := by
+ instance (x : B) : TopologicalSpace (W E x) := by
+ instance : (x : B) → AddCommGroup (V E x) := by
+ instance : (x : B) → TopologicalSpace (V E x) := by
+ instance : CoeFun (CovariantDerivative I F V)
+ instance : ContMDiffVectorBundle n (F →L[ℝ] F →L[ℝ] ℝ) (W E) IB := by
+ instance : ContMDiffVectorBundle n (F →L[ℝ] ℝ) (V E) IB := by
+ instance : FiberBundle (F →L[ℝ] F →L[ℝ] ℝ) (W E) := by
+ instance : FiberBundle (F →L[ℝ] ℝ) (V E) := by
+ instance : TopologicalSpace (TotalSpace (F →L[ℝ] F →L[ℝ] ℝ) (W E)) := by
+ instance : TopologicalSpace (TotalSpace (F →L[ℝ] ℝ) (V E)) := by
+ instance : VectorBundle ℝ (F →L[ℝ] F →L[ℝ] ℝ) (W E) := by
+ instance : VectorBundle ℝ (F →L[ℝ] ℝ) (V E) := by
+ invFun_comp_eventuallyEq
+ isBilinearMap_differenceAux
+ isBilinearMap_eval
+ isBilinearMap_evalL
+ isCovariantDerivativeOn_lcCandidate
+ isCovariantDerivativeOn_lcCandidateAux
+ isCovariantDerivativeOn_lcCandidateAux_of_nonempty
+ isCovariantDerivativeOn_pushCovDer
+ isTorsionFreeOn_iff_christoffelSymbols
+ isTorsionFreeOn_univ
+ isTorsionFree_def
+ isTorsionFree_iff
+ isTorsionFree_iff_christoffelSymbols'
+ is_good_localSection
+ isolate_aux
+ lcCandidate
+ lcCandidateAux
+ lcCandidate_eq_lcCandidateAux
+ leviCivitaRhs
+ leviCivitaRhs'
+ leviCivitaRhs'_addX
+ leviCivitaRhs'_addX_apply
+ leviCivitaRhs'_addY_apply
+ leviCivitaRhs'_addZ
+ leviCivitaRhs'_addZ_apply
+ leviCivitaRhs'_smulX_apply
+ leviCivitaRhs'_smulY_apply
+ leviCivitaRhs'_smulY_const_apply
+ leviCivitaRhs'_smulZ
+ leviCivitaRhs'_smulZ_apply
+ leviCivitaRhs_addX
+ leviCivitaRhs_addX_apply
+ leviCivitaRhs_addY
+ leviCivitaRhs_addY_apply
+ leviCivitaRhs_addZ
+ leviCivitaRhs_addZ_apply
+ leviCivitaRhs_apply
+ leviCivitaRhs_smulX
+ leviCivitaRhs_smulX_apply
+ leviCivitaRhs_smulY_apply
+ leviCivitaRhs_smulY_const
+ leviCivitaRhs_smulY_const_apply
+ leviCivitaRhs_smulZ
+ localExtensionOn
+ localExtensionOn_apply_self
+ localExtensionOn_localFrame_coeff
+ local_section_at
+ map_add
+ map_of
+ map_of_loc_one_jet
+ map_of_loc_one_jet_spec
+ map_of_one_jet
+ map_of_one_jet_spec
+ map_of_spec
+ map_smul
+ mdifferentiableAt
+ mdifferentiableAt_dependent_congr
+ mdifferentiableAt_invFun
+ mdifferentiableAt_section_of_function
+ mdifferentiable_dependent_congr_iff
+ mdifferentiable_extend
+ mem_horiz_iff_exists
+ mem_horiz_iff_proj
+ mem_span_gramSchmidt
+ mfderiv_comp_section
+ mfderiv_const_smul
+ mfderiv_proj_derivInv_apply
+ mfderiv_proj_fst_deriv
+ mfderiv_smul
+ mlieBracketWithin_smul_left
+ mlieBracketWithin_smul_right
+ mlieBracket_smul_left
+ mlieBracket_smul_right
+ mpullbackWithin_const_smul
+ mpullbackWithin_const_smul_apply
+ mpullback_const_smul
+ mpullback_const_smul_apply
+ mynorm
+ of_isCovariantDerivativeOn_of_open_cover
+ of_isCovariantDerivativeOn_of_open_cover_coe
+ of_isTorsionFreeOn_of_open_cover
+ of_subsingleton
+ one_form
+ orthonormalFrame
+ orthonormalFrame_apply_of_notMem
+ orthonormalFrame_isOrthonormalFrameOn
+ preimage_baseSet_mem_nhds
+ product
+ product_add_left
+ product_add_left_apply
+ product_add_right
+ product_add_right_apply
+ product_apply
+ product_congr_left
+ product_congr_left₂
+ product_congr_right
+ product_congr_right₂
+ product_neg_left
+ product_neg_right
+ product_smul_const_left
+ product_smul_const_right
+ product_smul_left
+ product_smul_right
+ product_sub_left
+ product_sub_right
+ product_swap
+ product_zero_left
+ product_zero_right
+ proj
+ proj_acceleration
+ proj_invFun_eventuallyEq
+ proj_mderiv
+ proj_velocity
+ projection
+ projection_apply
+ pushCovDer
+ pushCovDer_isCovariantDerivativeOn
+ pushCovDer_ofSect
+ qux
+ rhs_aux
+ rhs_aux_addX
+ rhs_aux_addY
+ rhs_aux_addY_apply
+ rhs_aux_addZ
+ rhs_aux_addZ_apply
+ rhs_aux_smulX
+ rhs_aux_smulX_apply
+ rhs_aux_smulY
+ rhs_aux_smulY_apply
+ rhs_aux_smulY_const
+ rhs_aux_smulY_const_apply
+ rhs_aux_smulZ
+ rhs_aux_smulZ_apply
+ rhs_aux_smulZ_const
+ rhs_aux_smulZ_const_apply
+ rhs_aux_swap
+ smul_const_X
+ snd_triv_proj
+ span_gramSchmidt
+ span_gramSchmidtNormed
+ span_gramSchmidtNormed_range
+ span_gramSchmidt_Iic
+ span_gramSchmidt_Iio
+ surjective_mfderiv_of_eventually_rightInverse
+ surjective_symm
+ symm_apply_apply_mk_eventuallyEq
+ symm_map_add
+ symm_map_smul
+ symm_map_zero
+ tensoriality_criterion
+ tensoriality_criterion'
+ tensoriality_criterion''
+ tensoriality_criterion₂
+ tensoriality_criterion₂'
+ torsion_add_left
+ torsion_add_left_apply
+ torsion_add_right
+ torsion_add_right_apply
+ torsion_antisymm
+ torsion_self
+ torsion_smul_left
+ torsion_smul_left_apply
+ torsion_smul_right
+ torsion_smul_right_apply
+ torsion_tensorial
+ torsion_zero
+ torsion_zero'
+ trivial_isSmooth
+ velocity
++ affineCombination
++ affineCombination'
++ aux
++ congr
++ horiz
++ horiz_vert_direct_sum
++ iUnion
++ mono
++ of_endomorphism
++ sum_X
++ trivial
++ zeroX
++ zeroσ

You can run this locally as follows
## summary with just the declaration names:
./scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh contains some details about this script.


Increase in tech debt: (relative, absolute) = (3.41, 0.03)
Current number Change Type
140 2 flexible linter exceptions
638 9 erw
10066 17 backward.isDefEq

Current commit c487a9a1d2
Reference commit 7c0aa26a8b

You can run this locally as

./scripts/reporting/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@github-actions github-actions Bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jun 24, 2025
@grunweg grunweg force-pushed the MR-covariant-derivatives branch from 4310356 to b8f5aa8 Compare June 29, 2025 11:11
@github-actions github-actions Bot added large-import Automatically added label for PRs with a significant increase in transitive imports and removed merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) labels Jun 29, 2025
@grunweg grunweg force-pushed the MR-covariant-derivatives branch 2 times, most recently from 8c528d9 to 8158985 Compare June 29, 2025 11:13
@github-actions github-actions Bot removed the large-import Automatically added label for PRs with a significant increase in transitive imports label Jun 29, 2025
@grunweg grunweg force-pushed the MR-covariant-derivatives branch from 4ae272f to 76cbd93 Compare June 29, 2025 17:26
@mathlib4-dependent-issues-bot

mathlib4-dependent-issues-bot commented Jun 30, 2025

Copy link
Copy Markdown
Collaborator

This PR/issue depends on:

@PatrickMassot PatrickMassot force-pushed the MR-covariant-derivatives branch from 53803bd to ef934c2 Compare July 1, 2025 07:51
@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Jul 3, 2025
@PatrickMassot PatrickMassot force-pushed the MR-covariant-derivatives branch from ee1c67e to 52a89f0 Compare July 4, 2025 17:23
@github-actions github-actions Bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jul 4, 2025
@grunweg grunweg force-pushed the MR-covariant-derivatives branch from f029673 to 841b6a4 Compare July 4, 2025 19:07
@github-actions github-actions Bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jul 4, 2025
@grunweg grunweg force-pushed the MR-covariant-derivatives branch from 27acfb0 to f4f5a33 Compare July 4, 2025 21:36
@leanprover-community-bot-assistant leanprover-community-bot-assistant added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jul 5, 2025
@leanprover-community-bot-assistant

Copy link
Copy Markdown
Collaborator

This pull request has conflicts, please merge master and resolve them.

@grunweg grunweg force-pushed the MR-covariant-derivatives branch from f8f158c to 7dd939f Compare July 6, 2025 11:41
@github-actions github-actions Bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jul 7, 2025
@leanprover-community-bot-assistant

Copy link
Copy Markdown
Collaborator

This pull request has conflicts, please merge master and resolve them.

@leanprover-community-bot-assistant leanprover-community-bot-assistant added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jul 7, 2025
@grunweg grunweg changed the title Mr covariant derivatives Mr. Covariant Derivatives Jul 8, 2025
@github-actions github-actions Bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jul 9, 2025
@github-actions github-actions Bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Mar 2, 2026
@mathlib-merge-conflicts mathlib-merge-conflicts Bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Mar 2, 2026
@mathlib-merge-conflicts

Copy link
Copy Markdown

This pull request has conflicts, please merge master and resolve them.

mathlib-bors Bot pushed a commit that referenced this pull request Mar 3, 2026
Inspired by #26221 (defining covariant derivatives, and the path towards geodesics).
@github-actions github-actions Bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Mar 4, 2026
@mathlib-merge-conflicts mathlib-merge-conflicts Bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Mar 5, 2026
@mathlib-merge-conflicts

Copy link
Copy Markdown

This pull request has conflicts, please merge master and resolve them.

@grunweg

grunweg commented Mar 7, 2026

Copy link
Copy Markdown
Contributor Author

For the record: #36036 builds on this branch, completely refactoring covariant derivatives. Probably, this branch should be closed in favour of that one (at some point).

xroblot pushed a commit to xroblot/mathlib4 that referenced this pull request Mar 10, 2026
…ver-community#35978)

Inspired by leanprover-community#26221 (defining covariant derivatives, and the path towards geodesics).
pevogam pushed a commit to pevogam/mathlib4 that referenced this pull request Mar 19, 2026
…ver-community#35978)

Inspired by leanprover-community#26221 (defining covariant derivatives, and the path towards geodesics).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) t-differential-geometry Manifolds etc

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants