Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
458 commits
Select commit Hold shift + click to select a range
caedcfd
Golf all proofs: re-define gramSchmidt to apply point-wise
grunweg Jul 9, 2025
7a025f0
Start Trivialization.covDeriv
PatrickMassot Jul 9, 2025
26816ea
chore: missing API for gramSchmidt; rename zero to bot
grunweg Jul 9, 2025
dcc3fdc
Define orthonormal frames; some very basic API.
grunweg Jul 9, 2025
6b6d019
Start refactoring local frames: define a predicate IsLocalFrameOn
grunweg Jul 9, 2025
e900ccf
chore: more API for local frames; actually becomes cleaner!
grunweg Jul 9, 2025
338fac2
checkpoint: LocalFrame compiles,
grunweg Jul 9, 2025
2600785
Clean up orthonormal frame accordingly.
grunweg Jul 9, 2025
90848b3
Prepare generalising smoothness in frame coefficient lemmas
grunweg Jul 9, 2025
2c97656
Fix the build and silence a few linter errors
grunweg Jul 9, 2025
e147cea
Progress: local frame coefficients for local frames
grunweg Jul 9, 2025
3346d9d
Is this a fine approach?
grunweg Jul 9, 2025
a1a7d56
feat: more basic API for local frames
grunweg Jul 10, 2025
a50bc0e
chore(VectorBundle/MDifferentiable): fix some lemma names
grunweg Jul 10, 2025
089ef7c
chore(LocalFrame): generalise mdifferentiability lemmas also
grunweg Jul 10, 2025
79dcd96
feat: prove smoothness iff in frame coefficients for orthogonal frames
grunweg Jul 10, 2025
1bbf982
chore: extract a helper lemma for further use
grunweg Jul 10, 2025
1e0c5d4
chore: solve the Gram-Schmidt sorries
grunweg Jul 10, 2025
8f9549e
Two more sorries
grunweg Jul 10, 2025
3ba2f74
chore(GramSchmidtOrtho): namespace the remaining file
grunweg Jul 10, 2025
aa4291e
fix: rename two misnamed lemmas
grunweg Jul 10, 2025
5f5377d
WIP: add normalised Gram-Schmidt on vector bundles
grunweg Jul 10, 2025
ed521af
Almost done proving smoothness for normalised Gram-Schmidt
grunweg Jul 10, 2025
294421d
wip: use normalised Gram-Schmidt to normalised local frames
grunweg Jul 10, 2025
770321b
Fix differentiability sorry in GramSchmidtOrtho
grunweg Jul 10, 2025
96533dc
feat: gramSchmidtNormed_linearIndependent
grunweg Jul 10, 2025
5a0d029
Vector bundle version
grunweg Jul 10, 2025
1d18915
Fix easy sorries in OrthonormalFrame
grunweg Jul 10, 2025
50df8e2
Merge branch 'master' into MR-covariant-derivatives
grunweg Jul 10, 2025
96f9e73
Fix merge; clean up VectorBundle/GramSchmidtOrtho
grunweg Jul 10, 2025
1f7235a
Towards uniqueness of the Levi-Civita connection
grunweg Jul 10, 2025
b60728d
We have everything for uniqueness of Levi-Civita now!
grunweg Jul 10, 2025
d3d75cc
First kind of API changes
grunweg Jul 11, 2025
d53bcfe
chore(VectorBundle/GramSchmidtOrtho): comment on some omitted API
grunweg Jul 11, 2025
11267e7
In fact, do define this API because it's not hard
grunweg Jul 11, 2025
c2f432c
wip: produce an orthonormal basis in vector bundle Gram-Schmidt
grunweg Jul 11, 2025
aac01a0
Getting close to proving the repr result
grunweg Jul 11, 2025
d857dd0
Fix the build
grunweg Jul 11, 2025
1f9426f
feat: gramSchmidt{Normal,OrthonormalBasis} preserve orthonormal sections
grunweg Jul 11, 2025
77b975e
refactor: make IsOrthonormalFrameOn require orthonormality instead
grunweg Jul 11, 2025
d833854
Fix sorries in OrthonormalFrame; clean up
grunweg Jul 11, 2025
1197497
Good enough; next file!
grunweg Jul 11, 2025
acc95fc
Comment on Levi-Civita sorries.
grunweg Jul 11, 2025
1206c72
chore: fix a few linter warnings
grunweg Jul 11, 2025
0b1fcb2
chore(LeviCivita): re-order computation lemmas
grunweg Jul 11, 2025
afb81a1
Golf a proof
grunweg Jul 11, 2025
6c5ae39
Refactor more covariant derivative stuff
PatrickMassot Jul 11, 2025
0f1cd55
Make computations slightly less sketchy
grunweg Jul 11, 2025
62e0d9f
feat: missing order instances
grunweg Jul 11, 2025
d0b0aee
chore: missing order instance (up to one sorry)
grunweg Jul 11, 2025
9b18c4b
Virtually done with the order theory
grunweg Jul 11, 2025
233d0c0
Complete definition of candidate of L-C connection.
grunweg Jul 11, 2025
d6635d9
chore(CovariantDerivatives): move prerequisites to a new file
grunweg Jul 11, 2025
292f238
Clean up order instances, following zulip discussion.
grunweg Jul 11, 2025
f5c20b8
Some glue sorries
grunweg Jul 11, 2025
65aede4
workaround: solve one computation sorry, by avoid (2 : N)* A in favou…
grunweg Jul 11, 2025
25c52a9
doc: long doc-string for the custom elaborators
grunweg Jul 12, 2025
1800c3f
chore: remove two unused elaborators; tweak documentation
grunweg Jul 12, 2025
ff070de
More documentation for the elaborators
grunweg Jul 12, 2025
0cf8c97
More documentation for the elaborators
grunweg Jul 12, 2025
5ccfc41
chore: add (failing) test for another elaborator quirk
grunweg Jul 12, 2025
5dd96f3
Further scaffolding towards existence
grunweg Jul 12, 2025
33620b2
Boilerplate for the covariant derivative, first condition
grunweg Jul 12, 2025
2f22266
Some more generalization to all trivial bundles
PatrickMassot Jul 13, 2025
175e4f8
Some inessential sorries
grunweg Jul 13, 2025
eefafa1
Cleanup, smooth bump function lemmas
grunweg Jul 13, 2025
dcf0db8
Minor
grunweg Jul 13, 2025
3a1842c
Use product rule for mfderiv in LeviCivita.
grunweg Jul 13, 2025
531218b
chore(LeviCivita): put big computations into separate sections
grunweg Jul 14, 2025
c7ebb9e
chore/feat(LeviCivita): fix variable implicitness, re-use variables
grunweg Jul 14, 2025
a9a8858
feat: complete leviCivita_addZ computation
grunweg Jul 14, 2025
4a88cf5
Prove leviCivita_rhs_addX; adapt downstream: will need more scaffolding
grunweg Jul 14, 2025
5ae7972
feat: add leviCivita_rhs_addY and hook up to the overall sorry
grunweg Jul 14, 2025
a89fff2
wip: refactor LC computations to add point-wise versions
grunweg Jul 14, 2025
f104e34
Generalize of_endomorphism to IsCovariantDerivativeOn.add_one_form
PatrickMassot Jul 14, 2025
b9eef6d
Massive reordering of CovariantDerivative
PatrickMassot Jul 14, 2025
c7d8bc9
Refactor classification on trivial bundles
PatrickMassot Jul 14, 2025
7595a39
Add pullback of LocalFrame stub
PatrickMassot Jul 15, 2025
c4238c1
More fun with automatic continuity of linear maps
PatrickMassot Jul 15, 2025
c54f925
Projection operator in the trivial bundle case
PatrickMassot Jul 15, 2025
9816e63
Clean up notation of C^k connections
grunweg Jul 15, 2025
0b97c49
More local study of connections
PatrickMassot Jul 15, 2025
a269252
Start map_of_one_jet
PatrickMassot Jul 17, 2025
ab97b3f
chore(Elaborators): fix a few typos in doc-strings
grunweg Jul 17, 2025
c24b2fe
feat: custom elaborator for mderiv(Within)
grunweg Jul 17, 2025
05048fa
And add some tests, including some for (already fine) error messages
grunweg Jul 17, 2025
a3302d1
Reduce map_of_one_jet_spec to the local case
PatrickMassot Jul 17, 2025
9a22a01
chore(Misc): minor tweaks
grunweg Jul 17, 2025
517938a
Use mfderiv elaborator a bit
grunweg Jul 17, 2025
8f2168a
feat: mostly prove that a convex combination of covariant derivatives…
grunweg Jul 17, 2025
edc42c1
feat: add and use a congruence lemma for IsCovariantDerivativeOn
grunweg Jul 17, 2025
ba1c2d5
Some linear algebra
PatrickMassot Jul 17, 2025
cda1880
Local frame fixes
PatrickMassot Jul 17, 2025
f727892
Finish map_of_one_jet_spec
PatrickMassot Jul 17, 2025
72f03c2
mfderiv_smul
PatrickMassot Jul 17, 2025
8698097
feat: complete proof that a convex combination of covariant derivativ…
grunweg Jul 22, 2025
f95e291
Some comment tweaks
grunweg Jul 22, 2025
9888d96
Merge branch 'master' into MR-covariant-derivatives
grunweg Jul 27, 2025
eb5eb61
Fix merge
grunweg Jul 27, 2025
3facfa3
Merge branch 'master' into MR-covariant-derivatives
grunweg Jul 29, 2025
c3a1853
Fix for mathlib bump (except for one broken lemma, which is harder).
grunweg Jul 29, 2025
27dec6f
chore: replace very non-canonical definition by a local instance
grunweg Jul 29, 2025
6b19d35
wip: local versions of computation lemmas
grunweg Aug 1, 2025
2d37e7a
chore: remove some differentiability hypotheses
grunweg Aug 1, 2025
bfc0243
Tinkering with the linear order: perhaps revert the previous change?
grunweg Aug 1, 2025
2ba81a1
Prove all 'just divide by two' lemmas
grunweg Aug 1, 2025
28d4304
Prove addY; polish addX
grunweg Aug 1, 2025
c41cc6e
Add point-wise version of addZ
grunweg Aug 1, 2025
97fa818
One sorry's assumptions are clear now
grunweg Aug 1, 2025
5281a8a
wip: smulX --- get an additional term!
grunweg Aug 1, 2025
3b19897
Finish smulX; I'm still worried about the extra term.
grunweg Aug 1, 2025
f02d0f4
cherry-pick: partition of unity lemmas
grunweg Aug 22, 2025
d3482d8
chore: cherry-pick more
grunweg Aug 22, 2025
bbd2315
chore: cherry-pick wip work from 28056, TODO finish it using orthonor…
grunweg Aug 22, 2025
4d2b28d
chore(LieBracket): two small tweaks
grunweg Aug 22, 2025
ed37d1b
chore: cherry-pick current WIP from 26743's branch
grunweg Aug 22, 2025
902d190
Three easy sorries
grunweg Aug 22, 2025
7fae63c
Tweak
grunweg Aug 22, 2025
d96442e
Progress: one helper computation looks solid, another might be wrong …
grunweg Aug 22, 2025
c781a19
Glue sorry done; some tweaks
grunweg Aug 22, 2025
699fd17
Other computation is close: holds once I restrict my set of considera…
grunweg Aug 22, 2025
62e78c8
This version of my computation is true, does it suffice?
grunweg Aug 22, 2025
8f78aa2
Clean up: intuitively, what I have should suffice; need to think to f…
grunweg Aug 22, 2025
50ca83a
Small tweaks: don't understand the last sorry yet
grunweg Aug 23, 2025
46e8442
chore(LeviCivita): polish and documentation
grunweg Aug 27, 2025
c68be46
chore: cherry-pick #print sorries command from #25179
grunweg Aug 27, 2025
a338d09
Small polish; golf one proof
grunweg Aug 27, 2025
202a605
wip: proving leviCivita_rhs_smulZ sorry
grunweg Aug 27, 2025
920aecf
Uniqueness of Levi-Civita is sorry-free:
grunweg Aug 28, 2025
fc56818
Fix two proofs
grunweg Aug 28, 2025
4533be2
Fix the final proof: now, all + 2 A terms disappear again.
grunweg Aug 28, 2025
e28f01f
chore: fix gramSchmidt_contDiffWithinAt
grunweg Aug 28, 2025
7b656a7
Uniqueness of the Levi-Civita connection is truly sorry-free!
grunweg Aug 28, 2025
f2e300c
Try the smulZ lemma a bit harder: enough!
grunweg Aug 29, 2025
23dd09f
Some sorries in isCovariantDerivativeOn_lcCandidate_aux
grunweg Aug 29, 2025
b5b3d48
My candidate is torsion-free: let's go via the Christoffel symbols.
grunweg Aug 29, 2025
4b0b15f
chore: generalise torsion-freeness to an open set
grunweg Aug 30, 2025
c6fc6e7
Reduce torsion-freeness to local frames: wip
grunweg Aug 30, 2025
118560b
chore: generalise many torsion lemmas to the local context
grunweg Aug 30, 2025
1f017b0
Enough computation for now
grunweg Aug 30, 2025
8331761
wip: generalise Lee's exercise
grunweg Aug 30, 2025
1f3233f
Reorder lemmas for clarity; better lemma name
grunweg Aug 30, 2025
326e0f6
Mostly prove exercise: missing sorries are more missing API :-)
grunweg Aug 30, 2025
3bc4ec3
chore: move CovariantDerivative, LeviCivita to a new directory
grunweg Aug 30, 2025
f483ee3
chore: move declarations about torsion of connections to a new file
grunweg Aug 30, 2025
bf98bba
Clean up: move local results up
grunweg Aug 30, 2025
7653381
chore: congruence and iUnion lemmas for IsTorsionFreeOn
grunweg Aug 30, 2025
4ce0512
All hooked up well: enough for today!
grunweg Aug 30, 2025
4494240
Extract Christoffel symbol computation I need
grunweg Aug 30, 2025
dd27753
Small clean-up, a missing simp lemma
grunweg Aug 30, 2025
09514b1
Minor tweaks
grunweg Aug 30, 2025
d33d7db
chore: ChristoffelSymbol should be UpperCamelBase
grunweg Aug 30, 2025
09ffcf8
Small tweaks, one sorry and an auxiliary lemma
grunweg Aug 30, 2025
dcbd776
chore(LeviCivita): better abstraction for the
grunweg Aug 31, 2025
c60d6e2
smulZ computation complete!
grunweg Aug 31, 2025
c3a1d68
chore: rename definitions to follow the naming convention better
grunweg Aug 31, 2025
1318155
chore: make leviCivitaRhs(') follow the naming convention
grunweg Aug 31, 2025
054423a
Progress on symmetry of Christoffel symbols... only "boring" sorries …
grunweg Aug 31, 2025
62f3653
Small tweaks
grunweg Aug 31, 2025
33dcdb6
chore: fix to order sorries
grunweg Aug 31, 2025
7012476
My other attempt fails, though!
grunweg Aug 31, 2025
f8cbbea
chore: missing API for smul{Y,Z}_const
grunweg Aug 31, 2025
845024a
refactor(CovariantDerivative): require the computational conditions only
grunweg Sep 27, 2025
bec757f
wip: start on the Leibniz rule
grunweg Sep 27, 2025
e7fbcb4
Progress: last bit is figuring out the correct term, and then pushing…
grunweg Sep 28, 2025
0a4cca4
Complete helper computation
grunweg Sep 28, 2025
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
4ab2b9b
chore: more simp lemmas
grunweg Mar 2, 2026
2708cf2
chore: rephrase a TODO --- the current phrasing took me a moment to p…
grunweg Mar 2, 2026
f268546
More
grunweg Mar 2, 2026
e40890d
chore: cherry-pick local frames changes
grunweg Feb 24, 2026
7fc4aa3
refactor: make localExtensionOn a linear map instead
grunweg Feb 25, 2026
8f3bcb0
Fix the build; comment one case of defeq abuse.
grunweg Feb 25, 2026
88c99a6
Merge branch 'master' into MR-covariant-derivatives
grunweg Mar 2, 2026
cb6eec1
Fix merge
grunweg Mar 2, 2026
dbb4510
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Mar 2, 2026
d86d379
chore: mfderiv% more; annotate a few failing cases
grunweg Feb 28, 2026
a565735
Small clean-ups and tweaks
grunweg Mar 2, 2026
af90586
Annotate some lemmas getting upstreamed
grunweg Mar 2, 2026
3227b67
Merge branch 'moresimp' into MR-covariant-derivatives
grunweg Mar 2, 2026
5b16147
Golf using new simp lemmas
grunweg Mar 2, 2026
8571471
Golf using new simp lemmas
grunweg Mar 2, 2026
9e8ded0
chore: general golfs using these lemmas
grunweg Mar 2, 2026
ae28ac6
Merge branch 'master' into MR-covariant-derivatives
grunweg Mar 4, 2026
fe38868
Fixup
grunweg Mar 4, 2026
c336d95
Fixes
grunweg Mar 4, 2026
c487a9a
It builds now, again!
grunweg Mar 4, 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
10 changes: 10 additions & 0 deletions Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -4397,6 +4397,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 @@ -4405,14 +4406,23 @@ public import Mathlib.Geometry.Manifold.SmoothApprox
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.LeviCivita
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Lift
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Prelim
public import Mathlib.Geometry.Manifold.VectorBundle.CovariantDerivative.Torsion
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.Misc
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.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
Loading
Loading