proposition: Proposition lens_assoc {w x y z : C} (f : lens w x) (g : lens x y) (h : lens y z) : comp_lens f (comp_lens g h) = comp_lens (comp_lens f g) h.
proof: Proof. use eq_lens ; cbn. - rewrite assoc. apply idpath. - rewrite !postcompWithBinProductArrow. rewrite !assoc. rewrite !id_left, !id_right. apply maponpaths_2. rewrite !precompWithBinProductArrow. rewrite !BinProductOfArrowsPr2. rewrite BinProductPr2Commutes. apply maponpaths_2. rewrite !assoc. apply maponpaths_2. rewrite !postcompWithBinProductArrow. apply maponpaths_2. rewrite id_right. apply maponpaths_2. rewrite BinProductOfArrows_comp. rewrite id_right. apply idpath. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Limits.BinProducts UniMath.CategoryTheory.DisplayedCats.Core UniMath.CategoryTheory.DisplayedCats.Isos UniMath.CategoryTheory.DisplayedCats.Constructions UniMath.CategoryTheory.DisplayedCats.Univalence UniMath.CategoryTheory.DisplayedCats.Projection UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos UniMath.CategoryTheory.TwoSidedDisplayedCats.Strictness UniMath.CategoryTheory.TwoSidedDisplayedCats.Discrete UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence UniMath.CategoryTheory.TwoSidedDisplayedCats.Total UniMath.CategoryTheory.TwoSidedDisplayedCats.Examples.FiberwiseProduct UniMath.CategoryTheory.TwoSidedDisplayedCats.Examples.DispCatOnTwoSidedDispCat