fact: Definition composition {x y z : object} (f : morphism y z) (g : morphism x y) : morphism x z := let fg := composite_correct M (mor_dom f) (mor_cod g) in {| mor_arr := `1 fg ; mor_dom := composition_right (f:=f) (`2 fg) (mor_dom g) ; mor_cod := composition_left (g:=g) (`2 fg) (mor_cod f) |}.
imports: Coq.NArith.NArith Coq.micromega.Lia Category.Lib Category.Lib.MapDecide Category.Theory.Category Category.Theory.Isomorphism Category.Theory.Functor