Skip to content

[Merged by Bors] - feat: local diffeomorphisms#8736

Closed
grunweg wants to merge 23 commits intomasterfrom
MR-manifolds-local-diffeos
Closed

[Merged by Bors] - feat: local diffeomorphisms#8736
grunweg wants to merge 23 commits intomasterfrom
MR-manifolds-local-diffeos

Conversation

@grunweg
Copy link
Copy Markdown
Contributor

@grunweg grunweg commented Nov 30, 2023

Define local diffeomorphisms between smooth manifolds. As an auxiliary definition, we add PartialDiffeomorph, the analogue of PartialHomeomorph for diffeomorphisms.

In future PRs, we will

  • show that local diffeomorphisms have invertible differential
  • show the converse, using the inverse function theorem: if the differential of $f$ at $x$ is invertible, $f$ is a local diffeomorphism at $x$

Alternative designs considered

A. a local diffeomorphism $M\to N$ is a diffeomorphism between open sets $U\subset M$ and $V\subset N$ containing $x$ and $f(x)$, respectively.

mathlib already has diffeomorphisms; this definition would be cumbersome to use, as proving e.g. openness of the image or "a diffeomorphism is a local diffeomorphism" required dealing with subtypes U, V instead of M and N.

B. use the junk value pattern, but bundle a choice of inverse (i.e., replace IsLocalDiffeomorphAt with the current LocalDiffeomorphAux together with a proof that $x\in source$
This makes the implication "if $f$ is a local diffeomorphism at every point $x$, it's a local diffeomorphism" at least tedious to state and prove. With the current design, that's by definition.

@grunweg grunweg added WIP Work in progress t-differential-geometry Manifolds etc labels Nov 30, 2023
@fpvandoorn
Copy link
Copy Markdown
Member

To comment on your naming remark: I want to rename LocalHomeomorph to PartialHomeomorph.

/-- `f : M → N` is called a **`C^n` local diffeomorphism at *x*** iff there exist
open sets `U ∋ x` and `V ∋ f x` and a diffeomorphism `Φ : U → V` such that `f = Φ` on `U`. -/
def IsLocalDiffeomorphAt (f : M → N) (x : M) : Prop :=
∃ Φ : LocalDiffeomorphAux I J M N n, x ∈ Φ.source ∧ EqOn f Φ Φ.source
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't seem like the most convenient definition of IsLocalDiffeomorphAt. For vector spaces we don't really give a definition, but in the statement of the inverse function theorem HasStrictFDerivAt.to_localInverse we use HasStrictFDerivAt. Would it make sense to lift that definition to manifolds?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point! Over R or C, both definitions are indeed equivalent (one direction follows from the inverse function theorem, the other is PR #8738) --- so it's merely a matter of taste or convenience. In several cases, I find the current definition nicer to use (e.g., a local diffeomorphism has open range, I just added that a bijective local diffeomorphism is a diffeomorphism); for showing a particular map is a local diffeomorphism, the other definition can be more useful. Eventually, we should have both --- and I am indeed working on the inverse function theorem also.

I had chosen my definition to match local structomorphisms and local homeomorphisms (in the sense of textbook mathematics, not PartialHomeomorphs). To me, this definition feels more conceptually correct; I regard the coincidence with isomorphic differential is a special fact for C^n maps.

That said: I don't know if these definitions are still equivalent over p-adic numbers, and which definition is correct on that setting.

@sgouezel Do you know more? What's your opinion here?

@fpvandoorn fpvandoorn requested a review from sgouezel November 30, 2023 18:06
@fpvandoorn fpvandoorn added awaiting-author A reviewer has asked the author a question or requested changes. and removed awaiting-review labels Nov 30, 2023
Copy link
Copy Markdown
Member

@fpvandoorn fpvandoorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two of my comments apparently were not submitted. -- EDIT: I think they were, my browser incorrectly showed them as "pending".

@grunweg
Copy link
Copy Markdown
Contributor Author

grunweg commented Dec 1, 2023

To comment on your naming remark: I want to rename LocalHomeomorph to PartialHomeomorph.

By the way, should LocalHomeomorph.continuous_{toFun,invFun} be renamed to continuousOn_{toFun,invFun}? (Also out of scope for this PR.) This would match Diffeomorph and the actual type of their hypotheses.

@grunweg grunweg added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes. labels Dec 1, 2023
@fpvandoorn
Copy link
Copy Markdown
Member

Yes, they should be.

mathlib-bors bot pushed a commit that referenced this pull request Dec 7, 2023
…ields to continuousOn_{to,inv}Fun (#8848)

They have type ContinuousOn ..., hence should be named accordingly. Suggested by @fpvandoorn in #8736.
awueth pushed a commit that referenced this pull request Dec 19, 2023
…ields to continuousOn_{to,inv}Fun (#8848)

They have type ContinuousOn ..., hence should be named accordingly. Suggested by @fpvandoorn in #8736.
Copy link
Copy Markdown
Contributor

@sgouezel sgouezel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you merge master and fix the build (LocalEquiv has been renamed to PartialEquiv)? Thanks!

@grunweg
Copy link
Copy Markdown
Contributor Author

grunweg commented Dec 20, 2023

Updated again, and made a few related golfs.
awaiting-review

@github-actions github-actions bot added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes. labels Dec 20, 2023
@sgouezel sgouezel added awaiting-author A reviewer has asked the author a question or requested changes. and removed awaiting-review labels Dec 20, 2023
Audit all defs and lemmas/theorems for variables that should be implicit;
change order so dot notation hypothesis always comes first.
@grunweg
Copy link
Copy Markdown
Contributor Author

grunweg commented Dec 21, 2023

awaiting-review

@github-actions github-actions bot added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes. labels Dec 21, 2023
@grunweg
Copy link
Copy Markdown
Contributor Author

grunweg commented Dec 21, 2023

Makes sense; I keep learning more best practices for mathlib. Thanks for explaining all these to me.

(I wonder if these rules, e.g. "make arguments implicit if they can be inferred from the others" or "a hypothesis which is used in dot notation should be the first explicit argument" could be linted automatically. Put perhaps there are too many exceptions for this to be worthwhile.)

@sgouezel
Copy link
Copy Markdown
Contributor

It's pretty hard to lint those since there are a lot of exceptions. It's rules that one shoud keep in mind, and break sometimes but only in a deliberate way.

Copy link
Copy Markdown
Contributor

@sgouezel sgouezel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bors d+
Thanks!

@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Dec 22, 2023

✌️ grunweg can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@ghost ghost added delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). and removed awaiting-review labels Dec 22, 2023
@grunweg
Copy link
Copy Markdown
Contributor Author

grunweg commented Dec 22, 2023

Thanks for the review.
bors r+

mathlib-bors bot pushed a commit that referenced this pull request Dec 22, 2023
Define local diffeomorphisms between smooth manifolds. As an auxiliary definition, we add `PartialDiffeomorph`, the analogue of `PartialHomeomorph` for diffeomorphisms.

In future PRs, we will
- show that local diffeomorphisms have invertible differential
- show the converse, using the inverse function theorem: if the differential of $f$ at $x$ is invertible, $f$ is a local diffeomorphism at $x$
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Dec 22, 2023

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat: local diffeomorphisms [Merged by Bors] - feat: local diffeomorphisms Dec 22, 2023
@mathlib-bors mathlib-bors bot closed this Dec 22, 2023
@mathlib-bors mathlib-bors bot deleted the MR-manifolds-local-diffeos branch December 22, 2023 09:50
mathlib-bors bot pushed a commit that referenced this pull request Jan 17, 2024
Following a [comment](#8736 (comment)) by @sgouezel, the hypothesis `IsOpen s` should be the first explicit argument.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). t-differential-geometry Manifolds etc

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants