Definition twosided_opcartesian {x₁ x₂ : C₁} {y₁ y₂ : C₂} {xy₁ : D x₁ y₁} {xy₂ : D x₂ y₂} {f : x₁ --> x₂} {g : y₁ --> y₂} (fg : xy₁ -->[ f ][ g ] xy₂) : UU := ∏ (x₃ : C₁) (y₃ : C₂) (xy₃ : D x₃ y₃) (f' : x₂ --> x₃) (g' : y₂ --> y₃) (fg' : xy₁ -->[ f · f' ][ g · g' ] xy₃), ∃! (ℓ : xy₂ -->[ f' ][ g' ] xy₃), fg ;;2 ℓ = fg'.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Discrete.