Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
624 commits
Select commit Hold shift + click to select a range
d5caef0
Leibniz rule proven, except for sum/finsum issues
grunweg Sep 28, 2025
9105675
Connection proof done, except for
grunweg Sep 28, 2025
2d9c6c4
refactor(CovariantDerivative): also require smoothness in the Leibniz…
grunweg Sep 28, 2025
39baac4
refactor: parametrise L-C connection candidate by a choice of linear …
grunweg Sep 28, 2025
e91faa6
TODO: need to choose an ordering once in the definition...
grunweg Sep 28, 2025
fb8229b
Fix last sorries in proof that nabla^g is a connection
grunweg Sep 29, 2025
dd7d676
Clean up: avoid a name clash
grunweg Sep 29, 2025
e21a7cc
Choose a well-ordering in LeviCivitaConnection
grunweg Sep 29, 2025
9a7b338
Rename lcCandidate_aux -> lcCandidateAux to better match the naming c…
grunweg Sep 29, 2025
42173f4
Wip: further in Christoffel symbols
grunweg Sep 29, 2025
512aac4
Prove a congruence lemma.
PatrickMassot Sep 29, 2025
b16216c
More
grunweg Sep 29, 2025
8dc2edd
Fix the build
grunweg Sep 29, 2025
0c74fdf
chore: split big "is a connection" proof in two
grunweg Sep 29, 2025
cc0d145
chore(Elaborators): synchronise with upstream PR's changes
grunweg Sep 30, 2025
b684529
Fix the build
grunweg Sep 30, 2025
6426fb3
Merge branch 'master' into MR-covariant-derivatives
grunweg Sep 30, 2025
bdda85b
Fix the build for the merge: most changes are fine, but the one to bar
grunweg Sep 30, 2025
2022f1b
fix(Elaborators): pretty-print the new elaborated notation correctly
grunweg Sep 30, 2025
433fccb
Re-enable the commandStart linter
grunweg Sep 30, 2025
80c2676
Minor golf
grunweg Oct 7, 2025
6ad677e
Merge branch 'master' into MR-covariant-derivatives
grunweg Oct 8, 2025
ef928c6
Fix build for the merge
grunweg Oct 8, 2025
7e5e3be
Switch out the elaborators
grunweg Oct 8, 2025
431805e
Remove one now-unnecessary workaround, and the obsolete file Traces.lean
grunweg Oct 8, 2025
7152199
chore: remove TODO comments
grunweg Oct 8, 2025
bf8dcd0
chore: forward-port changes from #30307 and #28032
grunweg Oct 8, 2025
1292624
chore(VectorBundle/MDifferentiable): use new elaborators more
grunweg Oct 8, 2025
174d2eb
chore(SmoothSection): golf in the same way
grunweg Oct 8, 2025
b26811a
Revert unintentional changes
grunweg Oct 9, 2025
bf8b4b7
Missed one
grunweg Oct 9, 2025
ebd4709
chore: sync elaborator changes to current master; that's all we need …
grunweg Oct 23, 2025
4196b27
Fix the build, again
grunweg Oct 23, 2025
2ca3197
Fix a few warnings
grunweg Oct 23, 2025
90cee50
perf/chore: comment out ExistsRiemannianMetric for now
grunweg Oct 23, 2025
4b09987
Merge branch 'master' into MR-covariant-derivatives
grunweg Oct 23, 2025
0c3264d
Merge branch 'master' into MR-covariant-derivatives
grunweg Oct 23, 2025
cdfddf0
chore: sync local frame changes from review
grunweg Oct 23, 2025
f518e95
chore(OrthonormalFrame): adopt coeff instead of repr also
grunweg Oct 23, 2025
2b93ad3
Restore mem_horiz_iff_exists
PatrickMassot Oct 24, 2025
30205c9
Merge branch 'master' into covariant-derivatives2
grunweg Feb 22, 2026
db19098
Fix build in LocalFrame
grunweg Feb 22, 2026
ab64b0d
More fixes
grunweg Feb 22, 2026
694686b
More warnings and fixes
grunweg Feb 22, 2026
d90bf91
Further, and modulize further
grunweg Feb 22, 2026
0bc103b
chore: cherry-pick elaborator state as of 30463
grunweg Feb 22, 2026
7dadbfd
Fix three proofs
grunweg Feb 22, 2026
7cf8cb2
Missing module
PatrickMassot Feb 22, 2026
dc41b5b
Resume work on projections
PatrickMassot Feb 22, 2026
64f28cb
Horizontal and vertical bundle are complementary
PatrickMassot Feb 22, 2026
063ebeb
chore: fill a few more sorries; correct local existence statements fo…
grunweg Feb 22, 2026
77a61d9
Progress on projection
PatrickMassot Feb 23, 2026
f8fa466
proj_mfderiv modulo Trivialization.pushCovDer_isCovariantDerivativeOn
PatrickMassot Feb 23, 2026
6b544c7
Merge branch 'master' into covariant-derivatives2
grunweg Feb 23, 2026
b1af2dd
Fix build
PatrickMassot Feb 24, 2026
bc506c7
Remove some refactor sorries
PatrickMassot Feb 24, 2026
15fb978
Remove more sorries
PatrickMassot Feb 24, 2026
4b5162f
More painful trivial proofs
PatrickMassot Feb 24, 2026
f0c3815
Split off preliminaries for covariant derivative
PatrickMassot Feb 25, 2026
9b42054
Start lifting vectors
PatrickMassot Feb 25, 2026
7e62c69
Define geodesics and state some lemmas
PatrickMassot Feb 25, 2026
f866e79
Finish defining geodesics.
PatrickMassot Feb 26, 2026
7652536
Start change of trivialization lemmas
PatrickMassot Feb 27, 2026
9508df8
chore: speak about affine combinations, as that is the correct termin…
grunweg Mar 2, 2026
b096536
bundle linearity in TM
hrmacbeth Mar 2, 2026
e884dbf
remove X from leibniz rul
hrmacbeth Mar 3, 2026
9dcc318
remove smul_const_σ field
hrmacbeth Mar 3, 2026
d63f819
move lemma
hrmacbeth Mar 3, 2026
392b8a9
remove test vector field from smoothness criterion
hrmacbeth Mar 3, 2026
6f8f170
start on torsion
hrmacbeth Mar 3, 2026
4c2d30b
Fix torsion
grunweg Mar 3, 2026
cfdf943
start to adjust levi-civita
hrmacbeth Mar 3, 2026
a6fec8b
give a phrasing for the tensoriality construction
hrmacbeth Mar 3, 2026
e9be3d0
chore(Torsion): cosmetic rename
grunweg Mar 3, 2026
c17e97f
2-tensor construction
hrmacbeth Mar 3, 2026
7520498
chore: cherry-pick Lie bracket changes from #26743
grunweg Mar 3, 2026
e6b9a65
Fix one torsion sorry; some clean-up
grunweg Mar 3, 2026
37981cd
Make a partially applied torsion 1-tensor
grunweg Mar 3, 2026
20ad064
Minor polish
grunweg Mar 3, 2026
43dd396
Torsion as a 2-tensor
grunweg Mar 3, 2026
6082ae3
start new approach to levi-civita
hrmacbeth Mar 3, 2026
00b1995
addition theorem for tensor construction
hrmacbeth Mar 3, 2026
c7c2212
finish proof of addition lemma
hrmacbeth Mar 3, 2026
a84d21f
Progress towards LC being a connection
grunweg Mar 3, 2026
410bb87
construct difference of connections using tensoriality constructor
hrmacbeth Mar 3, 2026
876ce4f
tensor apply lemmas
hrmacbeth Mar 3, 2026
f195851
hacky proofs
hrmacbeth Mar 4, 2026
12255d0
make this the definition of levi-civita connection
hrmacbeth Mar 4, 2026
bee9d66
bit of cleanup
hrmacbeth Mar 4, 2026
224be51
Merge branch 'master' into hm-covder-bundled
grunweg Mar 4, 2026
4dd83df
First round of fixes
grunweg Mar 4, 2026
6ac17e7
Further
grunweg Mar 4, 2026
5c96bb7
Further
grunweg Mar 4, 2026
83643af
down to one sorry
hrmacbeth Mar 4, 2026
a19ae15
last sorry in lc file
hrmacbeth Mar 4, 2026
b4d4d12
golf using linear_combination
hrmacbeth Mar 4, 2026
51a8380
golf
hrmacbeth Mar 4, 2026
f357252
Fix the build of LeviCivita
grunweg Mar 4, 2026
58e15e9
Fix Lift
grunweg Mar 4, 2026
32a6e22
Try to catch up
PatrickMassot Mar 4, 2026
20a011e
chore: split out Extend
grunweg Mar 4, 2026
5b94048
chore: move tensor definitions to tensoriality
grunweg Mar 4, 2026
feaaa2b
chore: move torsion lemmas using local frames to a separate file
grunweg Mar 4, 2026
8a1fa83
chore: minimise imports in (Triv)Prelim
grunweg Mar 4, 2026
d22f9af
chore: split material about Ehresmann connections part into a new file
grunweg Mar 4, 2026
3c5af5b
chore: move material about trivial bundles to a separate file
grunweg Mar 4, 2026
1739941
Fix and tweak imports more
grunweg Mar 4, 2026
f6079a3
chore: move mfderiv lemmas we need to a separate file
grunweg Mar 4, 2026
ebd0377
reorganise variables in tensoriality file
hrmacbeth Mar 4, 2026
fc9d99b
mkTensor_eq_extend
hrmacbeth Mar 4, 2026
ff07cba
fixes
hrmacbeth Mar 4, 2026
bcc29b3
adjust implicit/explicit arguments in tensoriality for better inference
hrmacbeth Mar 4, 2026
8d987f6
Refactor Torsion
PatrickMassot Mar 4, 2026
998297c
Tiny fixes
grunweg Mar 4, 2026
01803ff
Merge branch 'master' into hm-covder-bundled
grunweg Mar 4, 2026
3a342e2
chore: fix some unused variable warnings
grunweg Mar 4, 2026
6020d16
Checkpoint: refacoring compatibility of a connection to use a tensor
grunweg Mar 4, 2026
4d61125
Remove one superfluous backwards option
grunweg Mar 4, 2026
64f4d84
fix broken linear_combination proof
hrmacbeth Mar 4, 2026
68c4d66
fix broken proof in compatibility tensor
hrmacbeth Mar 4, 2026
1f4db0d
scalar multiplication proof
hrmacbeth Mar 4, 2026
bc94c87
Small polish
grunweg Mar 5, 2026
9d22180
chore: redefine compatibility using the tensor
grunweg Mar 5, 2026
a8d6bb4
More Heather
grunweg Mar 5, 2026
c177389
Move around prerequisites
PatrickMassot Mar 5, 2026
cd08afc
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Mar 5, 2026
fc51f83
Compactify code
grunweg Mar 5, 2026
277a94d
Speed up!
grunweg Mar 5, 2026
f4b0c31
Make f implicit
grunweg Mar 5, 2026
9ad18e1
Last sorry virtually proven
grunweg Mar 5, 2026
c6cfc8a
apply lemma
hrmacbeth Mar 5, 2026
dab702c
chore: smuggle in two more differentiability hypotheses
grunweg Mar 5, 2026
2d36cc9
I'm getting tensor every day
grunweg Mar 5, 2026
9e3f139
Document PR
PatrickMassot Mar 5, 2026
1d61f51
chore: fix the build in LeviCivita
grunweg Mar 5, 2026
86cb325
Fixed the last sorry, by bashing through
grunweg Mar 5, 2026
bf4e330
Did we switch some variables in the metric tensor?
grunweg Mar 5, 2026
4e5b264
Checkpoint towards torsion
grunweg Mar 5, 2026
e0265b3
Gotcha: the argument order in Torsion.lean was flipped; with that fix…
grunweg Mar 5, 2026
1f3bc99
Gotcha: the argument order in Torsion.lean was flipped; with that fix…
grunweg Mar 5, 2026
29266bc
fix: make all code using torsion-freeness work again
grunweg Mar 5, 2026
1ee1a31
Fix compatibility lemma; fix torsion lemma, fix application in aux.
grunweg Mar 5, 2026
9e77a0b
Move delaborators
PatrickMassot Mar 5, 2026
50be730
Towards showing compatibility of LC
grunweg Mar 5, 2026
9430c13
More delaborators
PatrickMassot Mar 5, 2026
e3917c8
Merge branch 'master' into hm-covder-bundled
grunweg Mar 5, 2026
d8cf6e7
Some fixes
grunweg Mar 5, 2026
e6e514a
Sorry one broken proof
grunweg Mar 5, 2026
eaf2185
Fix build
PatrickMassot Mar 5, 2026
0f1fc6c
remove bump functions from "extend" construction
hrmacbeth Mar 5, 2026
cf9632c
use lemma mk2TensorAt_apply_eq_extend
hrmacbeth Mar 5, 2026
44aa8ed
generalize mk2Tensor to different input types
hrmacbeth Mar 5, 2026
3e88f00
Three people walk into a bar. Ouch!
grunweg Mar 5, 2026
ad741cb
Small tweaks and nits
grunweg Mar 5, 2026
10cf130
fill in TODO lemmas for extend
hrmacbeth Mar 5, 2026
856836f
Characterisation of compatibility and progress towards it: enough for…
grunweg Mar 5, 2026
e0639d9
Torsion-freeness is done. (Just one broken proof to fix, erw issues.)
grunweg Mar 6, 2026
15255f5
Comment on naming scheme
grunweg Mar 6, 2026
7b46dfd
chore: move material on metric connections to a new file
grunweg Mar 6, 2026
1ab8a9a
File authors; one better lemma name
grunweg Mar 6, 2026
1be81af
Remove σ from fields and lemma names
PatrickMassot Mar 6, 2026
5e646a5
chore(Metric): better variable management
grunweg Mar 6, 2026
a080f6d
chore(Torsion): better variable management
grunweg Mar 6, 2026
381368e
chore: synchronise naming of apply lemmas between torsion and metric
grunweg Mar 6, 2026
a1b6dc9
chore: add module doc-string (and minor tweaks)
grunweg Mar 6, 2026
8e7fc4e
chore(Torsion): more auxiliary name for torsionFun
grunweg Mar 6, 2026
af5b730
chore(Metric): add detailed module doc-string
grunweg Mar 6, 2026
05b909b
CovariantDerivative.Basic cleanup
PatrickMassot Mar 6, 2026
7676417
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Mar 6, 2026
45b7da1
chore: move outdated code about Christoffel symbols to a new file
grunweg Mar 6, 2026
a32e69a
Add missing global operations
PatrickMassot Mar 6, 2026
b2e648c
chore(LeviCivita): small clean-ups
grunweg Mar 6, 2026
94f67dd
refactor tensoriality to generalize codomain
hrmacbeth Mar 6, 2026
85cc2c2
eliminate "omit"
hrmacbeth Mar 6, 2026
a874b31
rename mkTensorAt
hrmacbeth Mar 6, 2026
f350adb
Merge branch 'master' into hm-covder-bundled
hrmacbeth Mar 6, 2026
2f60ee6
merge master
hrmacbeth Mar 6, 2026
075ab00
reorg imports
hrmacbeth Mar 6, 2026
ca18f23
clean up and document tensoriality file
hrmacbeth Mar 6, 2026
0c68f8c
more cleanup in tensoriality
hrmacbeth Mar 6, 2026
821121f
module docstring for tensoriality
hrmacbeth Mar 6, 2026
56e107c
chore: rename metricTensor -> compatibilityTensor
grunweg Mar 6, 2026
93f3000
More documentation in CovariantDerivative.Basic
PatrickMassot Mar 6, 2026
15d3c73
Better doc
PatrickMassot Mar 6, 2026
dc9ba96
wip(LeviCivita): extend documentation
grunweg Mar 6, 2026
0c586f3
chore(Basic): fewer dollars
grunweg Mar 6, 2026
2317efd
chore(Torsion): a few tweaks
grunweg Mar 6, 2026
4410c90
chore: add more bar!
grunweg Mar 6, 2026
9beac34
Reviewed Torsion together
grunweg Mar 6, 2026
65dc2aa
wip: metric changes
grunweg Mar 6, 2026
5aa3e1a
chore: don't need mfderiv_smul and friends just yet
grunweg Mar 6, 2026
fa6e61e
Fixup for torsion changes
grunweg Mar 6, 2026
4cc7969
wip: try to fix errors in Metric.lean
grunweg Mar 6, 2026
f4cf244
fix LeviCivita after defeq abuse adjustments earlier
hrmacbeth Mar 6, 2026
604f71d
chore(LeviCivita): remove a few no longer needed type ascriptions
grunweg Mar 6, 2026
05b22d6
aux1 in Metric.lean is sorry-free again: mfderiv_smul has too much de…
grunweg Mar 6, 2026
95f5ea3
Fix aux4
grunweg Mar 6, 2026
9954493
Minor polish
grunweg Mar 6, 2026
2d3aecd
Merge branch 'master' into hm-covder-bundled
grunweg Mar 6, 2026
db5c01d
chore: add missing bar; and use mfderiv% and mfderiv[s] slightly more
grunweg Mar 6, 2026
e8a2882
Fix build
grunweg Mar 6, 2026
078e3d5
doc(LeviCivita): extend the module doc-string a bit; removed unused a…
grunweg Mar 6, 2026
6a21dcc
chore(LeviCivita): small polish and golf
grunweg Mar 6, 2026
0f48d2d
chore: transplant improvements from PR
grunweg Mar 6, 2026
0643f0c
generalize to a riemannian bundle
hrmacbeth Mar 7, 2026
6977518
update notation after generalisation
hrmacbeth Mar 7, 2026
8a8f4a7
fixes after cherry-pick
hrmacbeth Mar 7, 2026
7a6d61b
move mfderiv_smul
hrmacbeth Mar 7, 2026
9ca3c4e
clean up proofs a bit
hrmacbeth Mar 7, 2026
5a038e0
clean up proofs
hrmacbeth Mar 7, 2026
dcabc20
defer MDifferentiable.inner_bundle issue
hrmacbeth Mar 7, 2026
d2d07e6
docs
hrmacbeth Mar 7, 2026
b6fb0a0
Some cleanup
PatrickMassot Mar 7, 2026
165f4c2
stray #lint
hrmacbeth Mar 7, 2026
f8ff4b7
remove smuls
hrmacbeth Mar 7, 2026
9583463
namespaces
hrmacbeth Mar 7, 2026
8c5cd5c
doc
hrmacbeth Mar 7, 2026
5fd575d
typo
hrmacbeth Mar 7, 2026
b16f681
feat: add sub and neg lemmas for covariant derivatives
grunweg Mar 8, 2026
b1a6f3b
wip: define the curvature tensor
grunweg Mar 8, 2026
d2dfd9f
chore: remove _root_.extend --- it has been moved to FiberBundle
grunweg Mar 8, 2026
1f9cd5e
Clean up curvature proof; additivity in X almost done
grunweg Mar 8, 2026
d198c1f
Further clean-up of additivity proof: extract helper lemma
grunweg Mar 8, 2026
1febf77
chore(Ehresmann): remove obsolete section real
grunweg Mar 9, 2026
0b78020
chore(Basic): use WithTop ENat instead --- forward-ports a review adj…
grunweg Mar 9, 2026
1d5103a
wip(Curvature): indicate how global hypotheses on differentiability a…
grunweg Mar 9, 2026
d39526c
golf(CovariantDerivative): re-use existing result; use fromNormedSpac…
grunweg Mar 14, 2026
5b0d3a9
feat: Relax type class assumption on T% elaborator
PatrickMassot Mar 17, 2026
e7b1409
feat: skeleton for 3-tensors
grunweg Mar 17, 2026
c35486a
feat: skeleton for Ricci and scalar curvature
grunweg Mar 17, 2026
1d2e4de
Merge branch 'master' into hm-covder-bundled
grunweg Mar 17, 2026
66a1324
Revert spurious diff; small tweak
grunweg Mar 17, 2026
e84416a
Fix bad merge in Tensoriality
grunweg Mar 17, 2026
38b6c2b
Fix bad merge in CovariantDerivative/Basic.lean
grunweg Mar 17, 2026
742f637
Fixup LeviCivita
grunweg Mar 17, 2026
dba7b66
Merge branch 'master' into hm-covder-bundled
grunweg Mar 17, 2026
8bf6ea3
chore: trivially generalise extDerivFun to codomain normed spaces
grunweg Mar 17, 2026
bf9e054
Remove bad simp annotation added in merge
grunweg Mar 17, 2026
265dc28
Merge branch 'master' into hm-covder-bundled
grunweg Mar 21, 2026
5ab2c38
Remove check'
grunweg Mar 21, 2026
f4c7992
chore: remove duplicate open
grunweg Mar 21, 2026
536e39f
Merge branch 'master' into hm-covder-bundled
PatrickMassot Mar 24, 2026
a333eb9
Some progress on Ehresmann
PatrickMassot Mar 26, 2026
df0edad
More stupid lemmas
PatrickMassot Mar 26, 2026
5abc695
Finish CovariantDerivative.mem_horiz_iff_exists
PatrickMassot Mar 26, 2026
0ba6600
Recover modifications lost in a bad merge
PatrickMassot Mar 17, 2026
d6e7aa7
A bit more
PatrickMassot Mar 27, 2026
36c96bf
Finish CovariantDerivative.lift_vec_eq
PatrickMassot Mar 27, 2026
a5b21d5
Cleanup and move around
PatrickMassot Mar 27, 2026
a612d0b
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Mar 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -4463,6 +4463,7 @@ public import Mathlib.Geometry.Manifold.Notation
public import Mathlib.Geometry.Manifold.PartitionOfUnity
public import Mathlib.Geometry.Manifold.PoincareConjecture
public import Mathlib.Geometry.Manifold.Riemannian.Basic
public import Mathlib.Geometry.Manifold.Riemannian.ExistsRiemannianMetric
public import Mathlib.Geometry.Manifold.Riemannian.PathELength
public import Mathlib.Geometry.Manifold.Sheaf.Basic
public import Mathlib.Geometry.Manifold.Sheaf.LocallyRingedSpace
Expand All @@ -4472,16 +4473,31 @@ public import Mathlib.Geometry.Manifold.SmoothEmbedding
public import Mathlib.Geometry.Manifold.StructureGroupoid
public import Mathlib.Geometry.Manifold.VectorBundle.Basic
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Basic
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.ChristoffelSymbols
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Curvature
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Ehresmann
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Geodesics
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.IntegralCurvePrelim
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.LeviCivita
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Lift
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Metric
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Prelim
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Torsion
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Torsion2
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.TrivPrelim
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Trivial
public import Mathlib.Geometry.Manifold.VectorBundle.FiberwiseLinear
public import Mathlib.Geometry.Manifold.VectorBundle.GramSchmidtOrtho
public import Mathlib.Geometry.Manifold.VectorBundle.Hom
public import Mathlib.Geometry.Manifold.VectorBundle.LocalFrame
public import Mathlib.Geometry.Manifold.VectorBundle.MDifferentiable
public import Mathlib.Geometry.Manifold.VectorBundle.OrthonormalFrame
public import Mathlib.Geometry.Manifold.VectorBundle.Pullback
public import Mathlib.Geometry.Manifold.VectorBundle.Riemannian
public import Mathlib.Geometry.Manifold.VectorBundle.SmoothSection
public import Mathlib.Geometry.Manifold.VectorBundle.Tangent
public import Mathlib.Geometry.Manifold.VectorBundle.Tensoriality
public import Mathlib.Geometry.Manifold.VectorBundle.Unused
public import Mathlib.Geometry.Manifold.VectorField.LieBracket
public import Mathlib.Geometry.Manifold.VectorField.Pullback
public import Mathlib.Geometry.Manifold.WhitneyEmbedding
Expand Down
127 changes: 127 additions & 0 deletions Mathlib/Geometry/Manifold/CheatSheet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
## Differential geometry cheat sheet

