let A, B be category; :: thesis: for F, G being contravariant Functor of A,B st ( for a being object of A holds F . a = G . a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds F . f = G . f ) holds
FunctorStr(# the ObjectMap of F,the MorphMap of F #) = FunctorStr(# the ObjectMap of G,the MorphMap of G #)
let F, G be contravariant Functor of A,B; :: thesis: ( ( for a being object of A holds F . a = G . a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds F . f = G . f ) implies FunctorStr(# the ObjectMap of F,the MorphMap of F #) = FunctorStr(# the ObjectMap of G,the MorphMap of G #) )
assume that
A1:
for a being object of A holds F . a = G . a
and
A2:
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds F . f = G . f
; :: thesis: FunctorStr(# the ObjectMap of F,the MorphMap of F #) = FunctorStr(# the ObjectMap of G,the MorphMap of G #)
the ObjectMap of F is Contravariant
by FUNCTOR0:def 14;
then consider ff being Function of the carrier of A,the carrier of B such that
A3:
the ObjectMap of F = ~ [:ff,ff:]
by FUNCTOR0:def 3;
the ObjectMap of G is Contravariant
by FUNCTOR0:def 14;
then consider gg being Function of the carrier of A,the carrier of B such that
A4:
the ObjectMap of G = ~ [:gg,gg:]
by FUNCTOR0:def 3;
now let a,
b be
Element of
A;
:: thesis: the ObjectMap of F . a,b = the ObjectMap of G . a,breconsider x =
a,
y =
b as
object of
A ;
A5:
(
dom ff = the
carrier of
A &
dom gg = the
carrier of
A )
by FUNCT_2:def 1;
A6:
dom [:ff,ff:] = [:the carrier of A,the carrier of A:]
by FUNCT_2:def 1;
then A7:
(
[b,a] in dom [:ff,ff:] &
[a,a] in dom [:ff,ff:] &
[b,b] in dom [:ff,ff:] )
by ZFMISC_1:def 2;
dom [:gg,gg:] = [:the carrier of A,the carrier of A:]
by FUNCT_2:def 1;
then A8:
(
[b,a] in dom [:gg,gg:] &
[a,a] in dom [:gg,gg:] &
[b,b] in dom [:gg,gg:] )
by ZFMISC_1:def 2;
then
( the
ObjectMap of
F . x,
x = [:ff,ff:] . x,
x & the
ObjectMap of
F . y,
y = [:ff,ff:] . y,
y & the
ObjectMap of
G . x,
x = [:gg,gg:] . x,
x & the
ObjectMap of
G . y,
y = [:gg,gg:] . y,
y )
by A3, A4, A6, FUNCT_4:def 2;
then
( the
ObjectMap of
F . x,
x = [(ff . x),(ff . x)] & the
ObjectMap of
F . y,
y = [(ff . y),(ff . y)] & the
ObjectMap of
G . x,
x = [(gg . x),(gg . x)] & the
ObjectMap of
G . y,
y = [(gg . y),(gg . y)] )
by A5, FUNCT_3:def 9;
then A9:
(
F . x = ff . x &
F . y = ff . y &
G . x = gg . x &
G . y = gg . y )
by MCART_1:7;
A10:
(
F . x = G . x &
F . y = G . y )
by A1;
thus the
ObjectMap of
F . a,
b =
[:ff,ff:] . b,
a
by A3, A7, FUNCT_4:def 2
.=
[(ff . b),(ff . a)]
by A5, FUNCT_3:def 9
.=
[:gg,gg:] . b,
a
by A5, A9, A10, FUNCT_3:def 9
.=
the
ObjectMap of
G . a,
b
by A4, A8, FUNCT_4:def 2
;
:: thesis: verum end;
then A11:
the ObjectMap of F = the ObjectMap of G
by BINOP_1:2;
now let i be
set ;
:: thesis: ( i in [:the carrier of A,the carrier of A:] implies the MorphMap of F . i = the MorphMap of G . i )assume
i in [:the carrier of A,the carrier of A:]
;
:: thesis: the MorphMap of F . i = the MorphMap of G . ithen consider a,
b being
set such that A12:
(
a in the
carrier of
A &
b in the
carrier of
A &
i = [a,b] )
by ZFMISC_1:def 2;
reconsider x =
a,
y =
b as
object of
A by A12;
A13:
( (
<^x,y^> <> {} implies
<^(F . y),(F . x)^> <> {} ) & (
<^x,y^> <> {} implies
<^(G . y),(G . x)^> <> {} ) )
by FUNCTOR0:def 20;
then A14:
(
dom (Morph-Map F,x,y) = <^x,y^> &
dom (Morph-Map G,x,y) = <^x,y^> )
by FUNCT_2:def 1;
now let z be
set ;
:: thesis: ( z in <^x,y^> implies (Morph-Map F,x,y) . z = (Morph-Map G,x,y) . z )assume A15:
z in <^x,y^>
;
:: thesis: (Morph-Map F,x,y) . z = (Morph-Map G,x,y) . zthen reconsider f =
z as
Morphism of
x,
y ;
thus (Morph-Map F,x,y) . z =
F . f
by A13, A15, FUNCTOR0:def 17
.=
G . f
by A2, A15
.=
(Morph-Map G,x,y) . z
by A13, A15, FUNCTOR0:def 17
;
:: thesis: verum end; hence
the
MorphMap of
F . i = the
MorphMap of
G . i
by A12, A14, FUNCT_1:9;
:: thesis: verum end;
hence
FunctorStr(# the ObjectMap of F,the MorphMap of F #) = FunctorStr(# the ObjectMap of G,the MorphMap of G #)
by A11, PBOOLE:3; :: thesis: verum