set OF = the ObjectMap of F;
F is injective
by A1, Def36;
then
F is one-to-one
by Def34;
then A2:
the ObjectMap of F is one-to-one
by Def7;
F is surjective
by A1, Def36;
then
F is onto
by Def35;
then
the ObjectMap of F is onto
by Def8;
then A3:
rng the ObjectMap of F = [:the carrier of B,the carrier of B:]
by FUNCT_2:def 3;
then reconsider OM = the ObjectMap of F " as bifunction of the carrier of B,the carrier of A by A2, FUNCT_2:31;
reconsider f = the MorphMap of F as ManySortedFunction of the Arrows of A,the Arrows of B * the ObjectMap of F by Def5;
(the Arrows of B * the ObjectMap of F) * OM =
the Arrows of B * (the ObjectMap of F * OM)
by RELAT_1:55
.=
the Arrows of B * (id [:the carrier of B,the carrier of B:])
by A2, A3, FUNCT_2:35
.=
the Arrows of B
by Th3
;
then
(f "" ) * OM is ManySortedFunction of the Arrows of B,the Arrows of A * OM
by ALTCAT_2:5;
then reconsider MM = (f "" ) * OM as MSUnTrans of OM,the Arrows of B,the Arrows of A by Def5;
take G = FunctorStr(# OM,MM #); ( the ObjectMap of G = the ObjectMap of F " & ex f being ManySortedFunction of the Arrows of A,the Arrows of B * the ObjectMap of F st
( f = the MorphMap of F & the MorphMap of G = (f "" ) * (the ObjectMap of F " ) ) )
thus
the ObjectMap of G = the ObjectMap of F "
; ex f being ManySortedFunction of the Arrows of A,the Arrows of B * the ObjectMap of F st
( f = the MorphMap of F & the MorphMap of G = (f "" ) * (the ObjectMap of F " ) )
take
f
; ( f = the MorphMap of F & the MorphMap of G = (f "" ) * (the ObjectMap of F " ) )
thus
( f = the MorphMap of F & the MorphMap of G = (f "" ) * (the ObjectMap of F " ) )
; verum