Library UniMath.Bicategories.DisplayedBicats.ReindexBiequivalence
Require Import UniMath.Foundations.All.
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.Core.Univalence.
Require Import UniMath.Bicategories.Core.Invertible_2cells.
Require Import UniMath.Bicategories.Core.AdjointUnique.
Require Import UniMath.Bicategories.Core.EquivToAdjequiv.
Require Import UniMath.Bicategories.Morphisms.Adjunctions.
Require Import UniMath.Bicategories.DisplayedBicats.DispBicat.
Import DispBicat.Notations.
Require Import UniMath.Bicategories.DisplayedBicats.DispUnivalence.
Require Import UniMath.Bicategories.DisplayedBicats.CleavingOfBicat.
Require Import UniMath.Bicategories.DisplayedBicats.Examples.Reindex.
Require Import UniMath.Bicategories.DisplayedBicats.DispAdjunctions.
Require Import UniMath.Bicategories.DisplayedBicats.DispPseudoNaturalAdjequiv.
Require Import UniMath.Bicategories.DisplayedBicats.DispBiequivalence.
Require Import UniMath.Bicategories.DisplayedBicats.DispBuilders.
Require Import UniMath.Bicategories.DisplayedBicats.DispPseudofunctor.
Require Import UniMath.Bicategories.DisplayedBicats.DispTransformation.
Require Import UniMath.Bicategories.DisplayedBicats.DispModification.
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.Transformations.PseudoTransformation.
Require Import UniMath.Bicategories.PseudoFunctors.Biequivalence.
Require Import UniMath.Bicategories.PseudoFunctors.BiequivalenceCoherent.
Local Open Scope cat.
Section ReindexBiequivalence.
Context {B₁ B₂ : bicat}
(univ_2_B₁ : is_univalent_2 B₁)
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD : local_iso_cleaving D)
(Dcontr : disp_2cells_iscontr D)
(θ : ∏ (x : B₁),
invertible_2cell
(identity _)
(unit_of_is_biequivalence e (F x)
· #F (invcounit_of_is_biequivalence a x))).
Let Dprop : disp_2cells_isaprop D
:= disp_2cells_isaprop_from_disp_2cells_iscontr _ Dcontr.
Let Dgrpd : disp_locally_groupoid D
:= disp_2cells_isgroupoid_from_disp_2cells_iscontr _ Dcontr.
Let η (x : B₂) : adjoint_equivalence (F(G x)) x
:= unit_of_is_biequivalence e x
,,
pointwise_adjequiv
(unit_of_is_biequivalence e)
(is_biequivalence_adjoint_unit a) x.
Let ε (x : B₁) : adjoint_equivalence (G(F x)) x
:= counit_of_is_biequivalence e x
,,
pointwise_adjequiv
(counit_of_is_biequivalence e)
(is_biequivalence_adjoint_counit a) x.
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.Core.Univalence.
Require Import UniMath.Bicategories.Core.Invertible_2cells.
Require Import UniMath.Bicategories.Core.AdjointUnique.
Require Import UniMath.Bicategories.Core.EquivToAdjequiv.
Require Import UniMath.Bicategories.Morphisms.Adjunctions.
Require Import UniMath.Bicategories.DisplayedBicats.DispBicat.
Import DispBicat.Notations.
Require Import UniMath.Bicategories.DisplayedBicats.DispUnivalence.
Require Import UniMath.Bicategories.DisplayedBicats.CleavingOfBicat.
Require Import UniMath.Bicategories.DisplayedBicats.Examples.Reindex.
Require Import UniMath.Bicategories.DisplayedBicats.DispAdjunctions.
Require Import UniMath.Bicategories.DisplayedBicats.DispPseudoNaturalAdjequiv.
Require Import UniMath.Bicategories.DisplayedBicats.DispBiequivalence.
Require Import UniMath.Bicategories.DisplayedBicats.DispBuilders.
Require Import UniMath.Bicategories.DisplayedBicats.DispPseudofunctor.
Require Import UniMath.Bicategories.DisplayedBicats.DispTransformation.
Require Import UniMath.Bicategories.DisplayedBicats.DispModification.
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.Transformations.PseudoTransformation.
Require Import UniMath.Bicategories.PseudoFunctors.Biequivalence.
Require Import UniMath.Bicategories.PseudoFunctors.BiequivalenceCoherent.
Local Open Scope cat.
Section ReindexBiequivalence.
Context {B₁ B₂ : bicat}
(univ_2_B₁ : is_univalent_2 B₁)
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD : local_iso_cleaving D)
(Dcontr : disp_2cells_iscontr D)
(θ : ∏ (x : B₁),
invertible_2cell
(identity _)
(unit_of_is_biequivalence e (F x)
· #F (invcounit_of_is_biequivalence a x))).
Let Dprop : disp_2cells_isaprop D
:= disp_2cells_isaprop_from_disp_2cells_iscontr _ Dcontr.
Let Dgrpd : disp_locally_groupoid D
:= disp_2cells_isgroupoid_from_disp_2cells_iscontr _ Dcontr.
Let η (x : B₂) : adjoint_equivalence (F(G x)) x
:= unit_of_is_biequivalence e x
,,
pointwise_adjequiv
(unit_of_is_biequivalence e)
(is_biequivalence_adjoint_unit a) x.
Let ε (x : B₁) : adjoint_equivalence (G(F x)) x
:= counit_of_is_biequivalence e x
,,
pointwise_adjequiv
(counit_of_is_biequivalence e)
(is_biequivalence_adjoint_counit a) x.
Definition counit_unit_invertible_2cell
(x : B₁)
: invertible_2cell (#F (ε x)) (η (F x)).
Show proof.
Definition counit_unit_invertible_2cell_inv
(x : B₁)
: invertible_2cell
(#F (left_adjoint_right_adjoint (ε x)))
(left_adjoint_right_adjoint (η (F x))).
Show proof.
Definition reindex_disp_psfunctor_inv_inv2cell
{x y : B₂}
(f : x --> y)
: invertible_2cell
(#F(#G f))
(η x · f · left_adjoint_right_adjoint (η y)).
Show proof.
Let reindex_grpd : disp_locally_groupoid (reindex_disp_bicat F D HD Dprop).
Show proof.
(x : B₁)
: invertible_2cell (#F (ε x)) (η (F x)).
Show proof.
refine (comp_of_invertible_2cell
(linvunitor_invertible_2cell _)
_).
refine (comp_of_invertible_2cell
(rwhisker_of_invertible_2cell _ (θ x))
_).
refine (comp_of_invertible_2cell
(rassociator_invertible_2cell _ _ _)
_).
refine (comp_of_invertible_2cell
(lwhisker_of_invertible_2cell _ (psfunctor_comp F _ _))
_).
refine (comp_of_invertible_2cell
(lwhisker_of_invertible_2cell
_
(psfunctor_inv2cell F (left_equivalence_counit_iso (ε x))))
_).
refine (comp_of_invertible_2cell
(lwhisker_of_invertible_2cell
_
(inv_of_invertible_2cell (psfunctor_id F _)))
_).
exact (runitor_invertible_2cell _).
(linvunitor_invertible_2cell _)
_).
refine (comp_of_invertible_2cell
(rwhisker_of_invertible_2cell _ (θ x))
_).
refine (comp_of_invertible_2cell
(rassociator_invertible_2cell _ _ _)
_).
refine (comp_of_invertible_2cell
(lwhisker_of_invertible_2cell _ (psfunctor_comp F _ _))
_).
refine (comp_of_invertible_2cell
(lwhisker_of_invertible_2cell
_
(psfunctor_inv2cell F (left_equivalence_counit_iso (ε x))))
_).
refine (comp_of_invertible_2cell
(lwhisker_of_invertible_2cell
_
(inv_of_invertible_2cell (psfunctor_id F _)))
_).
exact (runitor_invertible_2cell _).
Definition counit_unit_invertible_2cell_inv
(x : B₁)
: invertible_2cell
(#F (left_adjoint_right_adjoint (ε x)))
(left_adjoint_right_adjoint (η (F x))).
Show proof.
assert (psfunctor_preserve_adj_equiv F _ _ (ε x) = η(F x))
as X.
{
use path_internal_adjoint_equivalence.
{
exact (pr2 univ_2_B₂).
}
use isotoid_2_1.
{
exact (pr2 univ_2_B₂).
}
exact (counit_unit_invertible_2cell x).
}
induction X.
apply id2_invertible_2cell.
as X.
{
use path_internal_adjoint_equivalence.
{
exact (pr2 univ_2_B₂).
}
use isotoid_2_1.
{
exact (pr2 univ_2_B₂).
}
exact (counit_unit_invertible_2cell x).
}
induction X.
apply id2_invertible_2cell.
Definition reindex_disp_psfunctor_inv_inv2cell
{x y : B₂}
(f : x --> y)
: invertible_2cell
(#F(#G f))
(η x · f · left_adjoint_right_adjoint (η y)).
Show proof.
refine (comp_of_invertible_2cell
(rinvunitor_invertible_2cell _)
_).
refine (comp_of_invertible_2cell
_
(inv_of_invertible_2cell
(rwhisker_of_invertible_2cell
_
(psnaturality_of (unit_of_is_biequivalence e) f)))).
refine (comp_of_invertible_2cell
_
(lassociator_invertible_2cell _ _ _)).
refine (lwhisker_of_invertible_2cell _ _).
exact (left_equivalence_unit_iso (η y)).
(rinvunitor_invertible_2cell _)
_).
refine (comp_of_invertible_2cell
_
(inv_of_invertible_2cell
(rwhisker_of_invertible_2cell
_
(psnaturality_of (unit_of_is_biequivalence e) f)))).
refine (comp_of_invertible_2cell
_
(lassociator_invertible_2cell _ _ _)).
refine (lwhisker_of_invertible_2cell _ _).
exact (left_equivalence_unit_iso (η y)).
Let reindex_grpd : disp_locally_groupoid (reindex_disp_bicat F D HD Dprop).
Show proof.
Definition lift_adjequiv_ob_disp_adjequiv
{x y : B₂}
(f : adjoint_equivalence x y)
(yy : D y)
: ∑ (xx : D x), disp_adjoint_equivalence f xx yy.
Show proof.
Definition lift_adjequiv_ob
{x y : B₂}
(f : adjoint_equivalence x y)
(yy : D y)
: D x
:= pr1 (lift_adjequiv_ob_disp_adjequiv f yy).
Definition lift_adjequiv_disp_adjequiv
{x y : B₂}
(f : adjoint_equivalence x y)
(yy : D y)
: disp_adjoint_equivalence f (lift_adjequiv_ob f yy) yy
:= pr2 (lift_adjequiv_ob_disp_adjequiv f yy).
{x y : B₂}
(f : adjoint_equivalence x y)
(yy : D y)
: ∑ (xx : D x), disp_adjoint_equivalence f xx yy.
Show proof.
revert x y f yy.
use J_2_0.
{
exact (pr1 univ_2_B₂).
}
intros x xx.
refine (xx ,, _).
apply disp_identity_adjoint_equivalence.
use J_2_0.
{
exact (pr1 univ_2_B₂).
}
intros x xx.
refine (xx ,, _).
apply disp_identity_adjoint_equivalence.
Definition lift_adjequiv_ob
{x y : B₂}
(f : adjoint_equivalence x y)
(yy : D y)
: D x
:= pr1 (lift_adjequiv_ob_disp_adjequiv f yy).
Definition lift_adjequiv_disp_adjequiv
{x y : B₂}
(f : adjoint_equivalence x y)
(yy : D y)
: disp_adjoint_equivalence f (lift_adjequiv_ob f yy) yy
:= pr2 (lift_adjequiv_ob_disp_adjequiv f yy).
Definition reindex_disp_psfunctor
: disp_psfunctor (reindex_disp_bicat F D HD Dprop) D F.
Show proof.
Definition reindex_disp_psfunctor_inv
: disp_psfunctor D (reindex_disp_bicat F D HD Dprop) G.
Show proof.
: disp_psfunctor (reindex_disp_bicat F D HD Dprop) D F.
Show proof.
use make_disp_psfunctor_contr.
- exact Dcontr.
- exact (λ x xx, xx).
- exact (λ x y f xx yy ff, ff).
- exact Dcontr.
- exact (λ x xx, xx).
- exact (λ x y f xx yy ff, ff).
Definition reindex_disp_psfunctor_inv
: disp_psfunctor D (reindex_disp_bicat F D HD Dprop) G.
Show proof.
use make_disp_psfunctor_contr.
- intro ; intros ; apply Dcontr.
- exact (λ (x : B₂) (xx : D x), lift_adjequiv_ob (η x) xx).
- exact (λ (x y : B₂)
(f : x --> y)
(xx : D x) (yy : D y)
(ff : xx -->[ f ] yy),
local_iso_cleaving_1cell
HD
(lift_adjequiv_disp_adjequiv (η x) xx
;; ff
;; pr112 (lift_adjequiv_disp_adjequiv (η y) yy))%mor_disp
(reindex_disp_psfunctor_inv_inv2cell _)).
- intro ; intros ; apply Dcontr.
- exact (λ (x : B₂) (xx : D x), lift_adjequiv_ob (η x) xx).
- exact (λ (x y : B₂)
(f : x --> y)
(xx : D x) (yy : D y)
(ff : xx -->[ f ] yy),
local_iso_cleaving_1cell
HD
(lift_adjequiv_disp_adjequiv (η x) xx
;; ff
;; pr112 (lift_adjequiv_disp_adjequiv (η y) yy))%mor_disp
(reindex_disp_psfunctor_inv_inv2cell _)).
Definition reindex_disp_psfunctor_unit
: disp_pstrans
(disp_pseudo_comp
G F
D (reindex_disp_bicat F D HD Dprop) D
reindex_disp_psfunctor_inv
reindex_disp_psfunctor)
(disp_pseudo_id D)
(unit_of_is_biequivalence e).
Show proof.
Proposition reindex_disp_psfunctor_unit_adjequiv
(x : B₂)
(xx : D x)
: disp_left_adjoint_equivalence
(pointwise_adjequiv
(unit_of_is_biequivalence e)
(is_biequivalence_adjoint_unit a) x)
(reindex_disp_psfunctor_unit x xx).
Show proof.
Definition reindex_disp_psfunctor_counit
: disp_pstrans
(disp_pseudo_id (reindex_disp_bicat F D HD Dprop))
(disp_pseudo_comp
F G
(reindex_disp_bicat F D HD Dprop) D (reindex_disp_bicat F D HD Dprop)
reindex_disp_psfunctor reindex_disp_psfunctor_inv)
(invcounit_of_is_biequivalence a).
Show proof.
Proposition reindex_disp_psfunctor_counit_adjequiv
(x : B₁)
(xx : D(F x))
: disp_left_adjoint_equivalence
(pointwise_adjequiv
(invcounit_of_is_biequivalence a)
(inv_left_adjoint_equivalence (is_biequivalence_adjoint_counit a)) x)
(reindex_disp_psfunctor_counit x xx).
Show proof.
: disp_pstrans
(disp_pseudo_comp
G F
D (reindex_disp_bicat F D HD Dprop) D
reindex_disp_psfunctor_inv
reindex_disp_psfunctor)
(disp_pseudo_id D)
(unit_of_is_biequivalence e).
Show proof.
use make_disp_pstrans_contr.
- intro ; intros ; apply Dcontr.
- exact (λ (x : B₂) (xx : D x), lift_adjequiv_disp_adjequiv (η x) xx).
- intro ; intros ; apply Dcontr.
- exact (λ (x : B₂) (xx : D x), lift_adjequiv_disp_adjequiv (η x) xx).
Proposition reindex_disp_psfunctor_unit_adjequiv
(x : B₂)
(xx : D x)
: disp_left_adjoint_equivalence
(pointwise_adjequiv
(unit_of_is_biequivalence e)
(is_biequivalence_adjoint_unit a) x)
(reindex_disp_psfunctor_unit x xx).
Show proof.
use make_disp_adjequiv_contr.
- apply Dcontr.
- exact (pr112 (lift_adjequiv_disp_adjequiv (η x) xx)).
- apply Dcontr.
- exact (pr112 (lift_adjequiv_disp_adjequiv (η x) xx)).
Definition reindex_disp_psfunctor_counit
: disp_pstrans
(disp_pseudo_id (reindex_disp_bicat F D HD Dprop))
(disp_pseudo_comp
F G
(reindex_disp_bicat F D HD Dprop) D (reindex_disp_bicat F D HD Dprop)
reindex_disp_psfunctor reindex_disp_psfunctor_inv)
(invcounit_of_is_biequivalence a).
Show proof.
use make_disp_pstrans_contr.
- intro ; intros ; apply Dcontr.
- refine (λ (x : B₁) (xx : D(F x)), _).
refine (local_iso_cleaving_1cell
HD
(pr112 (lift_adjequiv_disp_adjequiv (η(F x)) xx))
_).
apply counit_unit_invertible_2cell_inv.
- intro ; intros ; apply Dcontr.
- refine (λ (x : B₁) (xx : D(F x)), _).
refine (local_iso_cleaving_1cell
HD
(pr112 (lift_adjequiv_disp_adjequiv (η(F x)) xx))
_).
apply counit_unit_invertible_2cell_inv.
Proposition reindex_disp_psfunctor_counit_adjequiv
(x : B₁)
(xx : D(F x))
: disp_left_adjoint_equivalence
(pointwise_adjequiv
(invcounit_of_is_biequivalence a)
(inv_left_adjoint_equivalence (is_biequivalence_adjoint_counit a)) x)
(reindex_disp_psfunctor_counit x xx).
Show proof.
use make_disp_adjequiv_contr.
- intro ; intros ; apply Dcontr.
- exact (local_iso_cleaving_1cell
HD
(pr1 (lift_adjequiv_disp_adjequiv (η(F x)) xx))
(counit_unit_invertible_2cell x)).
- intro ; intros ; apply Dcontr.
- exact (local_iso_cleaving_1cell
HD
(pr1 (lift_adjequiv_disp_adjequiv (η(F x)) xx))
(counit_unit_invertible_2cell x)).
Definition reindex_is_disp_biequivalence_unit_counit
: is_disp_biequivalence_unit_counit
_ _
e
reindex_disp_psfunctor_inv
reindex_disp_psfunctor.
Show proof.
Definition reindex_disp_is_biequivalence
: disp_is_biequivalence_data
D (reindex_disp_bicat F D HD Dprop)
a
reindex_is_disp_biequivalence_unit_counit.
Show proof.
Arguments reindex_disp_psfunctor {B₁ B₂} F {D} HD Dcontr.
Definition reindex_disp_psfunctor_univ
{B₁ B₂ : bicat}
(univ_2_B₂ : is_univalent_2 B₂)
(F : psfunctor B₁ B₂)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
: disp_psfunctor
(reindex_disp_bicat
F D HD
(disp_2cells_isaprop_from_disp_2cells_iscontr D Dcontr))
D
F
:= reindex_disp_psfunctor F HD Dcontr.
Definition reindex_disp_psfunctor_inv_univ
{B₁ B₂ : bicat}
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
: disp_psfunctor
D
(reindex_disp_bicat
F D HD
(disp_2cells_isaprop_from_disp_2cells_iscontr D Dcontr))
G
:= reindex_disp_psfunctor_inv univ_2_B₂ a HD Dcontr.
Definition reindex_is_disp_biequivalence_unit_counit_univ
{B₁ B₂ : bicat}
(univ_2_B₁ : is_univalent_2 B₁)
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
(θ : ∏ (x : B₁),
invertible_2cell
(identity _)
(unit_of_is_biequivalence e (F x)
· #F (invcounit_of_is_biequivalence a x)))
: is_disp_biequivalence_unit_counit
_ _
e
(reindex_disp_psfunctor_inv univ_2_B₂ a HD Dcontr)
(reindex_disp_psfunctor_univ univ_2_B₂ F Dcontr).
Show proof.
Definition reindex_disp_is_biequivalence_univ
{B₁ B₂ : bicat}
(univ_2_B₁ : is_univalent_2 B₁)
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
(θ : ∏ (x : B₁),
invertible_2cell
(identity _)
(unit_of_is_biequivalence e (F x)
· #F (invcounit_of_is_biequivalence a x)))
: disp_is_biequivalence_data
D (reindex_disp_bicat F D HD _)
a
(reindex_is_disp_biequivalence_unit_counit_univ
univ_2_B₁ univ_2_B₂
a
Dcontr
θ).
Show proof.
Definition reindex_is_disp_biequivalence_unit_counit_univ_coh
{B₁ B₂ : bicat}
(univ_2_B₁ : is_univalent_2 B₁)
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
: is_disp_biequivalence_unit_counit
_ _
(coherent_is_biequivalence_adjoints univ_2_B₁ a)
(reindex_disp_psfunctor_inv univ_2_B₂ a HD Dcontr)
(reindex_disp_psfunctor_univ univ_2_B₂ F Dcontr).
Show proof.
Definition reindex_disp_is_biequivalence_univ_coh
{B₁ B₂ : bicat}
(univ_2_B₁ : is_univalent_2 B₁)
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
: disp_is_biequivalence_data
D (reindex_disp_bicat F D HD _)
(coherent_is_biequivalence_adjoints univ_2_B₁ a)
(reindex_is_disp_biequivalence_unit_counit_univ_coh
univ_2_B₁ univ_2_B₂
a
Dcontr).
Show proof.
: is_disp_biequivalence_unit_counit
_ _
e
reindex_disp_psfunctor_inv
reindex_disp_psfunctor.
Show proof.
use make_disp_biequiv_unit_counit_pointwise_adjequiv_alt.
- exact univ_2_B₁.
- exact a.
- intro ; intros ; apply Dprop.
- exact reindex_grpd.
- exact reindex_disp_psfunctor_unit.
- exact reindex_disp_psfunctor_counit.
- exact reindex_disp_psfunctor_counit_adjequiv.
- exact univ_2_B₁.
- exact a.
- intro ; intros ; apply Dprop.
- exact reindex_grpd.
- exact reindex_disp_psfunctor_unit.
- exact reindex_disp_psfunctor_counit.
- exact reindex_disp_psfunctor_counit_adjequiv.
Definition reindex_disp_is_biequivalence
: disp_is_biequivalence_data
D (reindex_disp_bicat F D HD Dprop)
a
reindex_is_disp_biequivalence_unit_counit.
Show proof.
use (make_disp_biequiv_pointwise_adjequiv_alt _ _).
- exact univ_2_B₂.
- apply Dprop.
- exact Dgrpd.
- exact reindex_disp_psfunctor_unit_adjequiv.
End ReindexBiequivalence.- exact univ_2_B₂.
- apply Dprop.
- exact Dgrpd.
- exact reindex_disp_psfunctor_unit_adjequiv.
Arguments reindex_disp_psfunctor {B₁ B₂} F {D} HD Dcontr.
Definition reindex_disp_psfunctor_univ
{B₁ B₂ : bicat}
(univ_2_B₂ : is_univalent_2 B₂)
(F : psfunctor B₁ B₂)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
: disp_psfunctor
(reindex_disp_bicat
F D HD
(disp_2cells_isaprop_from_disp_2cells_iscontr D Dcontr))
D
F
:= reindex_disp_psfunctor F HD Dcontr.
Definition reindex_disp_psfunctor_inv_univ
{B₁ B₂ : bicat}
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
: disp_psfunctor
D
(reindex_disp_bicat
F D HD
(disp_2cells_isaprop_from_disp_2cells_iscontr D Dcontr))
G
:= reindex_disp_psfunctor_inv univ_2_B₂ a HD Dcontr.
Definition reindex_is_disp_biequivalence_unit_counit_univ
{B₁ B₂ : bicat}
(univ_2_B₁ : is_univalent_2 B₁)
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
(θ : ∏ (x : B₁),
invertible_2cell
(identity _)
(unit_of_is_biequivalence e (F x)
· #F (invcounit_of_is_biequivalence a x)))
: is_disp_biequivalence_unit_counit
_ _
e
(reindex_disp_psfunctor_inv univ_2_B₂ a HD Dcontr)
(reindex_disp_psfunctor_univ univ_2_B₂ F Dcontr).
Show proof.
Definition reindex_disp_is_biequivalence_univ
{B₁ B₂ : bicat}
(univ_2_B₁ : is_univalent_2 B₁)
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
(θ : ∏ (x : B₁),
invertible_2cell
(identity _)
(unit_of_is_biequivalence e (F x)
· #F (invcounit_of_is_biequivalence a x)))
: disp_is_biequivalence_data
D (reindex_disp_bicat F D HD _)
a
(reindex_is_disp_biequivalence_unit_counit_univ
univ_2_B₁ univ_2_B₂
a
Dcontr
θ).
Show proof.
Definition reindex_is_disp_biequivalence_unit_counit_univ_coh
{B₁ B₂ : bicat}
(univ_2_B₁ : is_univalent_2 B₁)
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
: is_disp_biequivalence_unit_counit
_ _
(coherent_is_biequivalence_adjoints univ_2_B₁ a)
(reindex_disp_psfunctor_inv univ_2_B₂ a HD Dcontr)
(reindex_disp_psfunctor_univ univ_2_B₂ F Dcontr).
Show proof.
refine (reindex_is_disp_biequivalence_unit_counit
univ_2_B₁ univ_2_B₂
(coherent_is_biequivalence_adjoints univ_2_B₁ a)
HD
Dcontr
_).
apply coherent_is_biequivalence_adjoints_triangle_2_alt.
univ_2_B₁ univ_2_B₂
(coherent_is_biequivalence_adjoints univ_2_B₁ a)
HD
Dcontr
_).
apply coherent_is_biequivalence_adjoints_triangle_2_alt.
Definition reindex_disp_is_biequivalence_univ_coh
{B₁ B₂ : bicat}
(univ_2_B₁ : is_univalent_2 B₁)
(univ_2_B₂ : is_univalent_2 B₂)
{F : psfunctor B₁ B₂}
{G : psfunctor B₂ B₁}
{e : is_biequivalence_unit_counit G F}
(a : is_biequivalence_adjoints e)
{D : disp_bicat B₂}
(HD := univalent_2_1_to_local_iso_cleaving (pr2 univ_2_B₂) D)
(Dcontr : disp_2cells_iscontr D)
: disp_is_biequivalence_data
D (reindex_disp_bicat F D HD _)
(coherent_is_biequivalence_adjoints univ_2_B₁ a)
(reindex_is_disp_biequivalence_unit_counit_univ_coh
univ_2_B₁ univ_2_B₂
a
Dcontr).
Show proof.
exact (reindex_disp_is_biequivalence_univ
univ_2_B₁ univ_2_B₂
(coherent_is_biequivalence_adjoints univ_2_B₁ a)
Dcontr
_).
univ_2_B₁ univ_2_B₂
(coherent_is_biequivalence_adjoints univ_2_B₁ a)
Dcontr
_).