Definition functor_on_struct_cospan_sqr {x₁ x₂ y₁ y₂ : A₁} {f₁ : struct_cospan L₁ x₁ y₁} {f₂ : struct_cospan L₁ x₂ y₂} {vx : x₁ --> x₂} {vy : y₁ --> y₂} (sq : struct_cospan_sqr L₁ vx vy f₁ f₂) : struct_cospan_sqr L₂ (#FA vx) (#FA vy) (functor_on_struct_cospan f₁) (functor_on_struct_cospan f₂). Proof. use make_struct_cospan_sqr. - exact (#FX (struct_cospan_sqr_ob_mor _ sq)). - abstract (split ; cbn ; [ rewrite !assoc' ; rewrite <- functor_comp ; rewrite struct_cospan_sqr_mor_left ; rewrite functor_comp ; rewrite !assoc ; apply maponpaths_2 ; exact (!(nat_trans_ax α _ _ vx)) | rewrite !assoc' ; rewrite <- functor_comp ; rewrite struct_cospan_sqr_mor_right ; rewrite functor_comp ; rewrite !assoc ; apply maponpaths_2 ; exact (!(nat_trans_ax α _ _ vy)) ]). Defined.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Core.Setcategories. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Constructions. Require Import UniMath.CategoryTheory.DisplayedCats.Isos. Require Import UniMath.CategoryTheory.DisplayedCats.Univalence. Require Import UniMath.CategoryTheory.Limits.Pushouts. 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.Total. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Strictness. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Examples.Constant. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Examples.DispCatOnTwoSidedDispCat.