Definition all_companions_structured_cospans_double_cat : all_companions_double_cat structured_cospans_double_cat. Proof. intros x y f. simple refine (_ ,, _). - exact (struct_cospan_companion L f). - use make_double_cat_are_companions'. + exact (struct_cospan_companion_unit L f). + exact (struct_cospan_companion_counit L f). + abstract (use struct_cospan_sqr_eq ; refine (transportf_disp_mor2_struct_cospan _ _ _ _ @ _) ; cbn ; unfold mor_of_comp_struct_cospan_mor, struct_cospan_runitor_mor ; cbn ; rewrite PushoutArrow_PushoutIn2 ; rewrite id_left ; rewrite PushoutArrow_PushoutIn2 ; apply idpath). + abstract (use struct_cospan_sqr_eq ; refine (transportf_disp_mor2_struct_cospan _ _ _ _ @ _) ; cbn ; apply id_right). Defined.
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.Examples.StructuredCospans. Require Import UniMath.CategoryTheory.Limits.Pushouts. Require Import UniMath.CategoryTheory.Limits.Preservation. 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.