let A, B be non empty transitive with_units AltCatStr ; for F being feasible FunctorStr over A,B st F is bijective & F is Contravariant holds
F " is Contravariant
let F be feasible FunctorStr over A,B; ( F is bijective & F is Contravariant implies F " is Contravariant )
assume A1:
( F is bijective & F is Contravariant )
; F " is Contravariant
then
F is injective
;
then
F is one-to-one
;
then A2:
the ObjectMap of F is one-to-one
;
F is surjective
by A1;
then
F is onto
;
then A3:
the ObjectMap of F is onto
;
the ObjectMap of F is Contravariant
by A1;
then consider f being Function of the carrier of A, the carrier of B such that
A4:
the ObjectMap of F = ~ [:f,f:]
;
[:f,f:] is one-to-one
by A2, A4, Th9;
then A5:
f is one-to-one
by Th7;
then A6:
dom (f ") = rng f
by FUNCT_1:33;
A7:
rng (f ") = dom f
by A5, FUNCT_1:33;
[:f,f:] is onto
by A3, A4, Th13;
then A8:
rng [:f,f:] = [: the carrier of B, the carrier of B:]
;
rng [:f,f:] = [:(rng f),(rng f):]
by FUNCT_3:67;
then
rng f = the carrier of B
by A8, ZFMISC_1:92;
then reconsider g = f " as Function of the carrier of B, the carrier of A by A6, A7, FUNCT_2:def 1, RELSET_1:4;
take
g
; FUNCTOR0:def 2,FUNCTOR0:def 13 the ObjectMap of (F ") = ~ [:g,g:]
A9:
[:f,f:] " = [:g,g:]
by A5, Th6;
thus the ObjectMap of (F ") =
the ObjectMap of F "
by A1, Def38
.=
~ [:g,g:]
by A4, A5, A9, Th10
; verum