proposition: Lemma triR : TriangularLaws.right Eta Eps.
proof: Proof. move=> c. rewrite EpsE_hom EtaE (functor_o_head G) -(functor_o_head G0 (eta0 _)). set X:= [hom [\o _, _]]. evar (TY : Type). evar (Y : TY). have-> : G0 # X = G0 # Y by congr (G0 # _); rewrite hom_ext /X /= (natural eta1); exact: erefl. rewrite (functor_o G0) hom_compA FIdf triR0 compfid. rewrite -[in RHS](functor_id G0) -(functor_o G0); congr (G0 # _). by rewrite hom_ext /= triR1. Qed.
imports: mathcomp(all_ssreflect) mathcomp(boolp) monae_lib HB(structures)