Library UniMath.Bicategories.DisplayedBicats.DispPseudoNaturalAdjequiv
Require Import UniMath.MoreFoundations.All.
Require Import UniMath.CategoryTheory.Core.Prelude.
Require Import UniMath.CategoryTheory.DisplayedCats.Core.
Require Import UniMath.Bicategories.Core.Bicat.
Import Bicat.Notations.
Require Import UniMath.Bicategories.DisplayedBicats.DispBicat.
Import DispBicat.Notations.
Require Import UniMath.Bicategories.Core.Univalence.
Require Import UniMath.Bicategories.Core.Unitors.
Require Import UniMath.Bicategories.Core.BicategoryLaws.
Require Import UniMath.Bicategories.Core.Invertible_2cells.
Require Import UniMath.Bicategories.Core.AdjointUnique.
Require Import UniMath.Bicategories.Core.EquivToAdjequiv.
Require Import UniMath.Bicategories.DisplayedBicats.DispInvertibles.
Require Import UniMath.Bicategories.DisplayedBicats.DispUnivalence.
Require Import UniMath.Bicategories.DisplayedBicats.DispBuilders.
Require Import UniMath.Bicategories.PseudoFunctors.Display.PseudoFunctorBicat.
Require Import UniMath.Bicategories.PseudoFunctors.PseudoFunctor.
Require Import UniMath.Bicategories.PseudoFunctors.Examples.Identity.
Require Import UniMath.Bicategories.PseudoFunctors.Examples.Composition.
Require Import UniMath.Bicategories.PseudoFunctors.Biequivalence.
Require Import UniMath.Bicategories.Transformations.PseudoTransformation.
Require Import UniMath.Bicategories.Modifications.Modification.
Require Import UniMath.Bicategories.DisplayedBicats.DispPseudofunctor.
Require Import UniMath.Bicategories.DisplayedBicats.DispTransformation.
Require Import UniMath.Bicategories.DisplayedBicats.DispModification.
Require Import UniMath.Bicategories.DisplayedBicats.DispBiequivalence.
Local Open Scope cat.
Require Import UniMath.CategoryTheory.Core.Prelude.
Require Import UniMath.CategoryTheory.DisplayedCats.Core.
Require Import UniMath.Bicategories.Core.Bicat.
Import Bicat.Notations.
Require Import UniMath.Bicategories.DisplayedBicats.DispBicat.
Import DispBicat.Notations.
Require Import UniMath.Bicategories.Core.Univalence.
Require Import UniMath.Bicategories.Core.Unitors.
Require Import UniMath.Bicategories.Core.BicategoryLaws.
Require Import UniMath.Bicategories.Core.Invertible_2cells.
Require Import UniMath.Bicategories.Core.AdjointUnique.
Require Import UniMath.Bicategories.Core.EquivToAdjequiv.
Require Import UniMath.Bicategories.DisplayedBicats.DispInvertibles.
Require Import UniMath.Bicategories.DisplayedBicats.DispUnivalence.
Require Import UniMath.Bicategories.DisplayedBicats.DispBuilders.
Require Import UniMath.Bicategories.PseudoFunctors.Display.PseudoFunctorBicat.
Require Import UniMath.Bicategories.PseudoFunctors.PseudoFunctor.
Require Import UniMath.Bicategories.PseudoFunctors.Examples.Identity.
Require Import UniMath.Bicategories.PseudoFunctors.Examples.Composition.
Require Import UniMath.Bicategories.PseudoFunctors.Biequivalence.
Require Import UniMath.Bicategories.Transformations.PseudoTransformation.
Require Import UniMath.Bicategories.Modifications.Modification.
Require Import UniMath.Bicategories.DisplayedBicats.DispPseudofunctor.
Require Import UniMath.Bicategories.DisplayedBicats.DispTransformation.
Require Import UniMath.Bicategories.DisplayedBicats.DispModification.
Require Import UniMath.Bicategories.DisplayedBicats.DispBiequivalence.
Local Open Scope cat.
Section DispPseudoNaturalAdjointEquivalenceId.
Context {B₁ B₂ : bicat}
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F : psfunctor B₁ B₂}
{FF₁ : disp_psfunctor D₁ D₂ F}
{FF₂ : disp_psfunctor D₁ D₂ F}
(ττ : disp_pstrans FF₁ FF₂ (identity _))
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(internal_adjoint_equivalence_identity _)
(ττ x xx)).
Lemma inv_disp_left_adjoint_equivalence_lem
{x y : B₁}
(f : x --> y)
: rinvunitor _
• (_ ◃ linvunitor _)
• rassociator _ _ _
• (_ ◃ lassociator _ _ _)
• (_ ◃ ((runitor _ • linvunitor _) ▹ _))
• lassociator _ _ _
• ((lassociator _ _ _
• (lunitor _ ▹ _)
• lunitor _) ▹ _)
=
lunitor _
• rinvunitor (#F f).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_id
: disp_pstrans FF₂ FF₁ (identity _).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_id_pointwise_adjequiv
{x : B₁}
(xx : D₁ x)
: disp_left_adjoint_equivalence
(internal_adjoint_equivalence_identity _)
(pointwise_disp_adjequiv_to_adjequiv_id x xx).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_id_left
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
ττ
pointwise_disp_adjequiv_to_adjequiv_id)
(disp_id_pstrans _)
(lunitor_invertible_2cell _).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_id_right
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
pointwise_disp_adjequiv_to_adjequiv_id
ττ)
(disp_id_pstrans _)
(lunitor_invertible_2cell _).
Show proof.
Context {B₁ B₂ : bicat}
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F : psfunctor B₁ B₂}
{FF₁ : disp_psfunctor D₁ D₂ F}
{FF₂ : disp_psfunctor D₁ D₂ F}
(ττ : disp_pstrans FF₁ FF₂ (identity _))
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(internal_adjoint_equivalence_identity _)
(ττ x xx)).
Lemma inv_disp_left_adjoint_equivalence_lem
{x y : B₁}
(f : x --> y)
: rinvunitor _
• (_ ◃ linvunitor _)
• rassociator _ _ _
• (_ ◃ lassociator _ _ _)
• (_ ◃ ((runitor _ • linvunitor _) ▹ _))
• lassociator _ _ _
• ((lassociator _ _ _
• (lunitor _ ▹ _)
• lunitor _) ▹ _)
=
lunitor _
• rinvunitor (#F f).
Show proof.
etrans.
{
do 4 apply maponpaths_2.
rewrite !vassocl.
rewrite <- lwhisker_lwhisker_rassociator.
rewrite !vassocr.
rewrite <- rinvunitor_triangle.
rewrite !vassocl.
apply maponpaths.
rewrite vassocr.
rewrite lassociator_rassociator.
apply id2_left.
}
rewrite !vassocl.
rewrite <- vcomp_lunitor.
apply maponpaths.
rewrite <- lunitor_triangle.
rewrite <- !rwhisker_vcomp.
rewrite !vassocr.
apply maponpaths_2.
rewrite !lwhisker_vcomp.
etrans.
{
apply maponpaths_2.
rewrite !vassocl.
rewrite pentagon_6.
apply idpath.
}
rewrite !vassocl.
rewrite rwhisker_rwhisker.
rewrite !vassocr.
refine (_ @ id2_left _).
apply maponpaths_2.
rewrite lwhisker_vcomp.
rewrite !vassocl.
rewrite lunitor_triangle.
rewrite vcomp_lunitor.
etrans.
{
apply maponpaths.
rewrite !vassocr.
rewrite lunitor_V_id_is_left_unit_V_id.
rewrite rinvunitor_triangle.
rewrite !vassocl.
apply idpath.
}
rewrite !vassocr.
use vcomp_move_R_Mp ; [ is_iso | ].
cbn.
rewrite id2_left.
rewrite <- lunitor_triangle.
refine (_ @ id2_right _).
rewrite !vassocl.
apply maponpaths.
rewrite !rwhisker_vcomp.
rewrite !vassocr.
rewrite rwhisker_hcomp.
rewrite rinvunitor_natural.
rewrite <- !rwhisker_hcomp.
rewrite !vassocl.
rewrite rwhisker_vcomp.
rewrite !vassocr.
rewrite vcomp_runitor.
rewrite !vassocl.
rewrite lunitor_linvunitor.
rewrite id2_right.
rewrite rwhisker_hcomp.
rewrite <- rinvunitor_natural.
apply runitor_rinvunitor.
{
do 4 apply maponpaths_2.
rewrite !vassocl.
rewrite <- lwhisker_lwhisker_rassociator.
rewrite !vassocr.
rewrite <- rinvunitor_triangle.
rewrite !vassocl.
apply maponpaths.
rewrite vassocr.
rewrite lassociator_rassociator.
apply id2_left.
}
rewrite !vassocl.
rewrite <- vcomp_lunitor.
apply maponpaths.
rewrite <- lunitor_triangle.
rewrite <- !rwhisker_vcomp.
rewrite !vassocr.
apply maponpaths_2.
rewrite !lwhisker_vcomp.
etrans.
{
apply maponpaths_2.
rewrite !vassocl.
rewrite pentagon_6.
apply idpath.
}
rewrite !vassocl.
rewrite rwhisker_rwhisker.
rewrite !vassocr.
refine (_ @ id2_left _).
apply maponpaths_2.
rewrite lwhisker_vcomp.
rewrite !vassocl.
rewrite lunitor_triangle.
rewrite vcomp_lunitor.
etrans.
{
apply maponpaths.
rewrite !vassocr.
rewrite lunitor_V_id_is_left_unit_V_id.
rewrite rinvunitor_triangle.
rewrite !vassocl.
apply idpath.
}
rewrite !vassocr.
use vcomp_move_R_Mp ; [ is_iso | ].
cbn.
rewrite id2_left.
rewrite <- lunitor_triangle.
refine (_ @ id2_right _).
rewrite !vassocl.
apply maponpaths.
rewrite !rwhisker_vcomp.
rewrite !vassocr.
rewrite rwhisker_hcomp.
rewrite rinvunitor_natural.
rewrite <- !rwhisker_hcomp.
rewrite !vassocl.
rewrite rwhisker_vcomp.
rewrite !vassocr.
rewrite vcomp_runitor.
rewrite !vassocl.
rewrite lunitor_linvunitor.
rewrite id2_right.
rewrite rwhisker_hcomp.
rewrite <- rinvunitor_natural.
apply runitor_rinvunitor.
Definition pointwise_disp_adjequiv_to_adjequiv_id
: disp_pstrans FF₂ FF₁ (identity _).
Show proof.
use make_disp_pstrans.
- exact Dprop₂.
- exact Dgrpd₂.
- intros x xx.
apply (Hττ x xx).
- abstract
(intros x y f xx yy ff ;
exact (transportf
(λ z, _ ==>[ z ] _)
(inv_disp_left_adjoint_equivalence_lem f)
(disp_rinvunitor _
•• (_ ◃◃ pr121 (Hττ y yy))
•• disp_rassociator _ _ _
•• (_ ◃◃ disp_lassociator _ _ _)
•• (_ ◃◃ (disp_inv_cell (disp_psnaturality_of _ _ _ ττ ff) ▹▹ _))
•• disp_lassociator _ _ _
•• ((disp_lassociator _ _ _
•• (pr221 (Hττ x xx) ▹▹ _)
•• disp_lunitor _) ▹▹ _)))).
- exact Dprop₂.
- exact Dgrpd₂.
- intros x xx.
apply (Hττ x xx).
- abstract
(intros x y f xx yy ff ;
exact (transportf
(λ z, _ ==>[ z ] _)
(inv_disp_left_adjoint_equivalence_lem f)
(disp_rinvunitor _
•• (_ ◃◃ pr121 (Hττ y yy))
•• disp_rassociator _ _ _
•• (_ ◃◃ disp_lassociator _ _ _)
•• (_ ◃◃ (disp_inv_cell (disp_psnaturality_of _ _ _ ττ ff) ▹▹ _))
•• disp_lassociator _ _ _
•• ((disp_lassociator _ _ _
•• (pr221 (Hττ x xx) ▹▹ _)
•• disp_lunitor _) ▹▹ _)))).
Definition pointwise_disp_adjequiv_to_adjequiv_id_pointwise_adjequiv
{x : B₁}
(xx : D₁ x)
: disp_left_adjoint_equivalence
(internal_adjoint_equivalence_identity _)
(pointwise_disp_adjequiv_to_adjequiv_id x xx).
Show proof.
simple refine (_ ,, _).
- simple refine (_ ,, _ ,, _).
+ exact (ττ x xx).
+ apply Hττ.
+ apply Hττ.
- split.
+ split ; apply Dprop₂.
+ split ; apply Dgrpd₂.
- simple refine (_ ,, _ ,, _).
+ exact (ττ x xx).
+ apply Hττ.
+ apply Hττ.
- split.
+ split ; apply Dprop₂.
+ split ; apply Dgrpd₂.
Definition pointwise_disp_adjequiv_to_adjequiv_id_left
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
ττ
pointwise_disp_adjequiv_to_adjequiv_id)
(disp_id_pstrans _)
(lunitor_invertible_2cell _).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_id_right
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
pointwise_disp_adjequiv_to_adjequiv_id
ττ)
(disp_id_pstrans _)
(lunitor_invertible_2cell _).
Show proof.
use make_disp_invmodification.
- exact Dprop₂.
- exact Dgrpd₂.
- intros x xx ; cbn.
exact (pr221 (Hττ x xx)).
End DispPseudoNaturalAdjointEquivalenceId.- exact Dprop₂.
- exact Dgrpd₂.
- intros x xx ; cbn.
exact (pr221 (Hττ x xx)).
Lemma pointwise_disp_adjequiv_to_adjequiv_help_eq
{B₁ B₂ : bicat}
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
{F : psfunctor B₁ B₂}
{FF₁ FF₂ : disp_psfunctor D₁ D₂ F}
{ττ : disp_pstrans FF₁ FF₂ (identity F)}
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv
(pr1 (internal_adjoint_equivalence_identity F))
(pr2 (internal_adjoint_equivalence_identity F)) x)
(ττ x xx))
(x : B₁)
(xx : D₁ x)
: disp_left_adjoint_equivalence
(internal_adjoint_equivalence_identity (F x))
(ττ x xx).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_help
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : adjoint_equivalence F G}
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG (pr1 τ))
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv (pr1 τ) (pr2 τ) x)
(ττ x xx))
: disp_pstrans GG FF (left_adjoint_right_adjoint τ).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_help_pointwise_adjequiv
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : adjoint_equivalence F G}
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG (pr1 τ))
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv (pr1 τ) (pr2 τ) x)
(ττ x xx))
{x : B₁}
(xx : D₁ x)
: disp_left_adjoint_equivalence
(inv_left_adjoint_equivalence
(pointwise_adjequiv (pr1 τ) (pr2 τ) x))
(pointwise_disp_adjequiv_to_adjequiv_help
HB₂ Dprop₂ Dgrpd₂ ττ Hττ
x xx).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_left_help
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : adjoint_equivalence F G}
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG (pr1 τ))
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv (pr1 τ) (pr2 τ) x)
(ττ x xx))
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
ττ
(pointwise_disp_adjequiv_to_adjequiv_help HB₂ Dprop₂ Dgrpd₂ ττ Hττ))
(disp_id_pstrans _)
(inv_of_invertible_2cell (left_equivalence_unit_iso τ)).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_right_help
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : adjoint_equivalence F G}
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG (pr1 τ))
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv (pr1 τ) (pr2 τ) x)
(ττ x xx))
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
(pointwise_disp_adjequiv_to_adjequiv_help HB₂ Dprop₂ Dgrpd₂ ττ Hττ)
ττ)
(disp_id_pstrans _)
(left_equivalence_counit_iso τ).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : pstrans F G}
(Hτ : left_adjoint_equivalence τ)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG τ)
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv τ Hτ x)
(ττ x xx))
: disp_pstrans GG FF (left_adjoint_right_adjoint Hτ).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_pointwise_adjequiv
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : pstrans F G}
(Hτ : left_adjoint_equivalence τ)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG τ)
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv τ Hτ x)
(ττ x xx))
{x : B₁}
(xx : D₁ x)
: disp_left_adjoint_equivalence
(inv_left_adjoint_equivalence
(pointwise_adjequiv τ Hτ x))
(pointwise_disp_adjequiv_to_adjequiv
HB₂ Dprop₂ Dgrpd₂ Hτ ττ Hττ
x xx).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_left
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : pstrans F G}
(Hτ : left_adjoint_equivalence τ)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG τ)
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv τ Hτ x)
(ττ x xx))
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
ττ
(pointwise_disp_adjequiv_to_adjequiv HB₂ Dprop₂ Dgrpd₂ Hτ ττ Hττ))
(disp_id_pstrans _)
(inv_of_invertible_2cell (left_equivalence_unit_iso Hτ)).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_right
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : pstrans F G}
(Hτ : left_adjoint_equivalence τ)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG τ)
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv τ Hτ x)
(ττ x xx))
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
(pointwise_disp_adjequiv_to_adjequiv HB₂ Dprop₂ Dgrpd₂ Hτ ττ Hττ)
ττ)
(disp_id_pstrans _)
(left_equivalence_counit_iso Hτ).
Show proof.
{B₁ B₂ : bicat}
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
{F : psfunctor B₁ B₂}
{FF₁ FF₂ : disp_psfunctor D₁ D₂ F}
{ττ : disp_pstrans FF₁ FF₂ (identity F)}
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv
(pr1 (internal_adjoint_equivalence_identity F))
(pr2 (internal_adjoint_equivalence_identity F)) x)
(ττ x xx))
(x : B₁)
(xx : D₁ x)
: disp_left_adjoint_equivalence
(internal_adjoint_equivalence_identity (F x))
(ττ x xx).
Show proof.
specialize (Hττ x xx).
refine (transportf
(λ z, disp_left_adjoint_equivalence z (ττ x xx))
_
Hττ).
use subtypePath.
{
intro.
repeat use isapropdirprod ;
try apply cellset_property ;
apply isaprop_is_invertible_2cell.
}
apply idpath.
refine (transportf
(λ z, disp_left_adjoint_equivalence z (ττ x xx))
_
Hττ).
use subtypePath.
{
intro.
repeat use isapropdirprod ;
try apply cellset_property ;
apply isaprop_is_invertible_2cell.
}
apply idpath.
Definition pointwise_disp_adjequiv_to_adjequiv_help
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : adjoint_equivalence F G}
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG (pr1 τ))
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv (pr1 τ) (pr2 τ) x)
(ττ x xx))
: disp_pstrans GG FF (left_adjoint_right_adjoint τ).
Show proof.
revert F G τ FF GG ττ Hττ.
use J_2_0.
{
use psfunctor_bicat_is_univalent_2_0.
exact HB₂.
}
intros F FF₁ FF₂ ττ Hττ.
use pointwise_disp_adjequiv_to_adjequiv_id.
- exact Dprop₂.
- exact Dgrpd₂.
- exact ττ.
- apply pointwise_disp_adjequiv_to_adjequiv_help_eq.
exact Hττ.
use J_2_0.
{
use psfunctor_bicat_is_univalent_2_0.
exact HB₂.
}
intros F FF₁ FF₂ ττ Hττ.
use pointwise_disp_adjequiv_to_adjequiv_id.
- exact Dprop₂.
- exact Dgrpd₂.
- exact ττ.
- apply pointwise_disp_adjequiv_to_adjequiv_help_eq.
exact Hττ.
Definition pointwise_disp_adjequiv_to_adjequiv_help_pointwise_adjequiv
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : adjoint_equivalence F G}
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG (pr1 τ))
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv (pr1 τ) (pr2 τ) x)
(ττ x xx))
{x : B₁}
(xx : D₁ x)
: disp_left_adjoint_equivalence
(inv_left_adjoint_equivalence
(pointwise_adjequiv (pr1 τ) (pr2 τ) x))
(pointwise_disp_adjequiv_to_adjequiv_help
HB₂ Dprop₂ Dgrpd₂ ττ Hττ
x xx).
Show proof.
revert F G τ FF GG ττ Hττ.
use J_2_0.
{
use psfunctor_bicat_is_univalent_2_0.
exact HB₂.
}
intros F FF₁ FF₂ ττ Hττ.
unfold pointwise_disp_adjequiv_to_adjequiv_help.
rewrite J_2_0_comp.
assert (inv_left_adjoint_equivalence
(pointwise_adjequiv
(pr1 (internal_adjoint_equivalence_identity F))
(pr2 (internal_adjoint_equivalence_identity F)) x)
=
internal_adjoint_equivalence_identity _)
as ->.
{
apply (isaprop_left_adjoint_equivalence _ (pr2 HB₂)).
}
use pointwise_disp_adjequiv_to_adjequiv_id_pointwise_adjequiv.
use J_2_0.
{
use psfunctor_bicat_is_univalent_2_0.
exact HB₂.
}
intros F FF₁ FF₂ ττ Hττ.
unfold pointwise_disp_adjequiv_to_adjequiv_help.
rewrite J_2_0_comp.
assert (inv_left_adjoint_equivalence
(pointwise_adjequiv
(pr1 (internal_adjoint_equivalence_identity F))
(pr2 (internal_adjoint_equivalence_identity F)) x)
=
internal_adjoint_equivalence_identity _)
as ->.
{
apply (isaprop_left_adjoint_equivalence _ (pr2 HB₂)).
}
use pointwise_disp_adjequiv_to_adjequiv_id_pointwise_adjequiv.
Definition pointwise_disp_adjequiv_to_adjequiv_left_help
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : adjoint_equivalence F G}
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG (pr1 τ))
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv (pr1 τ) (pr2 τ) x)
(ττ x xx))
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
ττ
(pointwise_disp_adjequiv_to_adjequiv_help HB₂ Dprop₂ Dgrpd₂ ττ Hττ))
(disp_id_pstrans _)
(inv_of_invertible_2cell (left_equivalence_unit_iso τ)).
Show proof.
revert F G τ FF GG ττ Hττ.
use J_2_0.
{
use psfunctor_bicat_is_univalent_2_0.
exact HB₂.
}
intros F FF₁ FF₂ ττ Hττ.
use make_disp_invmodification.
- exact Dprop₂.
- exact Dgrpd₂.
- intros x xx.
unfold pointwise_disp_adjequiv_to_adjequiv_help.
rewrite J_2_0_comp.
simpl ; cbn.
pose (pr1 (pr1 (pointwise_disp_adjequiv_to_adjequiv_id_left
Dprop₂ Dgrpd₂ ττ
(pointwise_disp_adjequiv_to_adjequiv_help_eq Hττ))
x xx)).
simpl in d ; cbn in d.
exact d.
use J_2_0.
{
use psfunctor_bicat_is_univalent_2_0.
exact HB₂.
}
intros F FF₁ FF₂ ττ Hττ.
use make_disp_invmodification.
- exact Dprop₂.
- exact Dgrpd₂.
- intros x xx.
unfold pointwise_disp_adjequiv_to_adjequiv_help.
rewrite J_2_0_comp.
simpl ; cbn.
pose (pr1 (pr1 (pointwise_disp_adjequiv_to_adjequiv_id_left
Dprop₂ Dgrpd₂ ττ
(pointwise_disp_adjequiv_to_adjequiv_help_eq Hττ))
x xx)).
simpl in d ; cbn in d.
exact d.
Definition pointwise_disp_adjequiv_to_adjequiv_right_help
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : adjoint_equivalence F G}
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG (pr1 τ))
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv (pr1 τ) (pr2 τ) x)
(ττ x xx))
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
(pointwise_disp_adjequiv_to_adjequiv_help HB₂ Dprop₂ Dgrpd₂ ττ Hττ)
ττ)
(disp_id_pstrans _)
(left_equivalence_counit_iso τ).
Show proof.
revert F G τ FF GG ττ Hττ.
use J_2_0.
{
use psfunctor_bicat_is_univalent_2_0.
exact HB₂.
}
intros F FF₁ FF₂ ττ Hττ.
use make_disp_invmodification.
- exact Dprop₂.
- exact Dgrpd₂.
- intros x xx.
unfold pointwise_disp_adjequiv_to_adjequiv_help.
rewrite J_2_0_comp.
exact (pr1 (pointwise_disp_adjequiv_to_adjequiv_id_right
Dprop₂ Dgrpd₂ ττ
(pointwise_disp_adjequiv_to_adjequiv_help_eq Hττ))
x xx).
use J_2_0.
{
use psfunctor_bicat_is_univalent_2_0.
exact HB₂.
}
intros F FF₁ FF₂ ττ Hττ.
use make_disp_invmodification.
- exact Dprop₂.
- exact Dgrpd₂.
- intros x xx.
unfold pointwise_disp_adjequiv_to_adjequiv_help.
rewrite J_2_0_comp.
exact (pr1 (pointwise_disp_adjequiv_to_adjequiv_id_right
Dprop₂ Dgrpd₂ ττ
(pointwise_disp_adjequiv_to_adjequiv_help_eq Hττ))
x xx).
Definition pointwise_disp_adjequiv_to_adjequiv
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : pstrans F G}
(Hτ : left_adjoint_equivalence τ)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG τ)
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv τ Hτ x)
(ττ x xx))
: disp_pstrans GG FF (left_adjoint_right_adjoint Hτ).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_pointwise_adjequiv
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : pstrans F G}
(Hτ : left_adjoint_equivalence τ)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG τ)
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv τ Hτ x)
(ττ x xx))
{x : B₁}
(xx : D₁ x)
: disp_left_adjoint_equivalence
(inv_left_adjoint_equivalence
(pointwise_adjequiv τ Hτ x))
(pointwise_disp_adjequiv_to_adjequiv
HB₂ Dprop₂ Dgrpd₂ Hτ ττ Hττ
x xx).
Show proof.
exact (pointwise_disp_adjequiv_to_adjequiv_help_pointwise_adjequiv
HB₂ Dprop₂ Dgrpd₂
(τ := τ ,, Hτ)
ττ
Hττ
xx).
HB₂ Dprop₂ Dgrpd₂
(τ := τ ,, Hτ)
ττ
Hττ
xx).
Definition pointwise_disp_adjequiv_to_adjequiv_left
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : pstrans F G}
(Hτ : left_adjoint_equivalence τ)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG τ)
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv τ Hτ x)
(ττ x xx))
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
ττ
(pointwise_disp_adjequiv_to_adjequiv HB₂ Dprop₂ Dgrpd₂ Hτ ττ Hττ))
(disp_id_pstrans _)
(inv_of_invertible_2cell (left_equivalence_unit_iso Hτ)).
Show proof.
Definition pointwise_disp_adjequiv_to_adjequiv_right
{B₁ B₂ : bicat}
(HB₂ : is_univalent_2 B₂)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{F G : psfunctor B₁ B₂}
{τ : pstrans F G}
(Hτ : left_adjoint_equivalence τ)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₁ D₂ G}
(ττ : disp_pstrans FF GG τ)
(Hττ : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv τ Hτ x)
(ττ x xx))
: disp_invmodification
_ _ _ _
(disp_comp_pstrans
(pointwise_disp_adjequiv_to_adjequiv HB₂ Dprop₂ Dgrpd₂ Hτ ττ Hττ)
ττ)
(disp_id_pstrans _)
(left_equivalence_counit_iso Hτ).
Show proof.
Section DispBiequivBuilder.
Context {B₁ B₂ : bicat}
(HB₁ : is_univalent_2 B₁)
(HB₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit F G}
(a : is_biequivalence_adjoints e)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₁ : disp_2cells_isaprop D₁)
(Dgrpd₁ : disp_locally_groupoid D₁)
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₂ D₁ G}
(ηη : disp_pstrans
(disp_pseudo_comp F G D₁ D₂ D₁ FF GG)
(disp_pseudo_id D₁)
(unit_of_is_biequivalence e))
(εε : disp_pstrans
(disp_pseudo_comp G F D₂ D₁ D₂ GG FF)
(disp_pseudo_id D₂)
(counit_of_is_biequivalence e))
(Hηη : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv
(unit_of_is_biequivalence e)
(is_biequivalence_adjoint_unit a)
x)
(ηη x xx))
(Hεε : ∏ (x : B₂)
(xx : D₂ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv
(counit_of_is_biequivalence e)
(is_biequivalence_adjoint_counit a)
x)
(εε x xx)).
Definition make_disp_biequiv_unit_counit_pointwise_adjequiv
: is_disp_biequivalence_unit_counit D₁ D₂ e FF GG.
Show proof.
Definition make_disp_biequiv_pointwise_adjequiv
: disp_is_biequivalence_data
D₁ D₂
a
make_disp_biequiv_unit_counit_pointwise_adjequiv.
Show proof.
Section DispBiequivBuilder.
Context {B₁ B₂ : bicat}
(HB₁ : is_univalent_2 B₁)
(HB₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit F G}
(a : is_biequivalence_adjoints e)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₁ : disp_2cells_isaprop D₁)
(Dgrpd₁ : disp_locally_groupoid D₁)
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₂ D₁ G}
(ηη : disp_pstrans
(disp_pseudo_comp F G D₁ D₂ D₁ FF GG)
(disp_pseudo_id D₁)
(unit_of_is_biequivalence e))
(εε : disp_pstrans
(disp_pseudo_id D₂)
(disp_pseudo_comp G F D₂ D₁ D₂ GG FF)
(invcounit_of_is_biequivalence a))
(Hηη : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv
(unit_of_is_biequivalence e)
(is_biequivalence_adjoint_unit a)
x)
(ηη x xx))
(Hεε : ∏ (x : B₂)
(xx : D₂ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv
(invcounit_of_is_biequivalence a)
(inv_left_adjoint_equivalence
(is_biequivalence_adjoint_counit a))
x)
(εε x xx)).
Let εε' : disp_pstrans
(disp_pseudo_comp G F D₂ D₁ D₂ GG FF)
(disp_pseudo_id D₂)
(counit_of_is_biequivalence e)
:= pointwise_disp_adjequiv_to_adjequiv HB₂ Dprop₂ Dgrpd₂ _ εε Hεε.
Definition make_disp_biequiv_unit_counit_pointwise_adjequiv_alt
: is_disp_biequivalence_unit_counit D₁ D₂ e FF GG.
Show proof.
Definition make_disp_biequiv_pointwise_adjequiv_alt
: disp_is_biequivalence_data
D₁ D₂
a
make_disp_biequiv_unit_counit_pointwise_adjequiv_alt.
Show proof.
Context {B₁ B₂ : bicat}
(HB₁ : is_univalent_2 B₁)
(HB₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit F G}
(a : is_biequivalence_adjoints e)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₁ : disp_2cells_isaprop D₁)
(Dgrpd₁ : disp_locally_groupoid D₁)
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₂ D₁ G}
(ηη : disp_pstrans
(disp_pseudo_comp F G D₁ D₂ D₁ FF GG)
(disp_pseudo_id D₁)
(unit_of_is_biequivalence e))
(εε : disp_pstrans
(disp_pseudo_comp G F D₂ D₁ D₂ GG FF)
(disp_pseudo_id D₂)
(counit_of_is_biequivalence e))
(Hηη : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv
(unit_of_is_biequivalence e)
(is_biequivalence_adjoint_unit a)
x)
(ηη x xx))
(Hεε : ∏ (x : B₂)
(xx : D₂ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv
(counit_of_is_biequivalence e)
(is_biequivalence_adjoint_counit a)
x)
(εε x xx)).
Definition make_disp_biequiv_unit_counit_pointwise_adjequiv
: is_disp_biequivalence_unit_counit D₁ D₂ e FF GG.
Show proof.
Definition make_disp_biequiv_pointwise_adjequiv
: disp_is_biequivalence_data
D₁ D₂
a
make_disp_biequiv_unit_counit_pointwise_adjequiv.
Show proof.
simple refine (_ ,, _ ,, (_ ,, _) ,, _ ,, _).
- use pointwise_disp_adjequiv_to_adjequiv.
+ exact HB₁.
+ exact Dprop₁.
+ exact Dgrpd₁.
+ exact ηη.
+ exact Hηη.
- use pointwise_disp_adjequiv_to_adjequiv.
+ exact HB₂.
+ exact Dprop₂.
+ exact Dgrpd₂.
+ exact εε.
+ exact Hεε.
- use pointwise_disp_adjequiv_to_adjequiv_right.
- use pointwise_disp_adjequiv_to_adjequiv_left.
- use pointwise_disp_adjequiv_to_adjequiv_right.
- use pointwise_disp_adjequiv_to_adjequiv_left.
End DispBiequivBuilder.- use pointwise_disp_adjequiv_to_adjequiv.
+ exact HB₁.
+ exact Dprop₁.
+ exact Dgrpd₁.
+ exact ηη.
+ exact Hηη.
- use pointwise_disp_adjequiv_to_adjequiv.
+ exact HB₂.
+ exact Dprop₂.
+ exact Dgrpd₂.
+ exact εε.
+ exact Hεε.
- use pointwise_disp_adjequiv_to_adjequiv_right.
- use pointwise_disp_adjequiv_to_adjequiv_left.
- use pointwise_disp_adjequiv_to_adjequiv_right.
- use pointwise_disp_adjequiv_to_adjequiv_left.
Section DispBiequivBuilder.
Context {B₁ B₂ : bicat}
(HB₁ : is_univalent_2 B₁)
(HB₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit F G}
(a : is_biequivalence_adjoints e)
{D₁ : disp_bicat B₁}
{D₂ : disp_bicat B₂}
(Dprop₁ : disp_2cells_isaprop D₁)
(Dgrpd₁ : disp_locally_groupoid D₁)
(Dprop₂ : disp_2cells_isaprop D₂)
(Dgrpd₂ : disp_locally_groupoid D₂)
{FF : disp_psfunctor D₁ D₂ F}
{GG : disp_psfunctor D₂ D₁ G}
(ηη : disp_pstrans
(disp_pseudo_comp F G D₁ D₂ D₁ FF GG)
(disp_pseudo_id D₁)
(unit_of_is_biequivalence e))
(εε : disp_pstrans
(disp_pseudo_id D₂)
(disp_pseudo_comp G F D₂ D₁ D₂ GG FF)
(invcounit_of_is_biequivalence a))
(Hηη : ∏ (x : B₁)
(xx : D₁ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv
(unit_of_is_biequivalence e)
(is_biequivalence_adjoint_unit a)
x)
(ηη x xx))
(Hεε : ∏ (x : B₂)
(xx : D₂ x),
disp_left_adjoint_equivalence
(pointwise_adjequiv
(invcounit_of_is_biequivalence a)
(inv_left_adjoint_equivalence
(is_biequivalence_adjoint_counit a))
x)
(εε x xx)).
Let εε' : disp_pstrans
(disp_pseudo_comp G F D₂ D₁ D₂ GG FF)
(disp_pseudo_id D₂)
(counit_of_is_biequivalence e)
:= pointwise_disp_adjequiv_to_adjequiv HB₂ Dprop₂ Dgrpd₂ _ εε Hεε.
Definition make_disp_biequiv_unit_counit_pointwise_adjequiv_alt
: is_disp_biequivalence_unit_counit D₁ D₂ e FF GG.
Show proof.
Definition make_disp_biequiv_pointwise_adjequiv_alt
: disp_is_biequivalence_data
D₁ D₂
a
make_disp_biequiv_unit_counit_pointwise_adjequiv_alt.
Show proof.
simple refine (_ ,, _ ,, (_ ,, _) ,, _ ,, _).
- use pointwise_disp_adjequiv_to_adjequiv.
+ exact HB₁.
+ exact Dprop₁.
+ exact Dgrpd₁.
+ exact ηη.
+ exact Hηη.
- use pointwise_disp_adjequiv_to_adjequiv.
+ exact HB₂.
+ exact Dprop₂.
+ exact Dgrpd₂.
+ exact εε'.
+ abstract
(intros x xx ;
refine (transportf
(λ z, disp_left_adjoint_equivalence z _)
_
(pointwise_disp_adjequiv_to_adjequiv_pointwise_adjequiv
HB₂ Dprop₂ Dgrpd₂ _ εε Hεε
xx)) ;
apply (isaprop_left_adjoint_equivalence _ (pr2 HB₂))).
- use pointwise_disp_adjequiv_to_adjequiv_right.
- use pointwise_disp_adjequiv_to_adjequiv_left.
- use pointwise_disp_adjequiv_to_adjequiv_right.
- use (pointwise_disp_adjequiv_to_adjequiv_left HB₂ Dprop₂ Dgrpd₂ _ εε' _).
End DispBiequivBuilder.- use pointwise_disp_adjequiv_to_adjequiv.
+ exact HB₁.
+ exact Dprop₁.
+ exact Dgrpd₁.
+ exact ηη.
+ exact Hηη.
- use pointwise_disp_adjequiv_to_adjequiv.
+ exact HB₂.
+ exact Dprop₂.
+ exact Dgrpd₂.
+ exact εε'.
+ abstract
(intros x xx ;
refine (transportf
(λ z, disp_left_adjoint_equivalence z _)
_
(pointwise_disp_adjequiv_to_adjequiv_pointwise_adjequiv
HB₂ Dprop₂ Dgrpd₂ _ εε Hεε
xx)) ;
apply (isaprop_left_adjoint_equivalence _ (pr2 HB₂))).
- use pointwise_disp_adjequiv_to_adjequiv_right.
- use pointwise_disp_adjequiv_to_adjequiv_left.
- use pointwise_disp_adjequiv_to_adjequiv_right.
- use (pointwise_disp_adjequiv_to_adjequiv_left HB₂ Dprop₂ Dgrpd₂ _ εε' _).