How do I say certain basic things in Lean?
For each of them, include a variable block. Can verso do this already?


Let M be a C^k manifold.
```
variable {𝕜 E M H : Type*} [NontriviallyNormedField 𝕜] [NormedAddCommGroup E]
[NormedSpace 𝕜 E] [TopologicalSpace H] [TopologicalSpace M] {k : ℕ} -- more general: take k : WithTop ℕ∞, allows smooth and analytic; remove WithTop to exclude analyticity
{I : ModelWithCorners 𝕜 E H} [ChartedSpace H M] [IsManifold I k M]
```

Let M be a smooth manifold
```
variable {𝕜 E M H : Type*} [NontriviallyNormedField 𝕜] [NormedAddCommGroup E]
[NormedSpace 𝕜 E] [TopologicalSpace H] [TopologicalSpace M]
{I : ModelWithCorners 𝕜 E H} [ChartedSpace H M] [IsManifold I ∞ M]
```

Let M be a smooth real manifold.
```
variable {E M H : Type*} [NormedAddCommGroup E]
[NormedSpace ℝ E] [TopologicalSpace H] [TopologicalSpace M]
{I : ModelWithCorners ℝ E H} [ChartedSpace H M] [IsManifold I ∞ M] -- test, needs open scoped Manifold??
```

