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

basics on homotopy cofibers #2171

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

Alizter
Copy link
Collaborator

@Alizter Alizter commented Dec 31, 2024

Here is a start on homotopy cofibers. I have more work waiting, but it will be some time before I can clean it up.

@jdchristensen feel free to push any changes as you see fit here. There will probably be some name/style differences with whatever you have.

This builds on

@Alizter Alizter marked this pull request as draft December 31, 2024 16:11
@jdchristensen
Copy link
Collaborator

My work is in the attached file, and isn't polished. Maybe you can merge the two together?

Cofiber.txt

Signed-off-by: Ali Caglayan <[email protected]>

<!-- ps-id: a015aefa-300b-4406-941b-3fdcd075d7cb -->
@Alizter Alizter force-pushed the ps/rr/basics_on_homotopy_cofibers branch from d862500 to 53c1a1a Compare January 3, 2025 22:07
theories/Homotopy/Cofiber.v Outdated Show resolved Hide resolved
(** *** Constructors *)

(** Any element of [Y] can be included in the cofiber. *)
Definition cofib {X Y : Type} (f : X -> Y) : Y -> cofiber f
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

We call pFibers constructor pfib so it seemed appropriate to choose this name.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Seems fine.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I guess cf_in would be an alternative, if we decide to use cf as a prefix for various things about cofibers. Either way seems fine.

:= pushr.

(** We have a distinguised point in the cofiber, where the image of [f] is contracted to. *)
Definition apex {X Y : Type} (f : X -> Y) : cofiber f
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Does cf_apex seem like a better name?

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think we should indicate that this has to do with cofibers somehow. cf_apex or cf_pt or cofiber_apex or cofiber_pt. Actually, we should probably define the cofiber as a pointed type, and then we can just use pt to refer to this point...

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The choice of base point is not obvious. When X and Y are pointed, then cf_in would take the base point of Y to cf_in (point Y) which is not definitionally cf_apex. So I was thinking of doing the unpointed version first, and choosing a different basepoint generally.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I'd be inclined to always choose the "apex" as the base point, even when X and Y are pointed, as cf_in would still be canonically pointed. Also, cf_in o f has a canonical homotopy to the constant map at the "apex", whereas if you choose f pt as the basepoint, the homotopy becomes more complicated.

But if you prefer to leave it unpointed, then we could go with a name like cf_apex.

:= pushl tt.

(** Given an element [x : X], we have the path [leg] from the [f x] to the [apex]. *)
Definition leg {X Y : Type} (f : X -> Y) (x : X) : cofib f (f x) = apex f
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

And here cf_leg?

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think we should call this cfglue, like the other paths we have as part of various colimits: cglue, gcglue, pglue, etc. (I'm not sure why for general colimits we use colimp.)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

That's probably a contraction of colimit_path. I was thinking of adding a bit on the geometric picture here. That's the reason I chose the geometric names. For intuition, thinking of a mapping cone as "join"ing a point to the image and then contracting seems reasonable.

@Alizter
Copy link
Collaborator Author

Alizter commented Jan 3, 2025

@jdchristensen Do you want me to take a stab at applying Blakers-Massey to get that connectivity result?

@jdchristensen
Copy link
Collaborator

@jdchristensen Do you want me to take a stab at applying Blakers-Massey to get that connectivity result?

Sure, that would be great!

@Alizter
Copy link
Collaborator Author

Alizter commented Jan 4, 2025

I derived the 8.10.2 HoTT Book Blakers-Massey from the one we had. I'm not yet certain this is enough for the cofiber result, but this is probably something we should cleanup and open a PR for.

@@ -100,3 +105,19 @@ Proof.
lhs nrapply (ap (cofib f) p^).
apply leg.
Defined.

(** The cofiber of a surjective map is [0]-connected. This will be generalized this later. *)
Copy link
Collaborator

Choose a reason for hiding this comment

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

The second sentence of the comment is grammatically incorrect. And maybe should just be removed anyways.

Comment on lines +544 to +547
Definition blakers_massey_po `{Univalence} (m n : trunc_index)
{X Y Z : Type} (f : X -> Y) (g : X -> Z)
`{H1 : !IsConnMap m.+1 f} `{H2 : !IsConnMap n.+1 g}
: IsConnMap (m +2+ n) (pullback_corec (pglue (f:=f) (g:=g))).
Copy link
Collaborator

Choose a reason for hiding this comment

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

I haven't looked at the proof of this carefully, but I suspect that parts of it should be separate lemmas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants