The category of bipointed types #
This defines Bipointed
, the category of bipointed types.
TODO #
Monoidal structure
@[protected, instance]
Equations
Turns a bipointing into a bipointed type.
Equations
- Bipointed.of to_prod = {X := X, to_prod := to_prod}
@[protected, instance]
Equations
- Bipointed.inhabited = {default := Bipointed.of ((), ())}
@[simp]
@[protected, instance]
Equations
@[protected, instance]
Equations
- Bipointed.large_category = {to_category_struct := {to_quiver := {hom := Bipointed.hom}, id := Bipointed.hom.id, comp := Bipointed.hom.comp}, id_comp' := Bipointed.large_category._proof_1, comp_id' := Bipointed.large_category._proof_2, assoc' := Bipointed.large_category._proof_3}
@[protected, instance]
Equations
- Bipointed.concrete_category = category_theory.concrete_category.mk {obj := Bipointed.X, map := Bipointed.hom.to_fun, map_id' := Bipointed.concrete_category._proof_1, map_comp' := Bipointed.concrete_category._proof_2}
@[simp]
Swaps the pointed elements of a bipointed type. prod.swap
as a functor.
@[simp]
theorem
Bipointed.swap_map_to_fun
(X Y : Bipointed)
(f : X ⟶ Y)
(ᾰ : ↥X) :
(Bipointed.swap.map f).to_fun ᾰ = f.to_fun ᾰ
@[simp]
@[simp]
theorem
Bipointed.swap_equiv_unit_iso_inv_app_to_fun
(X : Bipointed)
(ᾰ : ↥((Bipointed.swap ⋙ Bipointed.swap).obj X)) :
(Bipointed.swap_equiv.unit_iso.inv.app X).to_fun ᾰ = (Bipointed.swap.map (Bipointed.swap.map {to_fun := id ↥X, map_fst := _, map_snd := _}) ≫ Bipointed.swap.map {to_fun := id ↥X, map_fst := _, map_snd := _} ≫ {to_fun := id ↥X, map_fst := _, map_snd := _}).to_fun ((𝟙 (Bipointed.swap.obj (Bipointed.swap.obj X))).to_fun ᾰ)
@[simp]
@[simp]
theorem
Bipointed.swap_equiv_unit_iso_hom_app_to_fun
(X : Bipointed)
(ᾰ : ↥((𝟭 Bipointed).obj X)) :
(Bipointed.swap_equiv.unit_iso.hom.app X).to_fun ᾰ = (𝟙 (Bipointed.swap.obj (Bipointed.swap.obj X))).to_fun (({to_fun := id ↥X, map_fst := _, map_snd := _} ≫ Bipointed.swap.map {to_fun := id ↥(Bipointed.swap.obj X), map_fst := _, map_snd := _} ≫ Bipointed.swap.map (Bipointed.swap.map {to_fun := id ↥X, map_fst := _, map_snd := _})).to_fun ᾰ)
The equivalence between Bipointed
and itself induced by prod.swap
both ways.
Equations
- Bipointed.swap_equiv = category_theory.equivalence.mk Bipointed.swap Bipointed.swap (category_theory.nat_iso.of_components (λ (X : Bipointed), {hom := {to_fun := id ↥((𝟭 Bipointed).obj X), map_fst := _, map_snd := _}, inv := {to_fun := id ↥((Bipointed.swap ⋙ Bipointed.swap).obj X), map_fst := _, map_snd := _}, hom_inv_id' := _, inv_hom_id' := _}) Bipointed.swap_equiv._proof_7) (category_theory.nat_iso.of_components (λ (X : Bipointed), {hom := {to_fun := id ↥((Bipointed.swap ⋙ Bipointed.swap).obj X), map_fst := _, map_snd := _}, inv := {to_fun := id ↥((𝟭 Bipointed).obj X), map_fst := _, map_snd := _}, hom_inv_id' := _, inv_hom_id' := _}) Bipointed.swap_equiv._proof_14)
@[simp]
theorem
Bipointed.swap_equiv_counit_iso_hom_app_to_fun
(X : Bipointed)
(a : ↥((Bipointed.swap ⋙ Bipointed.swap).obj X)) :
(Bipointed.swap_equiv.counit_iso.hom.app X).to_fun a = a
@[simp]
@[simp]
@[simp]
theorem
Bipointed.swap_equiv_counit_iso_inv_app_to_fun
(X : Bipointed)
(a : ↥((𝟭 Bipointed).obj X)) :
(Bipointed.swap_equiv.counit_iso.inv.app X).to_fun a = a
Bipointed_to_Pointed_fst
is inverse to Pointed_to_Bipointed
.
Equations
- Pointed_to_Bipointed_comp_Bipointed_to_Pointed_fst = category_theory.nat_iso.of_components (λ (X : Pointed), {hom := {to_fun := id ↥((Pointed_to_Bipointed ⋙ Bipointed_to_Pointed_fst).obj X), map_point := _}, inv := {to_fun := id ↥((𝟭 Pointed).obj X), map_point := _}, hom_inv_id' := _, inv_hom_id' := _}) Pointed_to_Bipointed_comp_Bipointed_to_Pointed_fst._proof_5
@[simp]
theorem
Pointed_to_Bipointed_comp_Bipointed_to_Pointed_fst_hom_app_to_fun
(X : Pointed)
(a : ↥((Pointed_to_Bipointed ⋙ Bipointed_to_Pointed_fst).obj X)) :
Bipointed_to_Pointed_snd
is inverse to Pointed_to_Bipointed
.
Equations
- Pointed_to_Bipointed_comp_Bipointed_to_Pointed_snd = category_theory.nat_iso.of_components (λ (X : Pointed), {hom := {to_fun := id ↥((Pointed_to_Bipointed ⋙ Bipointed_to_Pointed_snd).obj X), map_point := _}, inv := {to_fun := id ↥((𝟭 Pointed).obj X), map_point := _}, hom_inv_id' := _, inv_hom_id' := _}) Pointed_to_Bipointed_comp_Bipointed_to_Pointed_snd._proof_5
@[simp]
theorem
Pointed_to_Bipointed_comp_Bipointed_to_Pointed_snd_hom_app_to_fun
(X : Pointed)
(a : ↥((Pointed_to_Bipointed ⋙ Bipointed_to_Pointed_snd).obj X)) :
The free/forgetful adjunction between Pointed_to_Bipointed_fst
and Bipointed_to_Pointed_fst
.
Equations
- Pointed_to_Bipointed_fst_Bipointed_to_Pointed_fst_adjunction = category_theory.adjunction.mk_of_hom_equiv {hom_equiv := λ (X : Pointed) (Y : Bipointed), {to_fun := λ (f : Pointed_to_Bipointed_fst.obj X ⟶ Y), {to_fun := f.to_fun ∘ some, map_point := _}, inv_fun := λ (f : X ⟶ Bipointed_to_Pointed_fst.obj Y), {to_fun := λ (o : ↥(Pointed_to_Bipointed_fst.obj X)), option.elim o Y.to_prod.snd f.to_fun, map_fst := _, map_snd := _}, left_inv := _, right_inv := _}, hom_equiv_naturality_left_symm' := Pointed_to_Bipointed_fst_Bipointed_to_Pointed_fst_adjunction._proof_6, hom_equiv_naturality_right' := Pointed_to_Bipointed_fst_Bipointed_to_Pointed_fst_adjunction._proof_7}
The free/forgetful adjunction between Pointed_to_Bipointed_snd
and Bipointed_to_Pointed_snd
.
Equations
- Pointed_to_Bipointed_snd_Bipointed_to_Pointed_snd_adjunction = category_theory.adjunction.mk_of_hom_equiv {hom_equiv := λ (X : Pointed) (Y : Bipointed), {to_fun := λ (f : Pointed_to_Bipointed_snd.obj X ⟶ Y), {to_fun := f.to_fun ∘ some, map_point := _}, inv_fun := λ (f : X ⟶ Bipointed_to_Pointed_snd.obj Y), {to_fun := λ (o : ↥(Pointed_to_Bipointed_snd.obj X)), option.elim o Y.to_prod.fst f.to_fun, map_fst := _, map_snd := _}, left_inv := _, right_inv := _}, hom_equiv_naturality_left_symm' := Pointed_to_Bipointed_snd_Bipointed_to_Pointed_snd_adjunction._proof_6, hom_equiv_naturality_right' := Pointed_to_Bipointed_snd_Bipointed_to_Pointed_snd_adjunction._proof_7}