The category of two-pointed types #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This defines Twop
, the category of two-pointed types.
References #
- [nLab, coalgebra of the real interval] (https://ncatlab.org/nlab/show/coalgebra+of+the+real+interval)
- X : Type ?
- to_two_pointing : two_pointing self.X
The category of two-pointed types.
Instances for Twop
Equations
Turns a two-pointing into a two-pointed type.
Equations
- Twop.of to_two_pointing = {X := X, to_two_pointing := to_two_pointing}
Alias of Twop.of
.
Equations
Turns a two-pointed type into a bipointed type, by forgetting that the pointed elements are distinct.
Equations
Swaps the pointed elements of a two-pointed type. two_pointing.swap
as a functor.
The equivalence between Twop
and itself induced by prod.swap
both ways.
Equations
- Twop.swap_equiv = category_theory.equivalence.mk Twop.swap Twop.swap (category_theory.nat_iso.of_components (λ (X : Twop), {hom := {to_fun := id ↥(((𝟭 Twop).obj X).to_Bipointed), map_fst := _, map_snd := _}, inv := {to_fun := id ↥(((Twop.swap ⋙ Twop.swap).obj X).to_Bipointed), map_fst := _, map_snd := _}, hom_inv_id' := _, inv_hom_id' := _}) Twop.swap_equiv._proof_7) (category_theory.nat_iso.of_components (λ (X : Twop), {hom := {to_fun := id ↥(((Twop.swap ⋙ Twop.swap).obj X).to_Bipointed), map_fst := _, map_snd := _}, inv := {to_fun := id ↥(((𝟭 Twop).obj X).to_Bipointed), map_fst := _, map_snd := _}, hom_inv_id' := _, inv_hom_id' := _}) Twop.swap_equiv._proof_14)
The functor from Pointed
to Twop
which adds a second point.
Equations
- Pointed_to_Twop_fst = {obj := λ (X : Pointed), {X := option ↥X, to_two_pointing := {to_prod := (↑(X.point), option.none ↥X), fst_ne_snd := _}}, map := λ (X Y : Pointed) (f : X ⟶ Y), {to_fun := option.map f.to_fun, map_fst := _, map_snd := _}, map_id' := Pointed_to_Twop_fst._proof_6, map_comp' := Pointed_to_Twop_fst._proof_7}
The functor from Pointed
to Twop
which adds a first point.
Equations
- Pointed_to_Twop_snd = {obj := λ (X : Pointed), {X := option ↥X, to_two_pointing := {to_prod := (option.none ↥X, ↑(X.point)), fst_ne_snd := _}}, map := λ (X Y : Pointed) (f : X ⟶ Y), {to_fun := option.map f.to_fun, map_fst := _, map_snd := _}, map_id' := Pointed_to_Twop_snd._proof_6, map_comp' := Pointed_to_Twop_snd._proof_7}
Adding a second point is left adjoint to forgetting the second point.
Equations
- Pointed_to_Twop_fst_forget_comp_Bipointed_to_Pointed_fst_adjunction = category_theory.adjunction.mk_of_hom_equiv {hom_equiv := λ (X : Pointed) (Y : Twop), {to_fun := λ (f : Pointed_to_Twop_fst.obj X ⟶ Y), {to_fun := f.to_fun ∘ option.some, map_point := _}, inv_fun := λ (f : X ⟶ (category_theory.forget₂ Twop Bipointed ⋙ Bipointed_to_Pointed_fst).obj Y), {to_fun := λ (o : ↥((Pointed_to_Twop_fst.obj X).to_Bipointed)), option.elim Y.to_two_pointing.to_prod.snd f.to_fun o, map_fst := _, map_snd := _}, left_inv := _, right_inv := _}, hom_equiv_naturality_left_symm' := Pointed_to_Twop_fst_forget_comp_Bipointed_to_Pointed_fst_adjunction._proof_6, hom_equiv_naturality_right' := Pointed_to_Twop_fst_forget_comp_Bipointed_to_Pointed_fst_adjunction._proof_7}
Adding a first point is left adjoint to forgetting the first point.
Equations
- Pointed_to_Twop_snd_forget_comp_Bipointed_to_Pointed_snd_adjunction = category_theory.adjunction.mk_of_hom_equiv {hom_equiv := λ (X : Pointed) (Y : Twop), {to_fun := λ (f : Pointed_to_Twop_snd.obj X ⟶ Y), {to_fun := f.to_fun ∘ option.some, map_point := _}, inv_fun := λ (f : X ⟶ (category_theory.forget₂ Twop Bipointed ⋙ Bipointed_to_Pointed_snd).obj Y), {to_fun := λ (o : ↥((Pointed_to_Twop_snd.obj X).to_Bipointed)), option.elim Y.to_two_pointing.to_prod.fst f.to_fun o, map_fst := _, map_snd := _}, left_inv := _, right_inv := _}, hom_equiv_naturality_left_symm' := Pointed_to_Twop_snd_forget_comp_Bipointed_to_Pointed_snd_adjunction._proof_6, hom_equiv_naturality_right' := Pointed_to_Twop_snd_forget_comp_Bipointed_to_Pointed_snd_adjunction._proof_7}