Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(topology/topological_fiber_bundle): topological fiber bundles #1421

Merged
merged 5 commits into from
Oct 21, 2019

Conversation

sgouezel
Copy link
Collaborator

@sgouezel sgouezel commented Sep 9, 2019

Define topological fiber bundles, check that the first and second projections in a product are indeed fiber bundles, and most importantly give a way to construct fiber bundles from a structure registering how trivialization changes act on fibers.

This has already been discussed on Zulip (see for instance https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/Manifolds/near/174669060), and the version in this PR already takes the comments in the discussion into account.

Depends on #1549

@sgouezel sgouezel requested a review from a team as a code owner September 9, 2019 09:04
Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

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

Looks pretty good to me. Two nitpicky comments.

src/topology/topological_fiber_bundle.lean Outdated Show resolved Hide resolved
src/topology/topological_fiber_bundle.lean Outdated Show resolved Hide resolved
@sgouezel sgouezel added the WIP Work in progress label Sep 16, 2019
@sgouezel
Copy link
Collaborator Author

I have just realized that for the very definition of fiber bundles, there is a better (more structured) version which is more efficient later on. I will switch the PR to the new definition when it is ready (and when I have checked that it works well in the application I have in mind).

@sgouezel sgouezel added blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. and removed WIP Work in progress labels Oct 16, 2019
@sgouezel sgouezel added awaiting-review The author would like community review of the PR and removed blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. labels Oct 17, 2019
Copy link
Member

@PatrickMassot PatrickMassot left a comment

Choose a reason for hiding this comment

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

I think you should make sure the module docstring is fully updated.

* In the trivial situation of the trivial bundle where there is only one chart and one
trivialization, this construction is defeq to the canonical construction (Σ x : B, F). In the case
of the tangent bundle of manifolds, this implies that on vector spaces the derivative and the
manifold derivative are defeq.
Copy link
Member

Choose a reason for hiding this comment

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

Is this last sentence now true? I remember it used to be a lie.

are in fact no dependent type difficulties here!

For this construction, we should thus choose for each `x` one specific trivialization around it. We
include this choice in the definition of the fiber bundle, as it makes some constructions more
Copy link
Member

Choose a reason for hiding this comment

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

Here you are referring to topological_fiber_bundle_core, right?

variable (F)

/-- A structure extending local homeomorphisms, defining a local trivialization of a projection
`proj : Z → B` with fiber `F`, as a local homeomorphism between `Z` and `B × F`. -/
Copy link
Member

Choose a reason for hiding this comment

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

This docstring misses the important information enforced in target_eq.

map_target := λp hp,
by simpa only [set.mem_preimage, and_true, set.mem_univ, set.mem_prod] using hp,
left_inv := begin
assume p hx,
Copy link
Member

Choose a reason for hiding this comment

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

Why not using rintros ⟨x, v⟩ hv?

{ simp [hx] }
end,
right_inv := begin
assume p hx,
Copy link
Member

Choose a reason for hiding this comment

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

Again, why not rintros?

(Z.local_triv i).symm.trans (Z.local_triv j) ≈ Z.triv_change i j :=
Z.local_triv'_trans i j

/-- Extended version of the local trivialization, as a bundle trivialization -/
Copy link
Member

Choose a reason for hiding this comment

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

What do you mean by "extended" here?

begin
assume s hs,
rw mem_nhds_sets_iff at hs,
rcases hs with ⟨t, st, t_open, xt⟩,
Copy link
Member

Choose a reason for hiding this comment

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

For your readability toolbox: do you know you can replace the above two lines by:

  obtain ⟨t, st, t_open, xt⟩ : ∃ t ⊆ s, is_open t ∧ proj x ∈ t,
    from mem_nhds_sets_iff.1 hs,

continuous_to_fun := continuous_on.prod continuous_fst.continuous_on (Z.coord_change_continuous i j),
continuous_inv_fun := begin
have := continuous_on.prod continuous_fst.continuous_on (Z.coord_change_continuous j i),
rwa inter_comm at this
Copy link
Member

Choose a reason for hiding this comment

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

by simpa [inter_comm] using continuous_on.prod continuous_fst.continuous_on (Z.coord_change_continuous j i)?

ext p,
simp only [set.mem_preimage, and_true, set.mem_inter_eq, set.mem_univ,
topological_fiber_bundle_core.local_triv'_fst, iff_self, set.mem_prod, and_self,
topological_fiber_bundle_core.mem_local_triv'_source]
Copy link
Member

Choose a reason for hiding this comment

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

This is finishing, you could leave simp.

Copy link
Member

Choose a reason for hiding this comment

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

But that might make it substantially slower...?

Copy link
Member

@robertylewis robertylewis left a comment

Choose a reason for hiding this comment

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

I'm approving this now (at @PatrickMassot 's suggestion) so it gets merged in time for the paper release. The remaining comments are just cosmetic. Feel free to return to them any time.

@robertylewis robertylewis added ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) and removed awaiting-review The author would like community review of the PR labels Oct 21, 2019
@mergify mergify bot merged commit a4bbbde into leanprover-community:master Oct 21, 2019
@sgouezel sgouezel deleted the fiber_bundle branch December 2, 2019 10:38
anrddh pushed a commit to anrddh/mathlib that referenced this pull request May 15, 2020
…eanprover-community#1421)

* feat(topology/topological_fiber_bundle): topological fiber bundles

* better definition of fiber bundles
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants