fact: Record ff_struct := { ff_invmap :> forall {X Y}, D⦅F X;F Y⦆ -> C⦅X;Y⦆ ; ff_inv_proper : forall {X Y}, Proper (ord_cat_le D ==> ord_cat_le C) (@ff_invmap X Y) ; ff_section : forall {X Y} (f : D⦅F X;F Y⦆), ofmap F (ff_invmap f) = f ; ff_retraction : forall {X Y} (f : C⦅X;Y⦆), ff_invmap (ofmap F f) = f }.
imports: Coq(ssreflect ssrfun) Mon(SPropBase) Coq(RelationClasses Morphisms Relation_Definitions)