Library UniMath.CategoryTheory.DisplayedCats.Codomain.CodLeftAdjoint
Require Import UniMath.Foundations.All.
Require Import UniMath.MoreFoundations.All.
Require Import UniMath.CategoryTheory.Core.Prelude.
Require Import UniMath.CategoryTheory.Adjunctions.Core.
Require Import UniMath.CategoryTheory.Limits.Pullbacks.
Require Import UniMath.CategoryTheory.DisplayedCats.Core.
Require Import UniMath.CategoryTheory.DisplayedCats.Isos.
Require Import UniMath.CategoryTheory.DisplayedCats.Fiber.
Require Import UniMath.CategoryTheory.DisplayedCats.Fibrations.
Require Import UniMath.CategoryTheory.DisplayedCats.Codomain.
Require Import UniMath.CategoryTheory.DisplayedCats.Codomain.FiberCod.
Require Import UniMath.CategoryTheory.DisplayedCats.Fiberwise.DependentSums.
Local Open Scope cat.
Section CodomainLeftAdj.
Context {C : category}
(HC : Pullbacks C)
{x y : C}
(f : x --> y).
Require Import UniMath.MoreFoundations.All.
Require Import UniMath.CategoryTheory.Core.Prelude.
Require Import UniMath.CategoryTheory.Adjunctions.Core.
Require Import UniMath.CategoryTheory.Limits.Pullbacks.
Require Import UniMath.CategoryTheory.DisplayedCats.Core.
Require Import UniMath.CategoryTheory.DisplayedCats.Isos.
Require Import UniMath.CategoryTheory.DisplayedCats.Fiber.
Require Import UniMath.CategoryTheory.DisplayedCats.Fibrations.
Require Import UniMath.CategoryTheory.DisplayedCats.Codomain.
Require Import UniMath.CategoryTheory.DisplayedCats.Codomain.FiberCod.
Require Import UniMath.CategoryTheory.DisplayedCats.Fiberwise.DependentSums.
Local Open Scope cat.
Section CodomainLeftAdj.
Context {C : category}
(HC : Pullbacks C)
{x y : C}
(f : x --> y).
Definition comp_functor_data
: functor_data (C/x) (C/y).
Show proof.
Proposition comp_functor_laws
: is_functor comp_functor_data.
Show proof.
Definition comp_functor
: (C/x) ⟶ (C/y).
Show proof.
Proposition dom_mor_comp_functor
{g₁ g₂ : C/x}
(h : g₁ --> g₂)
: dom_mor (#comp_functor h) = dom_mor h.
Show proof.
: functor_data (C/x) (C/y).
Show proof.
use make_functor_data.
- exact (cod_fib_comp f).
- simple refine (λ g₁ g₂ h, make_cod_fib_mor _ _).
+ exact (dom_mor h).
+ abstract
(cbn ;
rewrite !assoc ;
rewrite mor_eq ;
apply idpath).
- exact (cod_fib_comp f).
- simple refine (λ g₁ g₂ h, make_cod_fib_mor _ _).
+ exact (dom_mor h).
+ abstract
(cbn ;
rewrite !assoc ;
rewrite mor_eq ;
apply idpath).
Proposition comp_functor_laws
: is_functor comp_functor_data.
Show proof.
split.
- intro g.
use eq_mor_cod_fib ; cbn.
apply idpath.
- intros g₁ g₂ g₃ h₁ h₂.
use eq_mor_cod_fib.
cbn -[fiber_category].
rewrite !comp_in_cod_fib.
apply idpath.
- intro g.
use eq_mor_cod_fib ; cbn.
apply idpath.
- intros g₁ g₂ g₃ h₁ h₂.
use eq_mor_cod_fib.
cbn -[fiber_category].
rewrite !comp_in_cod_fib.
apply idpath.
Definition comp_functor
: (C/x) ⟶ (C/y).
Show proof.
Proposition dom_mor_comp_functor
{g₁ g₂ : C/x}
(h : g₁ --> g₂)
: dom_mor (#comp_functor h) = dom_mor h.
Show proof.
Definition comp_functor_unit_data
: nat_trans_data
(functor_identity (C / x))
(comp_functor ∙ cod_pb HC f).
Show proof.
Proposition comp_functor_unit_laws
: is_nat_trans _ _ comp_functor_unit_data.
Show proof.
Definition comp_functor_unit
: functor_identity _ ⟹ comp_functor ∙ cod_pb HC f.
Show proof.
: nat_trans_data
(functor_identity (C / x))
(comp_functor ∙ cod_pb HC f).
Show proof.
simple refine (λ g, make_cod_fib_mor _ _).
- use PullbackArrow.
+ exact (identity (cod_dom g)).
+ exact (cod_mor g).
+ abstract
(cbn ;
apply id_left).
- abstract
(cbn ;
rewrite PullbackArrow_PullbackPr2 ;
apply idpath).
- use PullbackArrow.
+ exact (identity (cod_dom g)).
+ exact (cod_mor g).
+ abstract
(cbn ;
apply id_left).
- abstract
(cbn ;
rewrite PullbackArrow_PullbackPr2 ;
apply idpath).
Proposition comp_functor_unit_laws
: is_nat_trans _ _ comp_functor_unit_data.
Show proof.
intros g₁ g₂ h.
use eq_mor_cod_fib.
cbn -[fiber_category].
rewrite !comp_in_cod_fib.
cbn.
use (MorphismsIntoPullbackEqual (isPullback_Pullback _)).
- rewrite !assoc'.
rewrite PullbackArrow_PullbackPr1.
refine (!_).
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr1 (HC y (cod_dom g₂) x (cod_mor g₂ · f) f)).
}
rewrite transportf_cod_disp.
cbn.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr1.
rewrite id_left, id_right.
apply idpath.
- rewrite !assoc'.
rewrite PullbackArrow_PullbackPr2.
refine (!_).
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr2 (HC y (cod_dom g₂) x (cod_mor g₂ · f) f)).
}
cbn.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr2.
refine (_ @ !(mor_eq h)).
apply id_right.
use eq_mor_cod_fib.
cbn -[fiber_category].
rewrite !comp_in_cod_fib.
cbn.
use (MorphismsIntoPullbackEqual (isPullback_Pullback _)).
- rewrite !assoc'.
rewrite PullbackArrow_PullbackPr1.
refine (!_).
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr1 (HC y (cod_dom g₂) x (cod_mor g₂ · f) f)).
}
rewrite transportf_cod_disp.
cbn.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr1.
rewrite id_left, id_right.
apply idpath.
- rewrite !assoc'.
rewrite PullbackArrow_PullbackPr2.
refine (!_).
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr2 (HC y (cod_dom g₂) x (cod_mor g₂ · f) f)).
}
cbn.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr2.
refine (_ @ !(mor_eq h)).
apply id_right.
Definition comp_functor_unit
: functor_identity _ ⟹ comp_functor ∙ cod_pb HC f.
Show proof.
Definition comp_functor_counit_data
: nat_trans_data (cod_pb HC f ∙ comp_functor) (functor_identity (C / y)).
Show proof.
Proposition comp_functor_counit_laws
: is_nat_trans _ _ comp_functor_counit_data.
Show proof.
Definition comp_functor_counit
: cod_pb HC f ∙ comp_functor ⟹ functor_identity _.
Show proof.
: nat_trans_data (cod_pb HC f ∙ comp_functor) (functor_identity (C / y)).
Show proof.
simple refine (λ g, make_cod_fib_mor _ _).
- apply PullbackPr1.
- abstract
(cbn ;
apply PullbackSqrCommutes).
- apply PullbackPr1.
- abstract
(cbn ;
apply PullbackSqrCommutes).
Proposition comp_functor_counit_laws
: is_nat_trans _ _ comp_functor_counit_data.
Show proof.
intros g₁ g₂ h.
use eq_mor_cod_fib.
cbn -[fiber_category].
rewrite !comp_in_cod_fib.
cbn.
etrans.
{
apply (PullbackArrow_PullbackPr1 (HC y (pr1 g₂) x (pr2 g₂) f)).
}
rewrite transportf_cod_disp.
cbn.
apply idpath.
use eq_mor_cod_fib.
cbn -[fiber_category].
rewrite !comp_in_cod_fib.
cbn.
etrans.
{
apply (PullbackArrow_PullbackPr1 (HC y (pr1 g₂) x (pr2 g₂) f)).
}
rewrite transportf_cod_disp.
cbn.
apply idpath.
Definition comp_functor_counit
: cod_pb HC f ∙ comp_functor ⟹ functor_identity _.
Show proof.
Proposition form_adj_comp_cod_pb
: form_adjunction
comp_functor
(cod_pb HC f)
comp_functor_unit
comp_functor_counit.
Show proof.
: form_adjunction
comp_functor
(cod_pb HC f)
comp_functor_unit
comp_functor_counit.
Show proof.
split.
- intro g.
use eq_mor_cod_fib.
rewrite comp_in_cod_fib.
cbn.
rewrite PullbackArrow_PullbackPr1.
apply idpath.
- intro g.
use eq_mor_cod_fib.
rewrite comp_in_cod_fib.
use (MorphismsIntoPullbackEqual (isPullback_Pullback (HC y (pr1 g) x (pr2 g) f))).
+ rewrite !assoc'.
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr1 (HC y (pr1 g) x (pr2 g) f)).
}
rewrite transportf_cod_disp.
cbn.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr1.
apply idpath.
+ rewrite !assoc'.
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr2 (HC y (pr1 g) x (pr2 g) f)).
}
cbn.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr2.
rewrite id_left, id_right.
apply idpath.
- intro g.
use eq_mor_cod_fib.
rewrite comp_in_cod_fib.
cbn.
rewrite PullbackArrow_PullbackPr1.
apply idpath.
- intro g.
use eq_mor_cod_fib.
rewrite comp_in_cod_fib.
use (MorphismsIntoPullbackEqual (isPullback_Pullback (HC y (pr1 g) x (pr2 g) f))).
+ rewrite !assoc'.
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr1 (HC y (pr1 g) x (pr2 g) f)).
}
rewrite transportf_cod_disp.
cbn.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr1.
apply idpath.
+ rewrite !assoc'.
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr2 (HC y (pr1 g) x (pr2 g) f)).
}
cbn.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr2.
rewrite id_left, id_right.
apply idpath.
Definition is_right_adjoint_cod_fiber_functor
: is_right_adjoint (cod_pb HC f).
Show proof.
Definition cod_fiber_sigma_adjunction
: adjunction (C/x) (C/y).
Show proof.
End CodomainLeftAdj.
Arguments comp_functor_unit_data {C} HC {x y} f /.
Arguments comp_functor_counit_data {C} HC {x y} f /.
: is_right_adjoint (cod_pb HC f).
Show proof.
simple refine (_ ,, _).
- exact comp_functor.
- simple refine ((_ ,, _) ,, _).
+ exact comp_functor_unit.
+ exact comp_functor_counit.
+ exact form_adj_comp_cod_pb.
- exact comp_functor.
- simple refine ((_ ,, _) ,, _).
+ exact comp_functor_unit.
+ exact comp_functor_counit.
+ exact form_adj_comp_cod_pb.
Definition cod_fiber_sigma_adjunction
: adjunction (C/x) (C/y).
Show proof.
End CodomainLeftAdj.
Arguments comp_functor_unit_data {C} HC {x y} f /.
Arguments comp_functor_counit_data {C} HC {x y} f /.
Section BeckChevalley.
Context {C : category}
(HC : Pullbacks C)
{w x y z : C}
(f : x --> w)
(g : y --> w)
(h : z --> y)
(k : z --> x)
(p : k · f = h · g)
(H : isPullback p).
Let HD : cleaving (disp_codomain C) := disp_codomain_cleaving HC.
Let P : Pullback f g := make_Pullback _ H.
Definition cod_left_beck_chevalley_mor
(φ : C/x)
: cod_dom (cod_pb HC k φ)
-->
cod_dom (cod_pb HC g (cod_fib_comp f φ)).
Show proof.
Definition cod_left_beck_chevalley_mor_inv
(φ : C/x)
: cod_dom (cod_pb HC g (cod_fib_comp f φ))
-->
cod_dom (cod_pb HC k φ).
Show proof.
Proposition cod_left_beck_chevalley_mor_mor_inv
(φ : C/x)
: cod_left_beck_chevalley_mor φ · cod_left_beck_chevalley_mor_inv φ
=
identity _.
Show proof.
Proposition cod_left_beck_chevalley_mor_inv_mor
(φ : C/x)
: cod_left_beck_chevalley_mor_inv φ · cod_left_beck_chevalley_mor φ
=
identity _.
Show proof.
Definition is_z_isomorphism_cod_left_beck_chevalley_mor
(φ : C/x)
: is_z_isomorphism (cod_left_beck_chevalley_mor φ).
Show proof.
Proposition cod_left_beck_chevalley_eq
(φ : C/x)
: cod_left_beck_chevalley_mor φ
=
dom_mor
(left_beck_chevalley_nat_trans
(is_right_adjoint_cod_fiber_functor HC f)
(is_right_adjoint_cod_fiber_functor HC h)
(comm_nat_z_iso HD f g h k p)
φ).
Show proof.
Definition cod_left_beck_chevalley
: left_beck_chevalley
HD
f g h k
p
(is_right_adjoint_cod_fiber_functor HC f)
(is_right_adjoint_cod_fiber_functor HC h).
Show proof.
Context {C : category}
(HC : Pullbacks C)
{w x y z : C}
(f : x --> w)
(g : y --> w)
(h : z --> y)
(k : z --> x)
(p : k · f = h · g)
(H : isPullback p).
Let HD : cleaving (disp_codomain C) := disp_codomain_cleaving HC.
Let P : Pullback f g := make_Pullback _ H.
Definition cod_left_beck_chevalley_mor
(φ : C/x)
: cod_dom (cod_pb HC k φ)
-->
cod_dom (cod_pb HC g (cod_fib_comp f φ)).
Show proof.
use PullbackArrow.
- exact (PullbackPr1 _).
- exact (PullbackPr2 _ · h).
- abstract
(cbn ;
rewrite !assoc ;
refine (maponpaths (λ z, z · _) (PullbackSqrCommutes _) @ _) ;
rewrite !assoc' ;
rewrite p ;
apply idpath).
- exact (PullbackPr1 _).
- exact (PullbackPr2 _ · h).
- abstract
(cbn ;
rewrite !assoc ;
refine (maponpaths (λ z, z · _) (PullbackSqrCommutes _) @ _) ;
rewrite !assoc' ;
rewrite p ;
apply idpath).
Definition cod_left_beck_chevalley_mor_inv
(φ : C/x)
: cod_dom (cod_pb HC g (cod_fib_comp f φ))
-->
cod_dom (cod_pb HC k φ).
Show proof.
use PullbackArrow.
- exact (PullbackPr1 _).
- use (PullbackArrow P).
+ exact (PullbackPr1 _ · cod_mor φ).
+ exact (PullbackPr2 _).
+ abstract
(cbn ;
rewrite !assoc' ;
apply PullbackSqrCommutes).
- abstract
(exact (!(PullbackArrow_PullbackPr1 P _ _ _ _))).
- exact (PullbackPr1 _).
- use (PullbackArrow P).
+ exact (PullbackPr1 _ · cod_mor φ).
+ exact (PullbackPr2 _).
+ abstract
(cbn ;
rewrite !assoc' ;
apply PullbackSqrCommutes).
- abstract
(exact (!(PullbackArrow_PullbackPr1 P _ _ _ _))).
Proposition cod_left_beck_chevalley_mor_mor_inv
(φ : C/x)
: cod_left_beck_chevalley_mor φ · cod_left_beck_chevalley_mor_inv φ
=
identity _.
Show proof.
use (MorphismsIntoPullbackEqual (isPullback_Pullback _)).
- unfold cod_left_beck_chevalley_mor, cod_left_beck_chevalley_mor_inv.
rewrite !assoc'.
etrans.
{
apply maponpaths.
apply PullbackArrow_PullbackPr1.
}
etrans.
{
apply PullbackArrow_PullbackPr1.
}
rewrite id_left.
apply idpath.
- unfold cod_left_beck_chevalley_mor, cod_left_beck_chevalley_mor_inv.
rewrite !assoc'.
etrans.
{
apply maponpaths.
apply PullbackArrow_PullbackPr2.
}
rewrite id_left.
use (MorphismsIntoPullbackEqual (isPullback_Pullback P)).
+ rewrite !assoc'.
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr1 P).
}
rewrite !assoc.
rewrite PullbackArrow_PullbackPr1.
apply PullbackSqrCommutes.
+ rewrite !assoc'.
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr2 P).
}
apply PullbackArrow_PullbackPr2.
- unfold cod_left_beck_chevalley_mor, cod_left_beck_chevalley_mor_inv.
rewrite !assoc'.
etrans.
{
apply maponpaths.
apply PullbackArrow_PullbackPr1.
}
etrans.
{
apply PullbackArrow_PullbackPr1.
}
rewrite id_left.
apply idpath.
- unfold cod_left_beck_chevalley_mor, cod_left_beck_chevalley_mor_inv.
rewrite !assoc'.
etrans.
{
apply maponpaths.
apply PullbackArrow_PullbackPr2.
}
rewrite id_left.
use (MorphismsIntoPullbackEqual (isPullback_Pullback P)).
+ rewrite !assoc'.
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr1 P).
}
rewrite !assoc.
rewrite PullbackArrow_PullbackPr1.
apply PullbackSqrCommutes.
+ rewrite !assoc'.
etrans.
{
apply maponpaths.
apply (PullbackArrow_PullbackPr2 P).
}
apply PullbackArrow_PullbackPr2.
Proposition cod_left_beck_chevalley_mor_inv_mor
(φ : C/x)
: cod_left_beck_chevalley_mor_inv φ · cod_left_beck_chevalley_mor φ
=
identity _.
Show proof.
use (MorphismsIntoPullbackEqual (isPullback_Pullback _)).
- unfold cod_left_beck_chevalley_mor, cod_left_beck_chevalley_mor_inv.
rewrite !assoc'.
etrans.
{
apply maponpaths.
apply PullbackArrow_PullbackPr1.
}
etrans.
{
apply PullbackArrow_PullbackPr1.
}
rewrite id_left.
apply idpath.
- unfold cod_left_beck_chevalley_mor, cod_left_beck_chevalley_mor_inv.
rewrite !assoc'.
etrans.
{
apply maponpaths.
apply PullbackArrow_PullbackPr2.
}
rewrite id_left.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr2.
apply (PullbackArrow_PullbackPr2 P).
- unfold cod_left_beck_chevalley_mor, cod_left_beck_chevalley_mor_inv.
rewrite !assoc'.
etrans.
{
apply maponpaths.
apply PullbackArrow_PullbackPr1.
}
etrans.
{
apply PullbackArrow_PullbackPr1.
}
rewrite id_left.
apply idpath.
- unfold cod_left_beck_chevalley_mor, cod_left_beck_chevalley_mor_inv.
rewrite !assoc'.
etrans.
{
apply maponpaths.
apply PullbackArrow_PullbackPr2.
}
rewrite id_left.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr2.
apply (PullbackArrow_PullbackPr2 P).
Definition is_z_isomorphism_cod_left_beck_chevalley_mor
(φ : C/x)
: is_z_isomorphism (cod_left_beck_chevalley_mor φ).
Show proof.
use make_is_z_isomorphism.
- exact (cod_left_beck_chevalley_mor_inv φ).
- split.
+ apply cod_left_beck_chevalley_mor_mor_inv.
+ apply cod_left_beck_chevalley_mor_inv_mor.
- exact (cod_left_beck_chevalley_mor_inv φ).
- split.
+ apply cod_left_beck_chevalley_mor_mor_inv.
+ apply cod_left_beck_chevalley_mor_inv_mor.
Proposition cod_left_beck_chevalley_eq
(φ : C/x)
: cod_left_beck_chevalley_mor φ
=
dom_mor
(left_beck_chevalley_nat_trans
(is_right_adjoint_cod_fiber_functor HC f)
(is_right_adjoint_cod_fiber_functor HC h)
(comm_nat_z_iso HD f g h k p)
φ).
Show proof.
refine (!_).
rewrite left_beck_chevalley_nat_trans_ob.
rewrite !comp_in_cod_fib.
etrans.
{
apply maponpaths.
simpl.
apply idpath.
}
etrans.
{
do 2 apply maponpaths_2.
refine (dom_mor_comp_functor h _ @ _).
rewrite (cod_fiber_functor_on_mor HC k).
cbn.
apply idpath.
}
etrans.
{
apply maponpaths_2.
apply maponpaths.
refine (dom_mor_comp_functor h _ @ _).
etrans.
{
apply maponpaths.
exact (comm_nat_z_iso_ob HD f g h k p _).
}
etrans.
{
apply (comp_in_cod_fib
_
(fiber_functor_from_cleaving_comp_inv HD g h _)).
}
etrans.
{
apply maponpaths_2.
apply comp_in_cod_fib.
}
etrans.
{
do 2 apply maponpaths.
apply cod_fiber_functor_from_cleaving_comp_inv.
}
etrans.
{
apply maponpaths_2.
etrans.
{
do 2 apply maponpaths.
apply cod_fiber_functor_on_eq.
}
apply maponpaths_2.
apply maponpaths.
apply cod_fiber_functor_from_cleaving_comp.
}
cbn.
apply idpath.
}
rewrite !assoc'.
rewrite PullbackArrow_PullbackPr1.
unfold cod_left_beck_chevalley_mor.
use (MorphismsIntoPullbackEqual (isPullback_Pullback _)).
- rewrite !assoc'.
rewrite PullbackArrow_PullbackPr1.
etrans.
{
do 3 apply maponpaths.
apply PullbackArrow_PullbackPr1.
}
rewrite !PullbackArrow_PullbackPr1.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr1.
rewrite !assoc'.
rewrite PullbackArrow_PullbackPr1.
apply id_right.
- rewrite !assoc'.
rewrite PullbackArrow_PullbackPr2.
etrans.
{
do 3 apply maponpaths.
apply PullbackArrow_PullbackPr2.
}
rewrite !assoc.
apply maponpaths_2.
rewrite !assoc'.
rewrite !PullbackArrow_PullbackPr2.
apply idpath.
rewrite left_beck_chevalley_nat_trans_ob.
rewrite !comp_in_cod_fib.
etrans.
{
apply maponpaths.
simpl.
apply idpath.
}
etrans.
{
do 2 apply maponpaths_2.
refine (dom_mor_comp_functor h _ @ _).
rewrite (cod_fiber_functor_on_mor HC k).
cbn.
apply idpath.
}
etrans.
{
apply maponpaths_2.
apply maponpaths.
refine (dom_mor_comp_functor h _ @ _).
etrans.
{
apply maponpaths.
exact (comm_nat_z_iso_ob HD f g h k p _).
}
etrans.
{
apply (comp_in_cod_fib
_
(fiber_functor_from_cleaving_comp_inv HD g h _)).
}
etrans.
{
apply maponpaths_2.
apply comp_in_cod_fib.
}
etrans.
{
do 2 apply maponpaths.
apply cod_fiber_functor_from_cleaving_comp_inv.
}
etrans.
{
apply maponpaths_2.
etrans.
{
do 2 apply maponpaths.
apply cod_fiber_functor_on_eq.
}
apply maponpaths_2.
apply maponpaths.
apply cod_fiber_functor_from_cleaving_comp.
}
cbn.
apply idpath.
}
rewrite !assoc'.
rewrite PullbackArrow_PullbackPr1.
unfold cod_left_beck_chevalley_mor.
use (MorphismsIntoPullbackEqual (isPullback_Pullback _)).
- rewrite !assoc'.
rewrite PullbackArrow_PullbackPr1.
etrans.
{
do 3 apply maponpaths.
apply PullbackArrow_PullbackPr1.
}
rewrite !PullbackArrow_PullbackPr1.
rewrite !assoc.
rewrite PullbackArrow_PullbackPr1.
rewrite !assoc'.
rewrite PullbackArrow_PullbackPr1.
apply id_right.
- rewrite !assoc'.
rewrite PullbackArrow_PullbackPr2.
etrans.
{
do 3 apply maponpaths.
apply PullbackArrow_PullbackPr2.
}
rewrite !assoc.
apply maponpaths_2.
rewrite !assoc'.
rewrite !PullbackArrow_PullbackPr2.
apply idpath.
Definition cod_left_beck_chevalley
: left_beck_chevalley
HD
f g h k
p
(is_right_adjoint_cod_fiber_functor HC f)
(is_right_adjoint_cod_fiber_functor HC h).
Show proof.
intro φ.
use is_z_iso_fiber_from_is_z_iso_disp.
use is_z_iso_disp_codomain.
use is_z_isomorphism_path.
- exact (cod_left_beck_chevalley_mor φ).
- exact (cod_left_beck_chevalley_eq φ).
- exact (is_z_isomorphism_cod_left_beck_chevalley_mor φ).
End BeckChevalley.use is_z_iso_fiber_from_is_z_iso_disp.
use is_z_iso_disp_codomain.
use is_z_isomorphism_path.
- exact (cod_left_beck_chevalley_mor φ).
- exact (cod_left_beck_chevalley_eq φ).
- exact (is_z_isomorphism_cod_left_beck_chevalley_mor φ).
Definition cod_fiber_has_dependent_sum
{C : category}
(HC : Pullbacks C)
(HD := disp_codomain_cleaving HC)
: has_dependent_sums HD.
Show proof.
{C : category}
(HC : Pullbacks C)
(HD := disp_codomain_cleaving HC)
: has_dependent_sums HD.
Show proof.