Definition lenses_strict_double_cat (C : setcategory) (PC : BinProducts C) : strict_double_cat. Proof. use make_strict_double_cat. - exact C. - exact (twosided_disp_cat_of_lenses C PC). - apply is_strict_twosided_disp_cat_of_lenses. - exact (lenses_double_cat_hor_id C PC). - exact (lenses_double_cat_hor_comp C PC). - abstract (intros x y f ; cbn ; exact (lens_id_left C PC f)). - abstract (intros x y f ; cbn ; exact (lens_id_right C PC f)). - abstract (intros w x y z f g h ; cbn ; exact (lens_assoc C PC f g h)). - abstract (intro ; intros ; apply discrete_lenses_twosided_disp_cat). - abstract (intro ; intros ; apply discrete_lenses_twosided_disp_cat). - abstract (intro ; intros ; apply discrete_lenses_twosided_disp_cat). Defined.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Core.Setcategories. Require Import UniMath.CategoryTheory.Limits.BinProducts. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Strictness. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Examples.Lenses. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Examples.BicatOfUnivCats. Require Import UniMath.Bicategories.DoubleCategories.Basics.StrictDoubleCatBasics. 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.StrictDoubleCats.