Let M be an analytic manifold
```
open scoped Manifold -- test, necessary?

variable {𝕜 E M H : Type*} [NontriviallyNormedField 𝕜] [NormedAddCommGroup E]
[NormedSpace 𝕜 E] [TopologicalSpace H] [TopologicalSpace M]
{I : ModelWithCorners 𝕜 E H} [ChartedSpace H M] [IsManifold I ω M]
```

Differentiability of functions between manifolds
```
import Mathlib.Geometry.Manifold.MFDeriv.Defs
import Mathlib.Geometry.Manifold.ContMDiff.Defs

variable
-- Given a non-trivially normed field 𝕜
{𝕜 : Type*} [NontriviallyNormedField 𝕜]
-- A manifold M over 𝕜
{E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
{H : Type*} [TopologicalSpace H] (I : ModelWithCorners 𝕜 E H)
{M : Type*} [TopologicalSpace M] [ChartedSpace H M]
-- A manifold M' over 𝕜
{E' : Type*} [NormedAddCommGroup E'] [NormedSpace 𝕜 E']
{H' : Type*} [TopologicalSpace H'] (I' : ModelWithCorners 𝕜 E' H')
{M' : Type*} [TopologicalSpace M'] [ChartedSpace H' M']
-- A function from M to M' and x in M
(f : M → M') (x : M)

variable (x : M) in
-- f is differentiable at x
#check MDifferentiableAt I I' f x

variable (n : WithTop ℕ∞) in -- A natural number or ∞ or ω
#check ContMDiff I I' n f


variable
{F : Type*} [NormedAddCommGroup F] [NormedSpace 𝕜 F]
(g : M → F) in
open scoped Manifold in
#check ContMDiff I 𝓘(𝕜, F) n g -- g is n times continuously differentiable
```

