-
Notifications
You must be signed in to change notification settings - Fork 297
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] - feat(topology/category/Profinite): Profinite_to_Top creates limits. #7070
Conversation
Generally you should just use `limit.cone F`, unless you need the actual definition | ||
(which is in terms of `types.limit_cone`). | ||
This differs from `limit_cone` only in the definition of the topology itself, | ||
which is defined as a subspace topology as opposed to an infemum as in limit_cone. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
which is defined as a subspace topology as opposed to an infemum as in limit_cone. | |
which is defined as a subspace topology as opposed to an infimum as in `limit_cone`. |
src/topology/category/Profinite.lean
Outdated
{ X := | ||
{ to_Top := (Top.limit_cone' $ F ⋙ Profinite_to_Top).X, | ||
is_compact := begin | ||
erw ← compact_iff_compact_space, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you don't like the erw
then apply compact_iff_compact_space.mp,
suffices here.
src/topology/category/Profinite.lean
Outdated
apply is_closed_Inter, | ||
intros a, | ||
apply is_closed_Inter, | ||
intros b, | ||
apply is_closed_Inter, | ||
intros f, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps
apply is_closed_Inter, | |
intros a, | |
apply is_closed_Inter, | |
intros b, | |
apply is_closed_Inter, | |
intros f, | |
refine is_closed_Inter (λ a, is_closed_Inter (λ b, is_closed_Inter (λ f, _))), |
Since we already have that the functor |
src/topology/category/Profinite.lean
Outdated
refine is_closed.preimage (continuous.prod_mk (continuous_apply _) (continuous_apply _)) _, | ||
refine is_closed_eq _ continuous_snd, | ||
continuity, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
refine is_closed.preimage (continuous.prod_mk (continuous_apply _) (continuous_apply _)) _, | |
refine is_closed_eq _ continuous_snd, | |
continuity, | |
exact is_closed.preimage (by continuity) (is_closed_eq (by continuity) continuous_snd), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's interesting that by continuity
can't solve continuous_snd
here, even though continuous_snd
has the attribute. I don't see what's going on. continuity!
does work, however, so another possibility here is
refine is_closed.preimage _ (is_closed_eq _ _); continuity!
src/topology/category/Profinite.lean
Outdated
valid_lift := let I := limit_cone_to_Top F in I ≪≫ limits.is_limit.unique_up_to_iso | ||
(Top.limit_cone'_is_limit _) hA } } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
valid_lift := let I := limit_cone_to_Top F in I ≪≫ limits.is_limit.unique_up_to_iso | |
(Top.limit_cone'_is_limit _) hA } } | |
valid_lift := let I := limit_cone_to_Top F in | |
I ≪≫ limits.is_limit.unique_up_to_iso (Top.limit_cone'_is_limit _) hA } } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
src/topology/category/Profinite.lean
Outdated
refine is_closed.preimage (continuous.prod_mk (continuous_apply _) (continuous_apply _)) _, | ||
refine is_closed_eq _ continuous_snd, | ||
continuity, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's interesting that by continuity
can't solve continuous_snd
here, even though continuous_snd
has the attribute. I don't see what's going on. continuity!
does work, however, so another possibility here is
refine is_closed.preimage _ (is_closed_eq _ _); continuity!
Don't mind whether or not you take the suggestions, they're all just minor stylistic points. bors d+ |
✌️ adamtopaz can now approve this pull request. To approve and merge a pull request, simply reply with |
@semorrison I don't think this is ready to merge yet, since this is virtually all work essentially already in mathlib - we're basically five lines from having the result that |
Good point! I'll try to make it work with the reflectors. |
Thanks @b-mehta ! That was much easier (modulo some small universe annoyances). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, modulo minor comment.
Thanks! bors merge |
…7070) This PR adds a proof that `Profinite` has limits by showing that the forgetful functor to `Top` creates limits.
Pull request successfully merged into master. Build succeeded: |
This PR adds a proof that
Profinite
has limits by showing that the forgetful functor toTop
creates limits.