Proposition spans_double_cat_pentagon : pentagon_law spans_double_cat_associator. Proof. intro ; intros. use span_sqr_eq. rewrite transportb_disp_mor2_span ; cbn. use (MorphismsIntoPullbackEqual (isPullback_Pullback (PC _ _ _ _ _))) ; cbn. - unfold span_associator_mor, mor_of_comp_span_mor ; cbn. rewrite !assoc'. rewrite !PullbackArrow_PullbackPr1. use (MorphismsIntoPullbackEqual (isPullback_Pullback (PC _ _ _ _ _))) ; cbn. + rewrite !assoc'. unfold span_associator_mor. rewrite !PullbackArrow_PullbackPr1. refine (!_). etrans. { apply maponpaths. refine (assoc _ _ _ @ _). rewrite PullbackArrow_PullbackPr1. apply idpath. } use (MorphismsIntoPullbackEqual (isPullback_Pullback (PC _ _ _ _ _))) ; cbn. * rewrite !assoc'. rewrite !PullbackArrow_PullbackPr1. apply id_right. * rewrite !assoc'. rewrite !PullbackArrow_PullbackPr2. etrans. { apply maponpaths. refine (assoc _ _ _ @ _). rewrite !PullbackArrow_PullbackPr2. apply idpath. } rewrite !assoc. rewrite !PullbackArrow_PullbackPr2. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite !PullbackArrow_PullbackPr1. apply idpath. + rewrite !assoc'. unfold span_associator_mor. rewrite !PullbackArrow_PullbackPr2. refine (!_). etrans. { apply maponpaths. refine (assoc _ _ _ @ _). rewrite PullbackArrow_PullbackPr1. refine (assoc _ _ _ @ _). rewrite PullbackArrow_PullbackPr2. apply idpath. } rewrite !assoc. rewrite !PullbackArrow_PullbackPr2. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite PullbackArrow_PullbackPr1. rewrite PullbackArrow_PullbackPr2. apply idpath. - unfold span_associator_mor, mor_of_comp_span_mor. rewrite !assoc'. rewrite !PullbackArrow_PullbackPr2. rewrite !assoc. rewrite !PullbackArrow_PullbackPr2. rewrite !assoc'. refine (!_). etrans. { apply maponpaths. refine (assoc _ _ _ @ _). rewrite PullbackArrow_PullbackPr2. apply idpath. } rewrite !assoc. unfold span_sqr_ob_mor ; cbn. rewrite id_right. rewrite PullbackArrow_PullbackPr2. unfold span_associator_mor . rewrite !assoc'. rewrite PullbackArrow_PullbackPr2. apply idpath. Qed.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Core.Setcategories. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.DisplayedFunctor. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Strictness. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Examples.Spans. Require Import UniMath.CategoryTheory.Limits.Pullbacks. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Examples.BicatOfUnivCats. Require Import UniMath.Bicategories.DoubleCategories.Basics.DoubleCategoryBasics. Require Import UniMath.Bicategories.DoubleCategories.Core.DoubleCats. Require Import UniMath.Bicategories.DoubleCategories.Core.UnivalentDoubleCats. Require Import UniMath.Bicategories.DoubleCategories.Core.PseudoDoubleSetCats. Require Import UniMath.Bicategories.DoubleCategories.Core.CompanionsAndConjoints.