Consider the product manifold M \times N.


Let \phi be the preferred chart at x\in M.

Let \phi be any (compatible) chart on M.

--------

Let E\to M be a topological vector bundle.

Let E\to M be a smooth vector bundle.

Let s be a section of E.
```
variable (s : Π x : M, V x)
```
Let X be a vector field on `M`
```
(X : Π x : M, TangentSpace I x)
```

Let s be a C^k section of E. / The section s of E is C^k.
```
ContMDiff I (I.prod 𝓘(𝕜, F)) (k + 1) (fun x ↦ TotalSpace.mk' F x (σ x))
```

Let `X` be a C^k vector field on M.
```
variable {X : Π x : M, TangentSpace I x}
-- TODO: this doesn't work!
-- variable (___hX: ContMDiff I I.tangent 2 (fun x ↦ (X x : TangentBundle I M)))
```

Let \phi be the preferred local trivialisation at x\in E.
Let \phi be any compatible trivialisation on M.

Consider the tangent bundle TM of M.

Let X be a C^k vector field on M.

explain TotalSpace.mk' somewhere in here...



**Basic API lemmas**
- testing smoothness of a map in charts: the standard charts; any charts

- testing smoothness of a section in trivialisations: the standard charts; any charts


**constructions**
- product manifold (tricky!)
- disjoint union

- product bundle (how difficult?)
- Lie bracket of vector fields
16 changes: 8 additions & 8 deletions Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ theorem Differentiable.comp_mdifferentiable {g : F → F'} {f : M → F}

end Module

section ExtChartAt
section extChartAt

variable {F : Type*} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : M → F}

Expand All @@ -101,7 +101,7 @@ theorem DifferentiableWithinAt.mdifferentiableWithinAt_of_comp_extChartAt_symm [
refine (mdifferentiableWithinAt_iff_source_of_mem_source (mem_chart_source H x)).2 ?_
simpa [extChartAt_self_eq] using hf.mdifferentiableWithinAt

end ExtChartAt
end extChartAt

/-! ### Linear maps between normed spaces are differentiable -/

Expand Down Expand Up @@ -398,20 +398,20 @@ end smul
/-! ### Exterior derivative of a scalar function -/

/-- The exterior derivative of a scalar function on `M`, as a section of the cotangent bundle. -/
noncomputable abbrev extDerivFun (g : M → 𝕜) :
Π x : M, TangentSpace I x →L[𝕜] 𝕜 :=
noncomputable abbrev extDerivFun (g : M → F) :
Π x : M, TangentSpace I x →L[𝕜] F :=
fun x ↦ (NormedSpace.fromTangentSpace <| g x).toContinuousLinearMap ∘L (mfderiv% g x)

@[simp]
lemma extDerivFun_add {g g' : M → 𝕜} {x : M} (hg : MDiffAt g x) (hg' : MDiffAt g' x) :
lemma extDerivFun_add {g g' : M → F} {x : M} (hg : MDiffAt g x) (hg' : MDiffAt g' x) :
extDerivFun (g + g') x = extDerivFun (I := I) g x + extDerivFun g' x := by
simp [extDerivFun, mfderiv_add hg hg']
congr

@[simp]
lemma extDerivFun_zero {x : M} : extDerivFun (I := I) (0 : M → 𝕜) x = 0 := by
have : extDerivFun (0 : M → 𝕜) x + extDerivFun (0 : M → 𝕜) x =
extDerivFun (I := I) (0 : M → 𝕜) x := by
lemma extDerivFun_zero {x : M} : extDerivFun (I := I) (0 : M → F) x = 0 := by
have : extDerivFun (0 : M → F) x + extDerivFun (0 : M → F) x =
extDerivFun (I := I) (0 : M → F) x := by
rw [← extDerivFun_add (by exact mdifferentiable_const ..) (by exact mdifferentiable_const ..)]
simp
simpa using this
14 changes: 14 additions & 0 deletions Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean
Original file line number Diff line number Diff line change
Expand Up @@ -790,6 +790,20 @@ theorem mfderiv_add (hf : MDiffAt f z) (hg : MDiffAt g z) :
(by exact mfderiv% f z) + (by exact mfderiv% g z) :=
(hf.hasMFDerivAt.add hg.hasMFDerivAt).mfderiv

open NormedSpace in
theorem fromTangentSpace_mfderiv_add (hf : MDiffAt f z) (hg : MDiffAt g z) :
(fromTangentSpace _).toContinuousLinearMap ∘L (mfderiv% (f + g) z)
= (fromTangentSpace _).toContinuousLinearMap ∘L (mfderiv% f z)
+ (fromTangentSpace _).toContinuousLinearMap ∘L (mfderiv% g z) :=
(hf.hasMFDerivAt.add hg.hasMFDerivAt).mfderiv

open NormedSpace in
theorem fromTangentSpace_mfderiv_add_apply (hf : MDiffAt f z) (hg : MDiffAt g z)
(v : TangentSpace I x) :
fromTangentSpace _ (mfderiv% (f + g) z v)
= fromTangentSpace _ (mfderiv% f z v) + fromTangentSpace _ (mfderiv% g z v) :=
congr($(fromTangentSpace_mfderiv_add hf hg) v)

section sum
variable {ι : Type} {t : Finset ι} {f : ι → M → E'} {f' : ι → TangentSpace I z →L[𝕜] E'}

Expand Down
Loading
Loading