consider O being Function such that
A5:
dom O = the carrier of F1()
and
A6:
for x being object st x in the carrier of F1() holds
O . x = F3(x)
from FUNCT_1:sch 3();
rng O c= the carrier of F2()
then reconsider O = O as Function of the carrier of F1(), the carrier of F2() by A5, FUNCT_2:2;
reconsider OM = ~ [:O,O:] as bifunction of the carrier of F1(), the carrier of F2() ;
dom [:O,O:] = [: the carrier of F1(), the carrier of F1():]
by A5, FUNCT_3:def 8;
then A10:
dom OM = [: the carrier of F1(), the carrier of F1():]
by FUNCT_4:46;
defpred S1[ object , object , object ] means $1 = F4(($3 `1),($3 `2),$2);
A11:
for i being object st i in [: the carrier of F1(), the carrier of F1():] holds
for x being object st x in the Arrows of F1() . i holds
ex y being object st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] )
proof
let i be
object ;
( i in [: the carrier of F1(), the carrier of F1():] implies for x being object st x in the Arrows of F1() . i holds
ex y being object st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] ) )
assume A12:
i in [: the carrier of F1(), the carrier of F1():]
;
for x being object st x in the Arrows of F1() . i holds
ex y being object st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] )
then consider a,
b being
object such that A13:
a in the
carrier of
F1()
and A14:
b in the
carrier of
F1()
and A15:
[a,b] = i
by ZFMISC_1:def 2;
reconsider a =
a,
b =
b as
Object of
F1()
by A13, A14;
let x be
object ;
( x in the Arrows of F1() . i implies ex y being object st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] ) )
assume A16:
x in the
Arrows of
F1()
. i
;
ex y being object st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] )
then reconsider f =
x as
Morphism of
a,
b by A15;
take y =
F4(
a,
b,
f);
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] )
A17:
y in the
Arrows of
F2()
. (
F3(
b),
F3(
a))
by A2, A15, A16;
A18:
F3(
a)
= O . a
by A6;
( the Arrows of F2() * OM) . i =
the
Arrows of
F2()
. (OM . (a,b))
by A10, A12, A15, FUNCT_1:13
.=
the
Arrows of
F2()
. ([:O,O:] . (b,a))
by A10, A12, A15, FUNCT_4:43
.=
the
Arrows of
F2()
. (
(O . b),
(O . a))
by A5, FUNCT_3:def 8
;
hence
y in ( the Arrows of F2() * OM) . i
by A6, A17, A18;
S1[y,x,i]
thus
S1[
y,
x,
i]
by A15;
verum
end;
consider M being ManySortedFunction of the Arrows of F1(), the Arrows of F2() * OM such that
A19:
for i being object st i in [: the carrier of F1(), the carrier of F1():] holds
ex f being Function of ( the Arrows of F1() . i),(( the Arrows of F2() * OM) . i) st
( f = M . i & ( for x being object st x in the Arrows of F1() . i holds
S1[f . x,x,i] ) )
from MSSUBFAM:sch 1(A11);
reconsider M = M as MSUnTrans of OM, the Arrows of F1(), the Arrows of F2() by FUNCTOR0:def 4;
FunctorStr(# OM,M #) is Contravariant
then reconsider F = FunctorStr(# OM,M #) as Contravariant FunctorStr over F1(),F2() ;
A20:
now for a being Object of F1() holds F . a = F3(a)end;
A21:
now for o1, o2 being Object of F1() st <^o1,o2^> <> {} holds
for g being Morphism of o1,o2 holds (Morph-Map (F,o1,o2)) . g = F4(o1,o2,g)let o1,
o2 be
Object of
F1();
( <^o1,o2^> <> {} implies for g being Morphism of o1,o2 holds (Morph-Map (F,o1,o2)) . g = F4(o1,o2,g) )assume A22:
<^o1,o2^> <> {}
;
for g being Morphism of o1,o2 holds (Morph-Map (F,o1,o2)) . g = F4(o1,o2,g)let g be
Morphism of
o1,
o2;
(Morph-Map (F,o1,o2)) . g = F4(o1,o2,g)
[o1,o2] in [: the carrier of F1(), the carrier of F1():]
by ZFMISC_1:def 2;
then consider f being
Function of
( the Arrows of F1() . [o1,o2]),
(( the Arrows of F2() * OM) . [o1,o2]) such that A23:
f = M . [o1,o2]
and A24:
for
x being
object st
x in the
Arrows of
F1()
. [o1,o2] holds
f . x = F4(
([o1,o2] `1),
([o1,o2] `2),
x)
by A19;
f . g =
F4(
([o1,o2] `1),
([o1,o2] `2),
g)
by A22, A24
.=
F4(
o1,
([o1,o2] `2),
g)
.=
F4(
o1,
o2,
g)
;
hence
(Morph-Map (F,o1,o2)) . g = F4(
o1,
o2,
g)
by A23;
verum end;
A25:
F is feasible
proof
let o1,
o2 be
Object of
F1();
FUNCTOR0:def 19 ( <^o1,o2^> = {} or not <^(F . o2),(F . o1)^> = {} )
set g = the
Morphism of
o1,
o2;
assume A26:
<^o1,o2^> <> {}
;
not <^(F . o2),(F . o1)^> = {}
then
(Morph-Map (F,o1,o2)) . the
Morphism of
o1,
o2 = F4(
o1,
o2, the
Morphism of
o1,
o2)
by A21;
then
(Morph-Map (F,o1,o2)) . the
Morphism of
o1,
o2 in the
Arrows of
F2()
. (
F3(
o2),
F3(
o1))
by A2, A26;
then
(Morph-Map (F,o1,o2)) . the
Morphism of
o1,
o2 in the
Arrows of
F2()
. (
(F . o2),
F3(
o1))
by A20;
hence
not
<^(F . o2),(F . o1)^> = {}
by A20;
verum
end;
A27:
now for o1, o2 being Object of F1() st <^o1,o2^> <> {} holds
for g being Morphism of o1,o2 holds F . g = F4(o1,o2,g)let o1,
o2 be
Object of
F1();
( <^o1,o2^> <> {} implies for g being Morphism of o1,o2 holds F . g = F4(o1,o2,g) )assume A28:
<^o1,o2^> <> {}
;
for g being Morphism of o1,o2 holds F . g = F4(o1,o2,g)let g be
Morphism of
o1,
o2;
F . g = F4(o1,o2,g)A29:
(Morph-Map (F,o1,o2)) . g = F4(
o1,
o2,
g)
by A21, A28;
<^(F . o2),(F . o1)^> <> {}
by A25, A28;
hence
F . g = F4(
o1,
o2,
g)
by A28, A29, FUNCTOR0:def 16;
verum end;
A30:
F is comp-reversing
proof
let o1,
o2,
o3 be
Object of
F1();
FUNCTOR0:def 22 ( <^o1,o2^> = {} or <^o2,o3^> = {} or for b1 being Element of <^o1,o2^>
for b2 being Element of <^o2,o3^> ex b3 being Element of <^(F . o2),(F . o1)^> ex b4 being Element of <^(F . o3),(F . o2)^> st
( b3 = (Morph-Map (F,o1,o2)) . b1 & b4 = (Morph-Map (F,o2,o3)) . b2 & (Morph-Map (F,o1,o3)) . (b2 * b1) = b3 * b4 ) )
assume that A31:
<^o1,o2^> <> {}
and A32:
<^o2,o3^> <> {}
;
for b1 being Element of <^o1,o2^>
for b2 being Element of <^o2,o3^> ex b3 being Element of <^(F . o2),(F . o1)^> ex b4 being Element of <^(F . o3),(F . o2)^> st
( b3 = (Morph-Map (F,o1,o2)) . b1 & b4 = (Morph-Map (F,o2,o3)) . b2 & (Morph-Map (F,o1,o3)) . (b2 * b1) = b3 * b4 )
let f be
Morphism of
o1,
o2;
for b1 being Element of <^o2,o3^> ex b2 being Element of <^(F . o2),(F . o1)^> ex b3 being Element of <^(F . o3),(F . o2)^> st
( b2 = (Morph-Map (F,o1,o2)) . f & b3 = (Morph-Map (F,o2,o3)) . b1 & (Morph-Map (F,o1,o3)) . (b1 * f) = b2 * b3 )let g be
Morphism of
o2,
o3;
ex b1 being Element of <^(F . o2),(F . o1)^> ex b2 being Element of <^(F . o3),(F . o2)^> st
( b1 = (Morph-Map (F,o1,o2)) . f & b2 = (Morph-Map (F,o2,o3)) . g & (Morph-Map (F,o1,o3)) . (g * f) = b1 * b2 )
set a =
O . o1;
set b =
O . o2;
set c =
O . o3;
A33:
O . o1 = F3(
o1)
by A6;
A34:
O . o2 = F3(
o2)
by A6;
A35:
O . o3 = F3(
o3)
by A6;
reconsider f9 =
F4(
o1,
o2,
f) as
Morphism of
(O . o2),
(O . o1) by A2, A31, A33, A34;
reconsider g9 =
F4(
o2,
o3,
g) as
Morphism of
(O . o3),
(O . o2) by A2, A32, A34, A35;
A36:
O . o1 = F . o1
by A20, A33;
A37:
O . o2 = F . o2
by A20, A34;
A38:
O . o3 = F . o3
by A20, A35;
reconsider ff =
f9 as
Morphism of
(F . o2),
(F . o1) by A20, A33, A37;
reconsider gg =
g9 as
Morphism of
(F . o3),
(F . o2) by A20, A35, A37;
take
ff
;
ex b1 being Element of <^(F . o3),(F . o2)^> st
( ff = (Morph-Map (F,o1,o2)) . f & b1 = (Morph-Map (F,o2,o3)) . g & (Morph-Map (F,o1,o3)) . (g * f) = ff * b1 )
take
gg
;
( ff = (Morph-Map (F,o1,o2)) . f & gg = (Morph-Map (F,o2,o3)) . g & (Morph-Map (F,o1,o3)) . (g * f) = ff * gg )
A39:
<^o1,o3^> <> {}
by A31, A32, ALTCAT_1:def 2;
F4(
o1,
o3,
(g * f))
= ff * gg
by A3, A31, A32, A33, A34, A35, A36, A37, A38;
hence
(
ff = (Morph-Map (F,o1,o2)) . f &
gg = (Morph-Map (F,o2,o3)) . g &
(Morph-Map (F,o1,o3)) . (g * f) = ff * gg )
by A21, A31, A32, A39;
verum
end;
F is Functor of F1(),F2()
then reconsider F = F as strict contravariant Functor of F1(),F2() by A30;
take
F
; ( ( for a being Object of F1() holds F . a = F3(a) ) & ( for a, b being Object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b holds F . f = F4(a,b,f) ) )
thus
( ( for a being Object of F1() holds F . a = F3(a) ) & ( for a, b being Object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b holds F . f = F4(a,b,f) ) )
by A20, A27; verum