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

[Merged by Bors] - refactor(topology/vector_bundle/basic): deduplicate trivialization #17359

Closed
wants to merge 17 commits into from

Conversation

hrmacbeth
Copy link
Member

Currently, in mathlib, there is a structure topological_vector_bundle.trivialization which extends another structure topological_fibre_bundle.trivialization by a linearity hypothesis. We change this to a single structure trivialization (no namespace), together with a mixin class trivialization.is_linear. This is the first step in the planned vector bundle refactor: it will allow all the data of a vector bundle to be held at the level of fibre bundles, so that there can be a non-"dangerous instance" charted_space instance associated to a vector bundle.

The analogous change is made for pretrivialization.

The most awkward aspect of this refactor is that one would want the linearity of trivializations associated to a vector bundle to be "automatic", which effectively means that one wants a trivialization.is_linear instance to be found by typeclass inference for trivializations in the trivialization_atlas of a vector bundle. For this to work, the property of belonging to the trivialization atlas also needs to be made into a Prop typeclass. We call this typeclass mem_trivialization_atlas.

Co-authored-by: Floris van Doorn fpvdoorn@gmail.com


Open in Gitpod

@hrmacbeth hrmacbeth added awaiting-review The author would like community review of the PR t-differential-geometry Manifolds, etc. labels Nov 4, 2022
src/topology/vector_bundle/basic.lean Show resolved Hide resolved
src/topology/vector_bundle/basic.lean Show resolved Hide resolved
src/topology/vector_bundle/basic.lean Show resolved Hide resolved
src/topology/vector_bundle/basic.lean Outdated Show resolved Hide resolved
src/topology/vector_bundle/basic.lean Show resolved Hide resolved
src/topology/vector_bundle/basic.lean Show resolved Hide resolved
@sgouezel sgouezel added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels Nov 7, 2022
@sgouezel
Copy link
Collaborator

sgouezel commented Nov 8, 2022

bors d+
Thanks!

@bors
Copy link

bors bot commented Nov 8, 2022

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

@github-actions github-actions bot added the delegated The PR author may merge after reviewing final suggestions. label Nov 8, 2022
@hrmacbeth
Copy link
Member Author

bors r+

@github-actions github-actions bot 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-author A reviewer has asked the author a question or requested changes labels Nov 8, 2022
bors bot pushed a commit that referenced this pull request Nov 8, 2022
…17359)

Currently, in mathlib, there is a structure `topological_vector_bundle.trivialization` which extends another structure `topological_fibre_bundle.trivialization` by a linearity hypothesis.  We change this to a single structure `trivialization` (no namespace), together with a mixin class `trivialization.is_linear`.  This is the first step in the planned [vector bundle refactor](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Smooth.20vector.20bundles): it will allow all the data of a vector bundle to be held at the level of fibre bundles, so that there can be a non-"dangerous instance" `charted_space` instance associated to a vector bundle.

The analogous change is made for `pretrivialization`.

The most awkward aspect of this refactor is that one would want the linearity of trivializations associated to a vector bundle to be "automatic", which effectively means that one wants a `trivialization.is_linear` instance to be found by typeclass inference for trivializations in the `trivialization_atlas` of a vector bundle.  For this to work, the property of belonging to the trivialization atlas also needs to be made into a Prop typeclass.  We call this typeclass `mem_trivialization_atlas`.

Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>
bors bot pushed a commit that referenced this pull request Nov 9, 2022
…17359)

Currently, in mathlib, there is a structure `topological_vector_bundle.trivialization` which extends another structure `topological_fibre_bundle.trivialization` by a linearity hypothesis.  We change this to a single structure `trivialization` (no namespace), together with a mixin class `trivialization.is_linear`.  This is the first step in the planned [vector bundle refactor](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Smooth.20vector.20bundles): it will allow all the data of a vector bundle to be held at the level of fibre bundles, so that there can be a non-"dangerous instance" `charted_space` instance associated to a vector bundle.

The analogous change is made for `pretrivialization`.

The most awkward aspect of this refactor is that one would want the linearity of trivializations associated to a vector bundle to be "automatic", which effectively means that one wants a `trivialization.is_linear` instance to be found by typeclass inference for trivializations in the `trivialization_atlas` of a vector bundle.  For this to work, the property of belonging to the trivialization atlas also needs to be made into a Prop typeclass.  We call this typeclass `mem_trivialization_atlas`.

Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>
@bors
Copy link

bors bot commented Nov 9, 2022

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title refactor(topology/vector_bundle/basic): deduplicate trivialization [Merged by Bors] - refactor(topology/vector_bundle/basic): deduplicate trivialization Nov 9, 2022
@bors bors bot closed this Nov 9, 2022
@bors bors bot deleted the refactor-trivialization branch November 9, 2022 03:22
bors bot pushed a commit that referenced this pull request Nov 10, 2022
)

Split the file `topology.fiber_bundle` into two, `topology.fiber_bundle.trivialization` and `topology.fiber_bundle.basic`, the former treating (pre)trivializations and the latter treating fiber bundles and constructions for them (the core construction, the prebundle construction, etc).  Also move lemmas from `topology.vector_bundle.basic` which turned out not to invove the linear structure (cf [this discussion](#17359 (comment))) into `topology.fiber_bundle.trivialization`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated The PR author may merge after reviewing final suggestions. ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) t-differential-geometry Manifolds, etc.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants