:: YELLOW18 semantic presentation
begin
scheme :: YELLOW18:sch 1
AltCatStrLambda{ F1() -> non empty set , F2( set , set ) -> set , F3( set , set , set , set , set ) -> set } :
ex C being non empty transitive strict AltCatStr st
( the carrier of C = F1() & ( for a, b being object of C holds <^a,b^> = F2(a,b) ) & ( for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) )
provided
A1: for a, b, c being Element of F1()
for f, g being set st f in F2(a,b) & g in F2(b,c) holds
F3(a,b,c,f,g) in F2(a,c)
proof
consider B being ManySortedSet of [:F1(),F1():] such that
A2: for a, b being Element of F1() holds B . (a,b) = F2(a,b) from ALTCAT_1:sch_2();
defpred S1[ set , set ] means ex a, b, c being Element of F1() ex F being Function of ({|B,B|} . (a,b,c)),({|B|} . (a,b,c)) st
( $1 = [a,b,c] & $2 = F & ( for f, g being set st f in F2(a,b) & g in F2(b,c) holds
F . [g,f] = F3(a,b,c,f,g) ) );
A3: for i being set st i in [:F1(),F1(),F1():] holds
ex j being set st S1[i,j]
proof
let i be set ; ::_thesis: ( i in [:F1(),F1(),F1():] implies ex j being set st S1[i,j] )
assume i in [:F1(),F1(),F1():] ; ::_thesis: ex j being set st S1[i,j]
then consider a, b, c being set such that
A4: a in F1() and
A5: b in F1() and
A6: c in F1() and
A7: i = [a,b,c] by MCART_1:68;
reconsider a = a, b = b, c = c as Element of F1() by A4, A5, A6;
defpred S2[ set , set ] means ex f, g being set st
( $1 = [g,f] & $2 = F3(a,b,c,f,g) );
A8: for x being set st x in [:F2(b,c),F2(a,b):] holds
ex y being set st
( y in F2(a,c) & S2[x,y] )
proof
let x be set ; ::_thesis: ( x in [:F2(b,c),F2(a,b):] implies ex y being set st
( y in F2(a,c) & S2[x,y] ) )
assume x in [:F2(b,c),F2(a,b):] ; ::_thesis: ex y being set st
( y in F2(a,c) & S2[x,y] )
then consider x1, x2 being set such that
A9: x1 in F2(b,c) and
A10: x2 in F2(a,b) and
A11: x = [x1,x2] by ZFMISC_1:def_2;
take y = F3(a,b,c,x2,x1); ::_thesis: ( y in F2(a,c) & S2[x,y] )
thus y in F2(a,c) by A1, A9, A10; ::_thesis: S2[x,y]
thus S2[x,y] by A11; ::_thesis: verum
end;
consider F being Function such that
A12: ( dom F = [:F2(b,c),F2(a,b):] & rng F c= F2(a,c) ) and
A13: for x being set st x in [:F2(b,c),F2(a,b):] holds
S2[x,F . x] from FUNCT_1:sch_5(A8);
A14: B . (a,b) = F2(a,b) by A2;
A15: B . (b,c) = F2(b,c) by A2;
A16: B . (a,c) = F2(a,c) by A2;
A17: {|B,B|} . (a,b,c) = [:F2(b,c),F2(a,b):] by A14, A15, ALTCAT_1:def_4;
{|B|} . (a,b,c) = F2(a,c) by A16, ALTCAT_1:def_3;
then reconsider F = F as Function of ({|B,B|} . (a,b,c)),({|B|} . (a,b,c)) by A12, A17, FUNCT_2:2;
take j = F; ::_thesis: S1[i,j]
take a ; ::_thesis: ex b, c being Element of F1() ex F being Function of ({|B,B|} . (a,b,c)),({|B|} . (a,b,c)) st
( i = [a,b,c] & j = F & ( for f, g being set st f in F2(a,b) & g in F2(b,c) holds
F . [g,f] = F3(a,b,c,f,g) ) )
take b ; ::_thesis: ex c being Element of F1() ex F being Function of ({|B,B|} . (a,b,c)),({|B|} . (a,b,c)) st
( i = [a,b,c] & j = F & ( for f, g being set st f in F2(a,b) & g in F2(b,c) holds
F . [g,f] = F3(a,b,c,f,g) ) )
take c ; ::_thesis: ex F being Function of ({|B,B|} . (a,b,c)),({|B|} . (a,b,c)) st
( i = [a,b,c] & j = F & ( for f, g being set st f in F2(a,b) & g in F2(b,c) holds
F . [g,f] = F3(a,b,c,f,g) ) )
take F ; ::_thesis: ( i = [a,b,c] & j = F & ( for f, g being set st f in F2(a,b) & g in F2(b,c) holds
F . [g,f] = F3(a,b,c,f,g) ) )
thus ( i = [a,b,c] & j = F ) by A7; ::_thesis: for f, g being set st f in F2(a,b) & g in F2(b,c) holds
F . [g,f] = F3(a,b,c,f,g)
let f, g be set ; ::_thesis: ( f in F2(a,b) & g in F2(b,c) implies F . [g,f] = F3(a,b,c,f,g) )
assume that
A18: f in F2(a,b) and
A19: g in F2(b,c) ; ::_thesis: F . [g,f] = F3(a,b,c,f,g)
[g,f] in [:F2(b,c),F2(a,b):] by A18, A19, ZFMISC_1:87;
then consider f9, g9 being set such that
A20: [g,f] = [g9,f9] and
A21: F . [g,f] = F3(a,b,c,f9,g9) by A13;
g = g9 by A20, XTUPLE_0:1;
hence F . [g,f] = F3(a,b,c,f,g) by A20, A21, XTUPLE_0:1; ::_thesis: verum
end;
consider C being Function such that
A22: dom C = [:F1(),F1(),F1():] and
A23: for i being set st i in [:F1(),F1(),F1():] holds
S1[i,C . i] from CLASSES1:sch_1(A3);
reconsider C = C as ManySortedSet of [:F1(),F1(),F1():] by A22, PARTFUN1:def_2, RELAT_1:def_18;
now__::_thesis:_for_i_being_set_st_i_in_[:F1(),F1(),F1():]_holds_
C_._i_is_Function_of_({|B,B|}_._i),({|B|}_._i)
let i be set ; ::_thesis: ( i in [:F1(),F1(),F1():] implies C . i is Function of ({|B,B|} . i),({|B|} . i) )
assume i in [:F1(),F1(),F1():] ; ::_thesis: C . i is Function of ({|B,B|} . i),({|B|} . i)
then consider a, b, c being Element of F1(), F being Function of ({|B,B|} . (a,b,c)),({|B|} . (a,b,c)) such that
A24: i = [a,b,c] and
A25: C . i = F and
for f, g being set st f in F2(a,b) & g in F2(b,c) holds
F . [g,f] = F3(a,b,c,f,g) by A23;
A26: {|B|} . (a,b,c) = {|B|} . i by A24, MULTOP_1:def_1;
{|B,B|} . (a,b,c) = {|B,B|} . i by A24, MULTOP_1:def_1;
hence C . i is Function of ({|B,B|} . i),({|B|} . i) by A25, A26; ::_thesis: verum
end;
then reconsider C = C as ManySortedFunction of {|B,B|},{|B|} by PBOOLE:def_15;
set alt = AltCatStr(# F1(),B,C #);
AltCatStr(# F1(),B,C #) is transitive
proof
let o1, o2, o3 be object of AltCatStr(# F1(),B,C #); :: according to ALTCAT_1:def_2 ::_thesis: ( <^o1,o2^> = {} or <^o2,o3^> = {} or not <^o1,o3^> = {} )
reconsider a = o1, b = o2, c = o3 as Element of F1() ;
set f = the Element of <^o1,o2^>;
set g = the Element of <^o2,o3^>;
assume that
A27: <^o1,o2^> <> {} and
A28: <^o2,o3^> <> {} ; ::_thesis: not <^o1,o3^> = {}
A29: the Element of <^o1,o2^> in <^o1,o2^> by A27;
A30: the Element of <^o2,o3^> in <^o2,o3^> by A28;
A31: the Element of <^o1,o2^> in F2(a,b) by A2, A29;
the Element of <^o2,o3^> in F2(b,c) by A2, A30;
then F3(a,b,c, the Element of <^o1,o2^>, the Element of <^o2,o3^>) in F2(a,c) by A1, A31;
hence not <^o1,o3^> = {} by A2; ::_thesis: verum
end;
then reconsider alt = AltCatStr(# F1(),B,C #) as non empty transitive strict AltCatStr ;
take alt ; ::_thesis: ( the carrier of alt = F1() & ( for a, b being object of alt holds <^a,b^> = F2(a,b) ) & ( for a, b, c being object of alt st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) )
thus the carrier of alt = F1() ; ::_thesis: ( ( for a, b being object of alt holds <^a,b^> = F2(a,b) ) & ( for a, b, c being object of alt st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) )
thus for a, b being object of alt holds <^a,b^> = F2(a,b) by A2; ::_thesis: for a, b, c being object of alt st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g)
let a, b, c be object of alt; ::_thesis: ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) )
assume that
A32: <^a,b^> <> {} and
A33: <^b,c^> <> {} ; ::_thesis: for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g)
[a,b,c] in [:F1(),F1(),F1():] by MCART_1:69;
then consider a9, b9, c9 being Element of F1(), F being Function of ({|B,B|} . (a9,b9,c9)),({|B|} . (a9,b9,c9)) such that
A34: [a,b,c] = [a9,b9,c9] and
A35: C . [a,b,c] = F and
A36: for f, g being set st f in F2(a9,b9) & g in F2(b9,c9) holds
F . [g,f] = F3(a9,b9,c9,f,g) by A23;
A37: a = a9 by A34, XTUPLE_0:3;
A38: b = b9 by A34, XTUPLE_0:3;
A39: c = c9 by A34, XTUPLE_0:3;
let f be Morphism of a,b; ::_thesis: for g being Morphism of b,c holds g * f = F3(a,b,c,f,g)
let g be Morphism of b,c; ::_thesis: g * f = F3(a,b,c,f,g)
A40: <^a,b^> = F2(a,b) by A2;
<^b,c^> = F2(b,c) by A2;
then A41: F . [g,f] = F3(a,b,c,f,g) by A32, A33, A36, A37, A38, A39, A40;
thus g * f = ( the Comp of alt . (a,b,c)) . (g,f) by A32, A33, ALTCAT_1:def_8
.= F3(a,b,c,f,g) by A35, A41, MULTOP_1:def_1 ; ::_thesis: verum
end;
scheme :: YELLOW18:sch 2
CatAssocSch{ F1() -> non empty transitive AltCatStr , F2( set , set , set , set , set ) -> set } :
F1() is associative
provided
A1: for a, b, c being object of F1() st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F2(a,b,c,f,g) and
A2: for a, b, c, d being object of F1()
for f, g, h being set st f in <^a,b^> & g in <^b,c^> & h in <^c,d^> holds
F2(a,c,d,F2(a,b,c,f,g),h) = F2(a,b,d,f,F2(b,c,d,g,h))
proof
let i, j, k, l be Element of F1(); :: according to ALTCAT_1:def_5,ALTCAT_1:def_15 ::_thesis: for b1, b2, b3 being set holds
( not b1 in the Arrows of F1() . (i,j) or not b2 in the Arrows of F1() . (j,k) or not b3 in the Arrows of F1() . (k,l) or ( the Comp of F1() . (i,k,l)) . (b3,(( the Comp of F1() . (i,j,k)) . (b2,b1))) = ( the Comp of F1() . (i,j,l)) . ((( the Comp of F1() . (j,k,l)) . (b3,b2)),b1) )
set alt = F1();
set IT = the Comp of F1();
set B = the Arrows of F1();
reconsider i9 = i, j9 = j, k9 = k, l9 = l as object of F1() ;
let f, g, h be set ; ::_thesis: ( not f in the Arrows of F1() . (i,j) or not g in the Arrows of F1() . (j,k) or not h in the Arrows of F1() . (k,l) or ( the Comp of F1() . (i,k,l)) . (h,(( the Comp of F1() . (i,j,k)) . (g,f))) = ( the Comp of F1() . (i,j,l)) . ((( the Comp of F1() . (j,k,l)) . (h,g)),f) )
assume that
A3: f in the Arrows of F1() . (i,j) and
A4: g in the Arrows of F1() . (j,k) and
A5: h in the Arrows of F1() . (k,l) ; ::_thesis: ( the Comp of F1() . (i,k,l)) . (h,(( the Comp of F1() . (i,j,k)) . (g,f))) = ( the Comp of F1() . (i,j,l)) . ((( the Comp of F1() . (j,k,l)) . (h,g)),f)
A6: the Arrows of F1() . (i,j) = <^i9,j9^> ;
reconsider f9 = f as Morphism of i9,j9 by A3;
A7: the Arrows of F1() . (j,k) = <^j9,k9^> ;
reconsider g9 = g as Morphism of j9,k9 by A4;
A8: the Arrows of F1() . (k,l) = <^k9,l9^> ;
reconsider h9 = h as Morphism of k9,l9 by A5;
A9: <^i9,k9^> <> {} by A3, A4, A6, A7, ALTCAT_1:def_2;
A10: <^j9,l9^> <> {} by A4, A5, A7, A8, ALTCAT_1:def_2;
thus ( the Comp of F1() . (i,k,l)) . (h,(( the Comp of F1() . (i,j,k)) . (g,f))) = ( the Comp of F1() . (i,k,l)) . (h,(g9 * f9)) by A3, A4, ALTCAT_1:def_8
.= h9 * (g9 * f9) by A5, A9, ALTCAT_1:def_8
.= F2(i,k,l,(g9 * f9),h9) by A1, A5, A9
.= F2(i,k,l,F2(i,j,k,f,g),h) by A1, A3, A4
.= F2(i9,j9,l9,f,F2(j9,k9,l9,g,h)) by A2, A3, A4, A5, A6, A7, A8
.= F2(i9,j9,l9,f,(h9 * g9)) by A1, A4, A5
.= (h9 * g9) * f9 by A1, A3, A10
.= ( the Comp of F1() . (i,j,l)) . ((h9 * g9),f) by A3, A10, ALTCAT_1:def_8
.= ( the Comp of F1() . (i,j,l)) . ((( the Comp of F1() . (j,k,l)) . (h,g)),f) by A4, A5, ALTCAT_1:def_8 ; ::_thesis: verum
end;
scheme :: YELLOW18:sch 3
CatUnitsSch{ F1() -> non empty transitive AltCatStr , F2( set , set , set , set , set ) -> set } :
F1() is with_units
provided
A1: for a, b, c being object of F1() st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F2(a,b,c,f,g) and
A2: for a being object of F1() ex f being set st
( f in <^a,a^> & ( for b being object of F1()
for g being set st g in <^a,b^> holds
F2(a,a,b,f,g) = g ) ) and
A3: for a being object of F1() ex f being set st
( f in <^a,a^> & ( for b being object of F1()
for g being set st g in <^b,a^> holds
F2(b,a,a,g,f) = g ) )
proof
set alt = F1();
set IT = the Comp of F1();
set I = the carrier of F1();
set G = the Arrows of F1();
hereby :: according to ALTCAT_1:def_7,ALTCAT_1:def_16 ::_thesis: the Comp of F1() is with_right_units
let j be Element of the carrier of F1(); ::_thesis: ex f being set st
( f in the Arrows of F1() . (j,j) & ( for i being Element of the carrier of F1()
for g being set st g in the Arrows of F1() . (i,j) holds
( the Comp of F1() . (i,j,j)) . (f,g) = g ) )
reconsider j9 = j as object of F1() ;
consider f being set such that
A4: f in <^j9,j9^> and
A5: for b being Element of F1()
for g being set st g in <^b,j9^> holds
F2(b,j9,j9,g,f) = g by A3;
take f = f; ::_thesis: ( f in the Arrows of F1() . (j,j) & ( for i being Element of the carrier of F1()
for g being set st g in the Arrows of F1() . (i,j) holds
( the Comp of F1() . (i,j,j)) . (f,g) = g ) )
thus f in the Arrows of F1() . (j,j) by A4; ::_thesis: for i being Element of the carrier of F1()
for g being set st g in the Arrows of F1() . (i,j) holds
( the Comp of F1() . (i,j,j)) . (f,g) = g
let i be Element of the carrier of F1(); ::_thesis: for g being set st g in the Arrows of F1() . (i,j) holds
( the Comp of F1() . (i,j,j)) . (f,g) = g
let g be set ; ::_thesis: ( g in the Arrows of F1() . (i,j) implies ( the Comp of F1() . (i,j,j)) . (f,g) = g )
assume A6: g in the Arrows of F1() . (i,j) ; ::_thesis: ( the Comp of F1() . (i,j,j)) . (f,g) = g
reconsider i9 = i as object of F1() ;
the Arrows of F1() . (i,j) = <^i9,j9^> ;
then A7: F2(i,j,j,g,f) = g by A5, A6;
reconsider f9 = f as Morphism of j9,j9 by A4;
reconsider g9 = g as Morphism of i9,j9 by A6;
thus ( the Comp of F1() . (i,j,j)) . (f,g) = f9 * g9 by A4, A6, ALTCAT_1:def_8
.= g by A1, A4, A6, A7 ; ::_thesis: verum
end;
let i be Element of the carrier of F1(); :: according to ALTCAT_1:def_6 ::_thesis: ex b1 being set st
( b1 in the Arrows of F1() . (i,i) & ( for b2 being Element of the carrier of F1()
for b3 being set holds
( not b3 in the Arrows of F1() . (i,b2) or ( the Comp of F1() . (i,i,b2)) . (b3,b1) = b3 ) ) )
reconsider i9 = i as object of F1() ;
consider e being set such that
A8: e in <^i9,i9^> and
A9: for b being Element of F1()
for g being set st g in <^i9,b^> holds
F2(i,i,b,e,g) = g by A2;
take e ; ::_thesis: ( e in the Arrows of F1() . (i,i) & ( for b1 being Element of the carrier of F1()
for b2 being set holds
( not b2 in the Arrows of F1() . (i,b1) or ( the Comp of F1() . (i,i,b1)) . (b2,e) = b2 ) ) )
thus e in the Arrows of F1() . (i,i) by A8; ::_thesis: for b1 being Element of the carrier of F1()
for b2 being set holds
( not b2 in the Arrows of F1() . (i,b1) or ( the Comp of F1() . (i,i,b1)) . (b2,e) = b2 )
reconsider e9 = e as Morphism of i9,i9 by A8;
let j be Element of the carrier of F1(); ::_thesis: for b1 being set holds
( not b1 in the Arrows of F1() . (i,j) or ( the Comp of F1() . (i,i,j)) . (b1,e) = b1 )
let f be set ; ::_thesis: ( not f in the Arrows of F1() . (i,j) or ( the Comp of F1() . (i,i,j)) . (f,e) = f )
assume A10: f in the Arrows of F1() . (i,j) ; ::_thesis: ( the Comp of F1() . (i,i,j)) . (f,e) = f
reconsider j9 = j as object of F1() ;
the Arrows of F1() . (i,j) = <^i9,j9^> ;
then A11: F2(i,i,j,e,f) = f by A9, A10;
reconsider f9 = f as Morphism of i9,j9 by A10;
thus ( the Comp of F1() . (i,i,j)) . (f,e) = f9 * e9 by A8, A10, ALTCAT_1:def_8
.= f by A1, A8, A10, A11 ; ::_thesis: verum
end;
scheme :: YELLOW18:sch 4
CategoryLambda{ F1() -> non empty set , F2( set , set ) -> set , F3( set , set , set , set , set ) -> set } :
ex C being strict category st
( the carrier of C = F1() & ( for a, b being object of C holds <^a,b^> = F2(a,b) ) & ( for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) )
provided
A1: for a, b, c being Element of F1()
for f, g being set st f in F2(a,b) & g in F2(b,c) holds
F3(a,b,c,f,g) in F2(a,c) and
A2: for a, b, c, d being Element of F1()
for f, g, h being set st f in F2(a,b) & g in F2(b,c) & h in F2(c,d) holds
F3(a,c,d,F3(a,b,c,f,g),h) = F3(a,b,d,f,F3(b,c,d,g,h)) and
A3: for a being Element of F1() ex f being set st
( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(a,b) holds
F3(a,a,b,f,g) = g ) ) and
A4: for a being Element of F1() ex f being set st
( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(b,a) holds
F3(b,a,a,g,f) = g ) )
proof
deffunc H1( set , set , set , set , set ) -> set = F3($1,$2,$3,$4,$5);
A5: for a, b, c being Element of F1()
for f, g being set st f in F2(a,b) & g in F2(b,c) holds
H1(a,b,c,f,g) in F2(a,c) by A1;
consider C being non empty transitive strict AltCatStr such that
A6: the carrier of C = F1() and
A7: for a, b being object of C holds <^a,b^> = F2(a,b) and
A8: for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H1(a,b,c,f,g) from YELLOW18:sch_1(A5);
A9: for a, b, c, d being object of C
for f, g, h being set st f in <^a,b^> & g in <^b,c^> & h in <^c,d^> holds
H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h))
proof
let a, b, c, d be object of C; ::_thesis: for f, g, h being set st f in <^a,b^> & g in <^b,c^> & h in <^c,d^> holds
H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h))
let f, g, h be set ; ::_thesis: ( f in <^a,b^> & g in <^b,c^> & h in <^c,d^> implies H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h)) )
assume that
A10: f in <^a,b^> and
A11: g in <^b,c^> and
A12: h in <^c,d^> ; ::_thesis: H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h))
A13: <^a,b^> = F2(a,b) by A7;
A14: <^b,c^> = F2(b,c) by A7;
<^c,d^> = F2(c,d) by A7;
hence H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h)) by A2, A6, A10, A11, A12, A13, A14; ::_thesis: verum
end;
A15: for a being object of C ex f being set st
( f in <^a,a^> & ( for b being object of C
for g being set st g in <^a,b^> holds
H1(a,a,b,f,g) = g ) )
proof
let a be object of C; ::_thesis: ex f being set st
( f in <^a,a^> & ( for b being object of C
for g being set st g in <^a,b^> holds
H1(a,a,b,f,g) = g ) )
consider f being set such that
A16: f in F2(a,a) and
A17: for b being Element of F1()
for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = g by A3, A6;
take f ; ::_thesis: ( f in <^a,a^> & ( for b being object of C
for g being set st g in <^a,b^> holds
H1(a,a,b,f,g) = g ) )
thus f in <^a,a^> by A7, A16; ::_thesis: for b being object of C
for g being set st g in <^a,b^> holds
H1(a,a,b,f,g) = g
let b be object of C; ::_thesis: for g being set st g in <^a,b^> holds
H1(a,a,b,f,g) = g
<^a,b^> = F2(a,b) by A7;
hence for g being set st g in <^a,b^> holds
H1(a,a,b,f,g) = g by A6, A17; ::_thesis: verum
end;
A18: for a being object of C ex f being set st
( f in <^a,a^> & ( for b being object of C
for g being set st g in <^b,a^> holds
H1(b,a,a,g,f) = g ) )
proof
let a be object of C; ::_thesis: ex f being set st
( f in <^a,a^> & ( for b being object of C
for g being set st g in <^b,a^> holds
H1(b,a,a,g,f) = g ) )
consider f being set such that
A19: f in F2(a,a) and
A20: for b being Element of F1()
for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = g by A4, A6;
take f ; ::_thesis: ( f in <^a,a^> & ( for b being object of C
for g being set st g in <^b,a^> holds
H1(b,a,a,g,f) = g ) )
thus f in <^a,a^> by A7, A19; ::_thesis: for b being object of C
for g being set st g in <^b,a^> holds
H1(b,a,a,g,f) = g
let b be object of C; ::_thesis: for g being set st g in <^b,a^> holds
H1(b,a,a,g,f) = g
<^b,a^> = F2(b,a) by A7;
hence for g being set st g in <^b,a^> holds
H1(b,a,a,g,f) = g by A6, A20; ::_thesis: verum
end;
A21: C is associative from YELLOW18:sch_2(A8, A9);
C is with_units from YELLOW18:sch_3(A8, A15, A18);
hence ex C being strict category st
( the carrier of C = F1() & ( for a, b being object of C holds <^a,b^> = F2(a,b) ) & ( for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) ) by A6, A7, A8, A21; ::_thesis: verum
end;
scheme :: YELLOW18:sch 5
CategoryLambdaUniq{ F1() -> non empty set , F2( set , set ) -> set , F3( set , set , set , set , set ) -> set } :
for C1, C2 being non empty transitive AltCatStr st the carrier of C1 = F1() & ( for a, b being object of C1 holds <^a,b^> = F2(a,b) ) & ( for a, b, c being object of C1 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) & the carrier of C2 = F1() & ( for a, b being object of C2 holds <^a,b^> = F2(a,b) ) & ( for a, b, c being object of C2 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) holds
AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #)
proof
let C1, C2 be non empty transitive AltCatStr ; ::_thesis: ( the carrier of C1 = F1() & ( for a, b being object of C1 holds <^a,b^> = F2(a,b) ) & ( for a, b, c being object of C1 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) & the carrier of C2 = F1() & ( for a, b being object of C2 holds <^a,b^> = F2(a,b) ) & ( for a, b, c being object of C2 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) implies AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) )
assume that
A1: the carrier of C1 = F1() and
A2: for a, b being object of C1 holds <^a,b^> = F2(a,b) and
A3: for a, b, c being object of C1 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) and
A4: the carrier of C2 = F1() and
A5: for a, b being object of C2 holds <^a,b^> = F2(a,b) and
A6: for a, b, c being object of C2 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ; ::_thesis: AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #)
A7: now__::_thesis:_for_i_being_set_st_i_in_[:F1(),F1():]_holds_
the_Arrows_of_C1_._i_=_the_Arrows_of_C2_._i
let i be set ; ::_thesis: ( i in [:F1(),F1():] implies the Arrows of C1 . i = the Arrows of C2 . i )
assume i in [:F1(),F1():] ; ::_thesis: the Arrows of C1 . i = the Arrows of C2 . i
then consider a, b being set such that
A8: a in F1() and
A9: b in F1() and
A10: i = [a,b] by ZFMISC_1:def_2;
reconsider a1 = a, b1 = b as object of C1 by A1, A8, A9;
reconsider a2 = a, b2 = b as object of C2 by A4, A8, A9;
thus the Arrows of C1 . i = <^a1,b1^> by A10
.= F2(a1,b1) by A2
.= <^a2,b2^> by A5
.= the Arrows of C2 . i by A10 ; ::_thesis: verum
end;
then A11: the Arrows of C1 = the Arrows of C2 by A1, A4, PBOOLE:3;
now__::_thesis:_for_i_being_set_st_i_in_[:F1(),F1(),F1():]_holds_
the_Comp_of_C1_._i_=_the_Comp_of_C2_._i
let i be set ; ::_thesis: ( i in [:F1(),F1(),F1():] implies the Comp of C1 . i = the Comp of C2 . i )
assume i in [:F1(),F1(),F1():] ; ::_thesis: the Comp of C1 . i = the Comp of C2 . i
then consider a, b, c being set such that
A12: a in F1() and
A13: b in F1() and
A14: c in F1() and
A15: i = [a,b,c] by MCART_1:68;
reconsider a1 = a, b1 = b, c1 = c as object of C1 by A1, A12, A13, A14;
reconsider a2 = a, b2 = b, c2 = c as object of C2 by A4, A12, A13, A14;
A16: the Comp of C1 . i = the Comp of C1 . (a1,b1,c1) by A15, MULTOP_1:def_1;
A17: the Comp of C2 . i = the Comp of C2 . (a2,b2,c2) by A15, MULTOP_1:def_1;
A18: now__::_thesis:_(_[:<^b1,c1^>,<^a1,b1^>:]_<>_{}_implies_<^a1,c1^>_<>_{}_)
assume A19: [:<^b1,c1^>,<^a1,b1^>:] <> {} ; ::_thesis: <^a1,c1^> <> {}
then A20: <^b1,c1^> <> {} by ZFMISC_1:90;
<^a1,b1^> <> {} by A19, ZFMISC_1:90;
hence <^a1,c1^> <> {} by A20, ALTCAT_1:def_2; ::_thesis: verum
end;
then A21: dom ( the Comp of C1 . (a1,b1,c1)) = [:<^b1,c1^>,<^a1,b1^>:] by FUNCT_2:def_1;
A22: dom ( the Comp of C2 . (a2,b2,c2)) = [:<^b1,c1^>,<^a1,b1^>:] by A11, A18, FUNCT_2:def_1;
now__::_thesis:_for_j_being_set_st_j_in_[:<^b1,c1^>,<^a1,b1^>:]_holds_
(_the_Comp_of_C1_._(a1,b1,c1))_._j_=_(_the_Comp_of_C2_._(a2,b2,c2))_._j
let j be set ; ::_thesis: ( j in [:<^b1,c1^>,<^a1,b1^>:] implies ( the Comp of C1 . (a1,b1,c1)) . j = ( the Comp of C2 . (a2,b2,c2)) . j )
assume j in [:<^b1,c1^>,<^a1,b1^>:] ; ::_thesis: ( the Comp of C1 . (a1,b1,c1)) . j = ( the Comp of C2 . (a2,b2,c2)) . j
then consider j1, j2 being set such that
A23: j1 in <^b1,c1^> and
A24: j2 in <^a1,b1^> and
A25: j = [j1,j2] by ZFMISC_1:def_2;
reconsider j1 = j1 as Morphism of b1,c1 by A23;
reconsider j2 = j2 as Morphism of a1,b1 by A24;
reconsider f1 = j1 as Morphism of b2,c2 by A1, A4, A7, PBOOLE:3;
reconsider f2 = j2 as Morphism of a2,b2 by A1, A4, A7, PBOOLE:3;
thus ( the Comp of C1 . (a1,b1,c1)) . j = ( the Comp of C1 . (a1,b1,c1)) . (j1,j2) by A25
.= j1 * j2 by A23, A24, ALTCAT_1:def_8
.= F3(a1,b1,c1,j2,j1) by A3, A23, A24
.= f1 * f2 by A6, A11, A23, A24
.= ( the Comp of C2 . (a2,b2,c2)) . (f1,f2) by A11, A23, A24, ALTCAT_1:def_8
.= ( the Comp of C2 . (a2,b2,c2)) . j by A25 ; ::_thesis: verum
end;
hence the Comp of C1 . i = the Comp of C2 . i by A16, A17, A21, A22, FUNCT_1:2; ::_thesis: verum
end;
hence AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) by A1, A4, A11, PBOOLE:3; ::_thesis: verum
end;
scheme :: YELLOW18:sch 6
CategoryQuasiLambda{ F1() -> non empty set , P1[ set , set , set ], F2( set , set ) -> set , F3( set , set , set , set , set ) -> set } :
ex C being strict category st
( the carrier of C = F1() & ( for a, b being object of C
for f being set holds
( f in <^a,b^> iff ( f in F2(a,b) & P1[a,b,f] ) ) ) & ( for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) )
provided
A1: for a, b, c being Element of F1()
for f, g being set st f in F2(a,b) & P1[a,b,f] & g in F2(b,c) & P1[b,c,g] holds
( F3(a,b,c,f,g) in F2(a,c) & P1[a,c,F3(a,b,c,f,g)] ) and
A2: for a, b, c, d being Element of F1()
for f, g, h being set st f in F2(a,b) & P1[a,b,f] & g in F2(b,c) & P1[b,c,g] & h in F2(c,d) & P1[c,d,h] holds
F3(a,c,d,F3(a,b,c,f,g),h) = F3(a,b,d,f,F3(b,c,d,g,h)) and
A3: for a being Element of F1() ex f being set st
( f in F2(a,a) & P1[a,a,f] & ( for b being Element of F1()
for g being set st g in F2(a,b) & P1[a,b,g] holds
F3(a,a,b,f,g) = g ) ) and
A4: for a being Element of F1() ex f being set st
( f in F2(a,a) & P1[a,a,f] & ( for b being Element of F1()
for g being set st g in F2(b,a) & P1[b,a,g] holds
F3(b,a,a,g,f) = g ) )
proof
deffunc H1( set ) -> set = F2(($1 `1),($1 `2));
defpred S1[ set , set ] means P1[$1 `1 ,$1 `2 ,$2];
deffunc H2( set , set , set , set , set ) -> set = F3($1,$2,$3,$4,$5);
consider P being Function such that
dom P = [:F1(),F1():] and
A5: for i being set st i in [:F1(),F1():] holds
for x being set holds
( x in P . i iff ( x in H1(i) & S1[i,x] ) ) from CARD_3:sch_2();
deffunc H3( set , set ) -> set = P . ($1,$2);
A6: now__::_thesis:_for_a,_b_being_Element_of_F1()
for_x_being_set_holds_
(_x_in_P_._(a,b)_iff_(_x_in_F2(a,b)_&_P1[a,b,x]_)_)
let a, b be Element of F1(); ::_thesis: for x being set holds
( x in P . (a,b) iff ( x in F2(a,b) & P1[a,b,x] ) )
let x be set ; ::_thesis: ( x in P . (a,b) iff ( x in F2(a,b) & P1[a,b,x] ) )
A7: [a,b] `1 = a ;
A8: [a,b] `2 = b ;
[a,b] in [:F1(),F1():] by ZFMISC_1:def_2;
hence ( x in P . (a,b) iff ( x in F2(a,b) & P1[a,b,x] ) ) by A5, A7, A8; ::_thesis: verum
end;
A9: now__::_thesis:_for_a,_b,_c_being_Element_of_F1()
for_f,_g_being_set_st_f_in_H3(a,b)_&_g_in_H3(b,c)_holds_
H2(a,b,c,f,g)_in_H3(a,c)
let a, b, c be Element of F1(); ::_thesis: for f, g being set st f in H3(a,b) & g in H3(b,c) holds
H2(a,b,c,f,g) in H3(a,c)
let f, g be set ; ::_thesis: ( f in H3(a,b) & g in H3(b,c) implies H2(a,b,c,f,g) in H3(a,c) )
assume that
A10: f in H3(a,b) and
A11: g in H3(b,c) ; ::_thesis: H2(a,b,c,f,g) in H3(a,c)
A12: f in F2(a,b) by A6, A10;
A13: P1[a,b,f] by A6, A10;
A14: g in F2(b,c) by A6, A11;
A15: P1[b,c,g] by A6, A11;
then A16: H2(a,b,c,f,g) in F2(a,c) by A1, A12, A13, A14;
P1[a,c,H2(a,b,c,f,g)] by A1, A12, A13, A14, A15;
hence H2(a,b,c,f,g) in H3(a,c) by A6, A16; ::_thesis: verum
end;
A17: now__::_thesis:_for_a,_b,_c,_d_being_Element_of_F1()
for_f,_g,_h_being_set_st_f_in_H3(a,b)_&_g_in_H3(b,c)_&_h_in_H3(c,d)_holds_
H2(a,c,d,H2(a,b,c,f,g),h)_=_H2(a,b,d,f,H2(b,c,d,g,h))
let a, b, c, d be Element of F1(); ::_thesis: for f, g, h being set st f in H3(a,b) & g in H3(b,c) & h in H3(c,d) holds
H2(a,c,d,H2(a,b,c,f,g),h) = H2(a,b,d,f,H2(b,c,d,g,h))
let f, g, h be set ; ::_thesis: ( f in H3(a,b) & g in H3(b,c) & h in H3(c,d) implies H2(a,c,d,H2(a,b,c,f,g),h) = H2(a,b,d,f,H2(b,c,d,g,h)) )
assume that
A18: f in H3(a,b) and
A19: g in H3(b,c) and
A20: h in H3(c,d) ; ::_thesis: H2(a,c,d,H2(a,b,c,f,g),h) = H2(a,b,d,f,H2(b,c,d,g,h))
A21: f in F2(a,b) by A6, A18;
A22: P1[a,b,f] by A6, A18;
A23: g in F2(b,c) by A6, A19;
A24: P1[b,c,g] by A6, A19;
A25: h in F2(c,d) by A6, A20;
P1[c,d,h] by A6, A20;
hence H2(a,c,d,H2(a,b,c,f,g),h) = H2(a,b,d,f,H2(b,c,d,g,h)) by A2, A21, A22, A23, A24, A25; ::_thesis: verum
end;
A26: now__::_thesis:_for_a_being_Element_of_F1()_ex_f_being_set_st_
(_f_in_H3(a,a)_&_(_for_b_being_Element_of_F1()
for_g_being_set_st_g_in_H3(a,b)_holds_
H2(a,a,b,f,g)_=_g_)_)
let a be Element of F1(); ::_thesis: ex f being set st
( f in H3(a,a) & ( for b being Element of F1()
for g being set st g in H3(a,b) holds
H2(a,a,b,f,g) = g ) )
consider f being set such that
A27: f in F2(a,a) and
A28: P1[a,a,f] and
A29: for b being Element of F1()
for g being set st g in F2(a,b) & P1[a,b,g] holds
H2(a,a,b,f,g) = g by A3;
take f = f; ::_thesis: ( f in H3(a,a) & ( for b being Element of F1()
for g being set st g in H3(a,b) holds
H2(a,a,b,f,g) = g ) )
thus f in H3(a,a) by A6, A27, A28; ::_thesis: for b being Element of F1()
for g being set st g in H3(a,b) holds
H2(a,a,b,f,g) = g
let b be Element of F1(); ::_thesis: for g being set st g in H3(a,b) holds
H2(a,a,b,f,g) = g
let g be set ; ::_thesis: ( g in H3(a,b) implies H2(a,a,b,f,g) = g )
assume A30: g in H3(a,b) ; ::_thesis: H2(a,a,b,f,g) = g
then A31: g in F2(a,b) by A6;
P1[a,b,g] by A6, A30;
hence H2(a,a,b,f,g) = g by A29, A31; ::_thesis: verum
end;
A32: now__::_thesis:_for_a_being_Element_of_F1()_ex_f_being_set_st_
(_f_in_H3(a,a)_&_(_for_b_being_Element_of_F1()
for_g_being_set_st_g_in_H3(b,a)_holds_
H2(b,a,a,g,f)_=_g_)_)
let a be Element of F1(); ::_thesis: ex f being set st
( f in H3(a,a) & ( for b being Element of F1()
for g being set st g in H3(b,a) holds
H2(b,a,a,g,f) = g ) )
consider f being set such that
A33: f in F2(a,a) and
A34: P1[a,a,f] and
A35: for b being Element of F1()
for g being set st g in F2(b,a) & P1[b,a,g] holds
H2(b,a,a,g,f) = g by A4;
take f = f; ::_thesis: ( f in H3(a,a) & ( for b being Element of F1()
for g being set st g in H3(b,a) holds
H2(b,a,a,g,f) = g ) )
thus f in H3(a,a) by A6, A33, A34; ::_thesis: for b being Element of F1()
for g being set st g in H3(b,a) holds
H2(b,a,a,g,f) = g
let b be Element of F1(); ::_thesis: for g being set st g in H3(b,a) holds
H2(b,a,a,g,f) = g
let g be set ; ::_thesis: ( g in H3(b,a) implies H2(b,a,a,g,f) = g )
assume A36: g in H3(b,a) ; ::_thesis: H2(b,a,a,g,f) = g
then A37: g in F2(b,a) by A6;
P1[b,a,g] by A6, A36;
hence H2(b,a,a,g,f) = g by A35, A37; ::_thesis: verum
end;
consider C being strict category such that
A38: the carrier of C = F1() and
A39: for a, b being object of C holds <^a,b^> = H3(a,b) and
A40: for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H2(a,b,c,f,g) from YELLOW18:sch_4(A9, A17, A26, A32);
take C ; ::_thesis: ( the carrier of C = F1() & ( for a, b being object of C
for f being set holds
( f in <^a,b^> iff ( f in F2(a,b) & P1[a,b,f] ) ) ) & ( for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) )
thus the carrier of C = F1() by A38; ::_thesis: ( ( for a, b being object of C
for f being set holds
( f in <^a,b^> iff ( f in F2(a,b) & P1[a,b,f] ) ) ) & ( for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) ) )
hereby ::_thesis: for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g)
let a, b be object of C; ::_thesis: for f being set holds
( f in <^a,b^> iff ( f in F2(a,b) & P1[a,b,f] ) )
let f be set ; ::_thesis: ( f in <^a,b^> iff ( f in F2(a,b) & P1[a,b,f] ) )
<^a,b^> = P . (a,b) by A39;
hence ( f in <^a,b^> iff ( f in F2(a,b) & P1[a,b,f] ) ) by A6, A38; ::_thesis: verum
end;
thus for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = F3(a,b,c,f,g) by A40; ::_thesis: verum
end;
registration
let f be Function-yielding Function;
let a, b, c be set ;
clusterf . (a,b,c) -> Relation-like Function-like ;
coherence
( f . (a,b,c) is Relation-like & f . (a,b,c) is Function-like )
proof
f . (a,b,c) = f . [a,b,c] by MULTOP_1:def_1;
hence ( f . (a,b,c) is Relation-like & f . (a,b,c) is Function-like ) ; ::_thesis: verum
end;
end;
scheme :: YELLOW18:sch 7
SubcategoryEx{ F1() -> category, P1[ set ], P2[ set , set , set ] } :
ex B being non empty strict subcategory of F1() st
( ( for a being object of F1() holds
( a is object of B iff P1[a] ) ) & ( for a, b being object of F1()
for a9, b9 being object of B st a9 = a & b9 = b & <^a,b^> <> {} holds
for f being Morphism of a,b holds
( f in <^a9,b9^> iff P2[a,b,f] ) ) )
provided
A1: ex a being object of F1() st P1[a] and
A2: for a, b, c being object of F1() st P1[a] & P1[b] & P1[c] & <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c st P2[a,b,f] & P2[b,c,g] holds
P2[a,c,g * f] and
A3: for a being object of F1() st P1[a] holds
P2[a,a, idm a]
proof
consider X being set such that
A4: for x being set holds
( x in X iff ( x in the carrier of F1() & P1[x] ) ) from XBOOLE_0:sch_1();
reconsider X = X as non empty set by A1, A4;
A5: X c= the carrier of F1()
proof
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in X or x in the carrier of F1() )
thus ( not x in X or x in the carrier of F1() ) by A4; ::_thesis: verum
end;
deffunc H1( set , set ) -> set = the Arrows of F1() . ($1,$2);
deffunc H2( set , set , set , set , set ) -> set = ( the Comp of F1() . ($1,$2,$3)) . ($5,$4);
A6: now__::_thesis:_for_a,_b,_c_being_Element_of_X
for_f,_g_being_set_st_f_in_H1(a,b)_&_P2[a,b,f]_&_g_in_H1(b,c)_&_P2[b,c,g]_holds_
(_H2(a,b,c,f,g)_in_H1(a,c)_&_P2[a,c,H2(a,b,c,f,g)]_)
let a, b, c be Element of X; ::_thesis: for f, g being set st f in H1(a,b) & P2[a,b,f] & g in H1(b,c) & P2[b,c,g] holds
( H2(a,b,c,f,g) in H1(a,c) & P2[a,c,H2(a,b,c,f,g)] )
let f, g be set ; ::_thesis: ( f in H1(a,b) & P2[a,b,f] & g in H1(b,c) & P2[b,c,g] implies ( H2(a,b,c,f,g) in H1(a,c) & P2[a,c,H2(a,b,c,f,g)] ) )
assume that
A7: f in H1(a,b) and
A8: P2[a,b,f] and
A9: g in H1(b,c) and
A10: P2[b,c,g] ; ::_thesis: ( H2(a,b,c,f,g) in H1(a,c) & P2[a,c,H2(a,b,c,f,g)] )
reconsider a9 = a, b9 = b, c9 = c as object of F1() by A4;
A11: H1(a,b) = <^a9,b9^> ;
reconsider f9 = f as Morphism of a9,b9 by A7;
A12: H1(b,c) = <^b9,c9^> ;
reconsider g9 = g as Morphism of b9,c9 by A9;
A13: H2(a,b,c,f,g) = g9 * f9 by A7, A9, ALTCAT_1:def_8;
<^a9,c9^> <> {} by A7, A9, A11, A12, ALTCAT_1:def_2;
hence H2(a,b,c,f,g) in H1(a,c) by A13; ::_thesis: P2[a,c,H2(a,b,c,f,g)]
A14: P1[a9] by A4;
A15: P1[b9] by A4;
P1[c9] by A4;
hence P2[a,c,H2(a,b,c,f,g)] by A2, A7, A8, A9, A10, A13, A14, A15; ::_thesis: verum
end;
A16: now__::_thesis:_for_a,_b,_c,_d_being_Element_of_X
for_f,_g,_h_being_set_st_f_in_H1(a,b)_&_P2[a,b,f]_&_g_in_H1(b,c)_&_P2[b,c,g]_&_h_in_H1(c,d)_&_P2[c,d,h]_holds_
H2(a,c,d,H2(a,b,c,f,g),h)_=_H2(a,b,d,f,H2(b,c,d,g,h))
let a, b, c, d be Element of X; ::_thesis: for f, g, h being set st f in H1(a,b) & P2[a,b,f] & g in H1(b,c) & P2[b,c,g] & h in H1(c,d) & P2[c,d,h] holds
H2(a,c,d,H2(a,b,c,f,g),h) = H2(a,b,d,f,H2(b,c,d,g,h))
let f, g, h be set ; ::_thesis: ( f in H1(a,b) & P2[a,b,f] & g in H1(b,c) & P2[b,c,g] & h in H1(c,d) & P2[c,d,h] implies H2(a,c,d,H2(a,b,c,f,g),h) = H2(a,b,d,f,H2(b,c,d,g,h)) )
assume that
A17: f in H1(a,b) and
P2[a,b,f] and
A18: g in H1(b,c) and
P2[b,c,g] and
A19: h in H1(c,d) and
P2[c,d,h] ; ::_thesis: H2(a,c,d,H2(a,b,c,f,g),h) = H2(a,b,d,f,H2(b,c,d,g,h))
reconsider a9 = a, b9 = b, c9 = c, d9 = d as object of F1() by A4;
A20: H1(a,b) = <^a9,b9^> ;
reconsider f9 = f as Morphism of a9,b9 by A17;
A21: H1(b,c) = <^b9,c9^> ;
reconsider g9 = g as Morphism of b9,c9 by A18;
A22: H1(c,d) = <^c9,d9^> ;
reconsider h9 = h as Morphism of c9,d9 by A19;
A23: <^a9,c9^> <> {} by A17, A18, A20, A21, ALTCAT_1:def_2;
A24: <^b9,d9^> <> {} by A18, A19, A21, A22, ALTCAT_1:def_2;
thus H2(a,c,d,H2(a,b,c,f,g),h) = H2(a9,c9,d9,g9 * f9,h) by A17, A18, ALTCAT_1:def_8
.= h9 * (g9 * f9) by A19, A23, ALTCAT_1:def_8
.= (h9 * g9) * f9 by A17, A18, A19, ALTCAT_1:21
.= H2(a,b,d,f,h9 * g9) by A17, A24, ALTCAT_1:def_8
.= H2(a,b,d,f,H2(b,c,d,g,h)) by A18, A19, ALTCAT_1:def_8 ; ::_thesis: verum
end;
A25: now__::_thesis:_for_a_being_Element_of_X_ex_f_being_set_st_
(_f_in_H1(a,a)_&_P2[a,a,f]_&_(_for_c_being_Element_of_X
for_g_being_set_st_g_in_H1(a,c)_&_P2[a,c,g]_holds_
H2(a,a,c,f,g)_=_g_)_)
let a be Element of X; ::_thesis: ex f being set st
( f in H1(a,a) & P2[a,a,f] & ( for c being Element of X
for g being set st g in H1(a,c) & P2[a,c,g] holds
H2(a,a,c,f,g) = g ) )
reconsider b = a as object of F1() by A4;
reconsider f = idm b as set ;
take f = f; ::_thesis: ( f in H1(a,a) & P2[a,a,f] & ( for c being Element of X
for g being set st g in H1(a,c) & P2[a,c,g] holds
H2(a,a,c,f,g) = g ) )
P1[b] by A4;
hence ( f in H1(a,a) & P2[a,a,f] ) by A3; ::_thesis: for c being Element of X
for g being set st g in H1(a,c) & P2[a,c,g] holds
H2(a,a,c,f,g) = g
let c be Element of X; ::_thesis: for g being set st g in H1(a,c) & P2[a,c,g] holds
H2(a,a,c,f,g) = g
let g be set ; ::_thesis: ( g in H1(a,c) & P2[a,c,g] implies H2(a,a,c,f,g) = g )
assume that
A26: g in H1(a,c) and
P2[a,c,g] ; ::_thesis: H2(a,a,c,f,g) = g
reconsider d = c as object of F1() by A4;
reconsider g9 = g as Morphism of b,d by A26;
thus H2(a,a,c,f,g) = g9 * (idm b) by A26, ALTCAT_1:def_8
.= g by A26, ALTCAT_1:def_17 ; ::_thesis: verum
end;
A27: now__::_thesis:_for_a_being_Element_of_X_ex_f_being_set_st_
(_f_in_H1(a,a)_&_P2[a,a,f]_&_(_for_c_being_Element_of_X
for_g_being_set_st_g_in_H1(c,a)_&_P2[c,a,g]_holds_
H2(c,a,a,g,f)_=_g_)_)
let a be Element of X; ::_thesis: ex f being set st
( f in H1(a,a) & P2[a,a,f] & ( for c being Element of X
for g being set st g in H1(c,a) & P2[c,a,g] holds
H2(c,a,a,g,f) = g ) )
reconsider b = a as object of F1() by A4;
reconsider f = idm b as set ;
take f = f; ::_thesis: ( f in H1(a,a) & P2[a,a,f] & ( for c being Element of X
for g being set st g in H1(c,a) & P2[c,a,g] holds
H2(c,a,a,g,f) = g ) )
P1[b] by A4;
hence ( f in H1(a,a) & P2[a,a,f] ) by A3; ::_thesis: for c being Element of X
for g being set st g in H1(c,a) & P2[c,a,g] holds
H2(c,a,a,g,f) = g
let c be Element of X; ::_thesis: for g being set st g in H1(c,a) & P2[c,a,g] holds
H2(c,a,a,g,f) = g
let g be set ; ::_thesis: ( g in H1(c,a) & P2[c,a,g] implies H2(c,a,a,g,f) = g )
assume that
A28: g in H1(c,a) and
P2[c,a,g] ; ::_thesis: H2(c,a,a,g,f) = g
reconsider d = c as object of F1() by A4;
reconsider g9 = g as Morphism of d,b by A28;
thus H2(c,a,a,g,f) = (idm b) * g9 by A28, ALTCAT_1:def_8
.= g by A28, ALTCAT_1:20 ; ::_thesis: verum
end;
consider C being strict category such that
A29: the carrier of C = X and
A30: for a, b being object of C
for f being set holds
( f in <^a,b^> iff ( f in H1(a,b) & P2[a,b,f] ) ) and
A31: for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H2(a,b,c,f,g) from YELLOW18:sch_6(A6, A16, A25, A27);
C is SubCatStr of F1()
proof
thus the carrier of C c= the carrier of F1() by A5, A29; :: according to ALTCAT_2:def_11 ::_thesis: ( the Arrows of C cc= the Arrows of F1() & the Comp of C cc= the Comp of F1() )
thus [: the carrier of C, the carrier of C:] c= [: the carrier of F1(), the carrier of F1():] by A5, A29, ZFMISC_1:96; :: according to ALTCAT_2:def_2 ::_thesis: ( ( for b1 being set holds
( not b1 in [: the carrier of C, the carrier of C:] or the Arrows of C . b1 c= the Arrows of F1() . b1 ) ) & the Comp of C cc= the Comp of F1() )
hereby ::_thesis: the Comp of C cc= the Comp of F1()
let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of C . i c= the Arrows of F1() . i )
assume i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of C . i c= the Arrows of F1() . i
then consider a, b being set such that
A32: a in the carrier of C and
A33: b in the carrier of C and
A34: [a,b] = i by ZFMISC_1:def_2;
reconsider a = a, b = b as object of C by A32, A33;
A35: the Arrows of C . i = <^a,b^> by A34;
A36: the Arrows of F1() . i = the Arrows of F1() . (a,b) by A34;
thus the Arrows of C . i c= the Arrows of F1() . i ::_thesis: verum
proof
let f be set ; :: according to TARSKI:def_3 ::_thesis: ( not f in the Arrows of C . i or f in the Arrows of F1() . i )
thus ( not f in the Arrows of C . i or f in the Arrows of F1() . i ) by A30, A35, A36; ::_thesis: verum
end;
end;
thus [: the carrier of C, the carrier of C, the carrier of C:] c= [: the carrier of F1(), the carrier of F1(), the carrier of F1():] by A5, A29, MCART_1:73; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds
( not b1 in [: the carrier of C, the carrier of C, the carrier of C:] or the Comp of C . b1 c= the Comp of F1() . b1 )
let i be set ; ::_thesis: ( not i in [: the carrier of C, the carrier of C, the carrier of C:] or the Comp of C . i c= the Comp of F1() . i )
assume i in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: the Comp of C . i c= the Comp of F1() . i
then consider a, b, c being set such that
A37: a in the carrier of C and
A38: b in the carrier of C and
A39: c in the carrier of C and
A40: [a,b,c] = i by MCART_1:68;
reconsider a = a, b = b, c = c as object of C by A37, A38, A39;
reconsider a9 = a, b9 = b, c9 = c as object of F1() by A4, A29;
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in the Comp of C . i or x in the Comp of F1() . i )
assume x in the Comp of C . i ; ::_thesis: x in the Comp of F1() . i
then A41: x in the Comp of C . (a,b,c) by A40, MULTOP_1:def_1;
then consider gf, h being set such that
A42: x = [gf,h] and
A43: gf in [:( the Arrows of C . (b,c)),( the Arrows of C . (a,b)):] and
A44: h in the Arrows of C . (a,c) by RELSET_1:2;
consider g, f being set such that
A45: g in the Arrows of C . (b,c) and
A46: f in the Arrows of C . (a,b) and
A47: [g,f] = gf by A43, ZFMISC_1:def_2;
reconsider f = f as Morphism of a,b by A46;
reconsider g = g as Morphism of b,c by A45;
reconsider h = h as Morphism of a,c by A44;
A48: the Comp of F1() . (a9,b9,c9) = the Comp of F1() . i by A40, MULTOP_1:def_1;
A49: g in the Arrows of F1() . (b9,c9) by A30, A45;
A50: f in the Arrows of F1() . (a9,b9) by A30, A46;
A51: h = ( the Comp of C . (a,b,c)) . (g,f) by A41, A42, A47, FUNCT_1:1
.= g * f by A45, A46, ALTCAT_1:def_8
.= ( the Comp of F1() . (a9,b9,c9)) . (g,f) by A31, A45, A46 ;
h in the Arrows of F1() . (a9,c9) by A30, A44;
then dom ( the Comp of F1() . (a9,b9,c9)) = [:( the Arrows of F1() . (b9,c9)),( the Arrows of F1() . (a9,b9)):] by FUNCT_2:def_1;
then gf in dom ( the Comp of F1() . (a9,b9,c9)) by A47, A49, A50, ZFMISC_1:def_2;
hence x in the Comp of F1() . i by A42, A47, A48, A51, FUNCT_1:def_2; ::_thesis: verum
end;
then reconsider C = C as non empty SubCatStr of F1() ;
for o being object of C
for o9 being object of F1() st o = o9 holds
idm o9 in <^o,o^>
proof
let a be object of C; ::_thesis: for o9 being object of F1() st a = o9 holds
idm o9 in <^a,a^>
let b be object of F1(); ::_thesis: ( a = b implies idm b in <^a,a^> )
assume A52: a = b ; ::_thesis: idm b in <^a,a^>
then P1[b] by A4, A29;
then P2[b,b, idm b] by A3;
hence idm b in <^a,a^> by A30, A52; ::_thesis: verum
end;
then reconsider C = C as non empty strict subcategory of F1() by ALTCAT_2:def_14;
take C ; ::_thesis: ( ( for a being object of F1() holds
( a is object of C iff P1[a] ) ) & ( for a, b being object of F1()
for a9, b9 being object of C st a9 = a & b9 = b & <^a,b^> <> {} holds
for f being Morphism of a,b holds
( f in <^a9,b9^> iff P2[a,b,f] ) ) )
thus for a being object of F1() holds
( a is object of C iff P1[a] ) by A4, A29; ::_thesis: for a, b being object of F1()
for a9, b9 being object of C st a9 = a & b9 = b & <^a,b^> <> {} holds
for f being Morphism of a,b holds
( f in <^a9,b9^> iff P2[a,b,f] )
let a, b be object of F1(); ::_thesis: for a9, b9 being object of C st a9 = a & b9 = b & <^a,b^> <> {} holds
for f being Morphism of a,b holds
( f in <^a9,b9^> iff P2[a,b,f] )
let a9, b9 be object of C; ::_thesis: ( a9 = a & b9 = b & <^a,b^> <> {} implies for f being Morphism of a,b holds
( f in <^a9,b9^> iff P2[a,b,f] ) )
assume that
A53: a9 = a and
A54: b9 = b and
A55: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds
( f in <^a9,b9^> iff P2[a,b,f] )
let f be Morphism of a,b; ::_thesis: ( f in <^a9,b9^> iff P2[a,b,f] )
thus ( f in <^a9,b9^> iff P2[a,b,f] ) by A30, A53, A54, A55; ::_thesis: verum
end;
scheme :: YELLOW18:sch 8
CovariantFunctorLambda{ F1() -> category, F2() -> category, F3( set ) -> set , F4( set , set , set ) -> set } :
ex F being strict covariant Functor of F1(),F2() st
( ( 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) ) )
provided
A1: for a being object of F1() holds F3(a) is object of F2() and
A2: for a, b being object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b holds F4(a,b,f) in the Arrows of F2() . (F3(a),F3(b)) and
A3: for a, b, c being object of F1() st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c
for a9, b9, c9 being object of F2() st a9 = F3(a) & b9 = F3(b) & c9 = F3(c) holds
for f9 being Morphism of a9,b9
for g9 being Morphism of b9,c9 st f9 = F4(a,b,f) & g9 = F4(b,c,g) holds
F4(a,c,(g * f)) = g9 * f9 and
A4: for a being object of F1()
for a9 being object of F2() st a9 = F3(a) holds
F4(a,a,(idm a)) = idm a9
proof
consider O being Function such that
A5: dom O = the carrier of F1() and
A6: for x being set st x in the carrier of F1() holds
O . x = F3(x) from FUNCT_1:sch_3();
rng O c= the carrier of F2()
proof
let y be set ; :: according to TARSKI:def_3 ::_thesis: ( not y in rng O or y in the carrier of F2() )
assume y in rng O ; ::_thesis: y in the carrier of F2()
then consider x being set such that
A7: x in dom O and
A8: y = O . x by FUNCT_1:def_3;
reconsider x = x as object of F1() by A5, A7;
A9: y = F3(x) by A6, A8;
F3(x) is object of F2() by A1;
hence y in the carrier of F2() by A9; ::_thesis: verum
end;
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() ;
defpred S1[ set , set , set ] means $1 = F4(($3 `1),($3 `2),$2);
A10: for i being set st i in [: the carrier of F1(), the carrier of F1():] holds
for x being set st x in the Arrows of F1() . i holds
ex y being set st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] )
proof
let i be set ; ::_thesis: ( i in [: the carrier of F1(), the carrier of F1():] implies for x being set st x in the Arrows of F1() . i holds
ex y being set st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] ) )
assume A11: i in [: the carrier of F1(), the carrier of F1():] ; ::_thesis: for x being set st x in the Arrows of F1() . i holds
ex y being set st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] )
then consider a, b being set such that
A12: a in the carrier of F1() and
A13: b in the carrier of F1() and
A14: [a,b] = i by ZFMISC_1:def_2;
reconsider a = a, b = b as object of F1() by A12, A13;
let x be set ; ::_thesis: ( x in the Arrows of F1() . i implies ex y being set st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] ) )
assume A15: x in the Arrows of F1() . i ; ::_thesis: ex y being set st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] )
then reconsider f = x as Morphism of a,b by A14;
take y = F4(a,b,f); ::_thesis: ( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] )
A16: y in the Arrows of F2() . (F3(a),F3(b)) by A2, A14, A15;
A17: F3(a) = O . a by A6;
i in dom OM by A5, A11, FUNCT_3:def_8;
then ( the Arrows of F2() * OM) . i = the Arrows of F2() . (OM . (a,b)) by A14, FUNCT_1:13
.= the Arrows of F2() . ((O . a),(O . b)) by A5, FUNCT_3:def_8 ;
hence y in ( the Arrows of F2() * OM) . i by A6, A16, A17; ::_thesis: S1[y,x,i]
i `1 = a by A14, MCART_1:7;
hence S1[y,x,i] by A14, MCART_1:7; ::_thesis: verum
end;
consider M being ManySortedFunction of the Arrows of F1(), the Arrows of F2() * OM such that
A18: for i being set 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 set st x in the Arrows of F1() . i holds
S1[f . x,x,i] ) ) from MSSUBFAM:sch_1(A10);
reconsider M = M as MSUnTrans of OM, the Arrows of F1(), the Arrows of F2() by FUNCTOR0:def_4;
FunctorStr(# OM,M #) is Covariant
proof
take O ; :: according to FUNCTOR0:def_1,FUNCTOR0:def_12 ::_thesis: the ObjectMap of FunctorStr(# OM,M #) = [:O,O:]
thus the ObjectMap of FunctorStr(# OM,M #) = [:O,O:] ; ::_thesis: verum
end;
then reconsider F = FunctorStr(# OM,M #) as Covariant FunctorStr over F1(),F2() ;
A19: now__::_thesis:_for_a_being_object_of_F1()_holds_F_._a_=_F3(a)
let a be object of F1(); ::_thesis: F . a = F3(a)
thus F . a = [(O . a),(O . a)] `1 by A5, FUNCT_3:def_8
.= O . a
.= F3(a) by A6 ; ::_thesis: verum
end;
A20: now__::_thesis:_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(); ::_thesis: ( <^o1,o2^> <> {} implies for g being Morphism of o1,o2 holds (Morph-Map (F,o1,o2)) . g = F4(o1,o2,g) )
assume A21: <^o1,o2^> <> {} ; ::_thesis: 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; ::_thesis: (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
A22: f = M . [o1,o2] and
A23: for x being set st x in the Arrows of F1() . [o1,o2] holds
f . x = F4(([o1,o2] `1),([o1,o2] `2),x) by A18;
f . g = F4(([o1,o2] `1),([o1,o2] `2),g) by A21, A23
.= F4(o1,([o1,o2] `2),g)
.= F4(o1,o2,g) ;
hence (Morph-Map (F,o1,o2)) . g = F4(o1,o2,g) by A22; ::_thesis: verum
end;
A24: F is feasible
proof
let o1, o2 be object of F1(); :: according to FUNCTOR0:def_18 ::_thesis: ( <^o1,o2^> = {} or not <^(F . o1),(F . o2)^> = {} )
set g = the Morphism of o1,o2;
assume A25: <^o1,o2^> <> {} ; ::_thesis: not <^(F . o1),(F . o2)^> = {}
then (Morph-Map (F,o1,o2)) . the Morphism of o1,o2 = F4(o1,o2, the Morphism of o1,o2) by A20;
then (Morph-Map (F,o1,o2)) . the Morphism of o1,o2 in the Arrows of F2() . (F3(o1),F3(o2)) by A2, A25;
then (Morph-Map (F,o1,o2)) . the Morphism of o1,o2 in the Arrows of F2() . ((F . o1),F3(o2)) by A19;
hence not <^(F . o1),(F . o2)^> = {} by A19; ::_thesis: verum
end;
A26: now__::_thesis:_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(); ::_thesis: ( <^o1,o2^> <> {} implies for g being Morphism of o1,o2 holds F . g = F4(o1,o2,g) )
assume A27: <^o1,o2^> <> {} ; ::_thesis: for g being Morphism of o1,o2 holds F . g = F4(o1,o2,g)
let g be Morphism of o1,o2; ::_thesis: F . g = F4(o1,o2,g)
A28: (Morph-Map (F,o1,o2)) . g = F4(o1,o2,g) by A20, A27;
<^(F . o1),(F . o2)^> <> {} by A24, A27, FUNCTOR0:def_18;
hence F . g = F4(o1,o2,g) by A27, A28, FUNCTOR0:def_15; ::_thesis: verum
end;
A29: F is comp-preserving
proof
let o1, o2, o3 be object of F1(); :: according to FUNCTOR0:def_21 ::_thesis: ( <^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 . o1),(F . o2)^> ex b4 being Element of <^(F . o2),(F . o3)^> st
( b3 = (Morph-Map (F,o1,o2)) . b1 & b4 = (Morph-Map (F,o2,o3)) . b2 & (Morph-Map (F,o1,o3)) . (b2 * b1) = b4 * b3 ) )
assume that
A30: <^o1,o2^> <> {} and
A31: <^o2,o3^> <> {} ; ::_thesis: for b1 being Element of <^o1,o2^>
for b2 being Element of <^o2,o3^> ex b3 being Element of <^(F . o1),(F . o2)^> ex b4 being Element of <^(F . o2),(F . o3)^> st
( b3 = (Morph-Map (F,o1,o2)) . b1 & b4 = (Morph-Map (F,o2,o3)) . b2 & (Morph-Map (F,o1,o3)) . (b2 * b1) = b4 * b3 )
let f be Morphism of o1,o2; ::_thesis: for b1 being Element of <^o2,o3^> ex b2 being Element of <^(F . o1),(F . o2)^> ex b3 being Element of <^(F . o2),(F . o3)^> st
( b2 = (Morph-Map (F,o1,o2)) . f & b3 = (Morph-Map (F,o2,o3)) . b1 & (Morph-Map (F,o1,o3)) . (b1 * f) = b3 * b2 )
let g be Morphism of o2,o3; ::_thesis: ex b1 being Element of <^(F . o1),(F . o2)^> ex b2 being Element of <^(F . o2),(F . o3)^> st
( b1 = (Morph-Map (F,o1,o2)) . f & b2 = (Morph-Map (F,o2,o3)) . g & (Morph-Map (F,o1,o3)) . (g * f) = b2 * b1 )
set a = O . o1;
set b = O . o2;
set c = O . o3;
A32: O . o1 = F3(o1) by A6;
A33: O . o2 = F3(o2) by A6;
A34: O . o3 = F3(o3) by A6;
reconsider f9 = F4(o1,o2,f) as Morphism of (O . o1),(O . o2) by A2, A30, A32, A33;
reconsider g9 = F4(o2,o3,g) as Morphism of (O . o2),(O . o3) by A2, A31, A33, A34;
A35: O . o1 = F . o1 by A19, A32;
A36: O . o2 = F . o2 by A19, A33;
A37: O . o3 = F . o3 by A19, A34;
reconsider ff = f9 as Morphism of (F . o1),(F . o2) by A19, A32, A36;
reconsider gg = g9 as Morphism of (F . o2),(F . o3) by A19, A34, A36;
take ff ; ::_thesis: ex b1 being Element of <^(F . o2),(F . o3)^> st
( ff = (Morph-Map (F,o1,o2)) . f & b1 = (Morph-Map (F,o2,o3)) . g & (Morph-Map (F,o1,o3)) . (g * f) = b1 * ff )
take gg ; ::_thesis: ( ff = (Morph-Map (F,o1,o2)) . f & gg = (Morph-Map (F,o2,o3)) . g & (Morph-Map (F,o1,o3)) . (g * f) = gg * ff )
A38: <^o1,o3^> <> {} by A30, A31, ALTCAT_1:def_2;
F4(o1,o3,(g * f)) = gg * ff by A3, A30, A31, A32, A33, A34, A35, A36, A37;
hence ( ff = (Morph-Map (F,o1,o2)) . f & gg = (Morph-Map (F,o2,o3)) . g & (Morph-Map (F,o1,o3)) . (g * f) = gg * ff ) by A20, A30, A31, A38; ::_thesis: verum
end;
F is Functor of F1(),F2()
proof
thus F is feasible by A24; :: according to FUNCTOR0:def_25 ::_thesis: ( F is id-preserving & ( ( F is Covariant & F is comp-preserving ) or ( F is Contravariant & F is comp-reversing ) ) )
hereby :: according to FUNCTOR0:def_20 ::_thesis: ( ( F is Covariant & F is comp-preserving ) or ( F is Contravariant & F is comp-reversing ) )
let o be object of F1(); ::_thesis: (Morph-Map (F,o,o)) . (idm o) = idm (F . o)
A39: F . o = F3(o) by A19;
thus (Morph-Map (F,o,o)) . (idm o) = F4(o,o,(idm o)) by A20
.= idm (F . o) by A4, A39 ; ::_thesis: verum
end;
thus ( ( F is Covariant & F is comp-preserving ) or ( F is Contravariant & F is comp-reversing ) ) by A29; ::_thesis: verum
end;
then reconsider F = F as strict covariant Functor of F1(),F2() by A29;
take F ; ::_thesis: ( ( 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 A19, A26; ::_thesis: verum
end;
theorem Th1: :: YELLOW18:1
for A, B being category
for F, G being covariant 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 #)
proof
let A, B be category; ::_thesis: for F, G being covariant 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 covariant 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 Covariant by FUNCTOR0:def_12;
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_1;
the ObjectMap of G is Covariant by FUNCTOR0:def_12;
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_1;
now__::_thesis:_for_a,_b_being_Element_of_A_holds_the_ObjectMap_of_F_._(a,b)_=_the_ObjectMap_of_G_._(a,b)
let a, b be Element of A; ::_thesis: the ObjectMap of F . (a,b) = the ObjectMap of G . (a,b)
reconsider x = a, y = b as object of A ;
A5: dom ff = the carrier of A by FUNCT_2:def_1;
A6: dom gg = the carrier of A by FUNCT_2:def_1;
A7: the ObjectMap of F . (x,x) = [(ff . x),(ff . x)] by A3, A5, FUNCT_3:def_8;
A8: the ObjectMap of F . (y,y) = [(ff . y),(ff . y)] by A3, A5, FUNCT_3:def_8;
A9: the ObjectMap of G . (x,x) = [(gg . x),(gg . x)] by A4, A6, FUNCT_3:def_8;
A10: the ObjectMap of G . (y,y) = [(gg . y),(gg . y)] by A4, A6, FUNCT_3:def_8;
A11: F . x = ff . x by A7, MCART_1:7;
A12: F . y = ff . y by A8, MCART_1:7;
A13: G . x = gg . x by A9, MCART_1:7;
A14: G . y = gg . y by A10, MCART_1:7;
A15: F . x = G . x by A1;
A16: F . y = G . y by A1;
thus the ObjectMap of F . (a,b) = [(ff . a),(ff . b)] by A3, A5, FUNCT_3:def_8
.= the ObjectMap of G . (a,b) by A4, A6, A11, A12, A13, A14, A15, A16, FUNCT_3:def_8 ; ::_thesis: verum
end;
then A17: the ObjectMap of F = the ObjectMap of G by BINOP_1:2;
now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_A,_the_carrier_of_A:]_holds_
the_MorphMap_of_F_._i_=_the_MorphMap_of_G_._i
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 . i
then consider a, b being set such that
A18: a in the carrier of A and
A19: b in the carrier of A and
A20: i = [a,b] by ZFMISC_1:def_2;
reconsider x = a, y = b as object of A by A18, A19;
A21: ( <^x,y^> <> {} implies <^(F . x),(F . y)^> <> {} ) by FUNCTOR0:def_18;
A22: ( <^x,y^> <> {} implies <^(G . x),(G . y)^> <> {} ) by FUNCTOR0:def_18;
A23: dom (Morph-Map (F,x,y)) = <^x,y^> by A21, FUNCT_2:def_1;
A24: dom (Morph-Map (G,x,y)) = <^x,y^> by A22, FUNCT_2:def_1;
now__::_thesis:_for_z_being_set_st_z_in_<^x,y^>_holds_
(Morph-Map_(F,x,y))_._z_=_(Morph-Map_(G,x,y))_._z
let z be set ; ::_thesis: ( z in <^x,y^> implies (Morph-Map (F,x,y)) . z = (Morph-Map (G,x,y)) . z )
assume A25: z in <^x,y^> ; ::_thesis: (Morph-Map (F,x,y)) . z = (Morph-Map (G,x,y)) . z
then reconsider f = z as Morphism of x,y ;
thus (Morph-Map (F,x,y)) . z = F . f by A21, A25, FUNCTOR0:def_15
.= G . f by A2, A25
.= (Morph-Map (G,x,y)) . z by A22, A25, FUNCTOR0:def_15 ; ::_thesis: verum
end;
hence the MorphMap of F . i = the MorphMap of G . i by A20, A23, A24, FUNCT_1:2; ::_thesis: verum
end;
hence FunctorStr(# the ObjectMap of F, the MorphMap of F #) = FunctorStr(# the ObjectMap of G, the MorphMap of G #) by A17, PBOOLE:3; ::_thesis: verum
end;
scheme :: YELLOW18:sch 9
ContravariantFunctorLambda{ F1() -> category, F2() -> category, F3( set ) -> set , F4( set , set , set ) -> set } :
ex F being strict contravariant Functor of F1(),F2() st
( ( 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) ) )
provided
A1: for a being object of F1() holds F3(a) is object of F2() and
A2: for a, b being object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b holds F4(a,b,f) in the Arrows of F2() . (F3(b),F3(a)) and
A3: for a, b, c being object of F1() st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c
for a9, b9, c9 being object of F2() st a9 = F3(a) & b9 = F3(b) & c9 = F3(c) holds
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = F4(a,b,f) & g9 = F4(b,c,g) holds
F4(a,c,(g * f)) = f9 * g9 and
A4: for a being object of F1()
for a9 being object of F2() st a9 = F3(a) holds
F4(a,a,(idm a)) = idm a9
proof
consider O being Function such that
A5: dom O = the carrier of F1() and
A6: for x being set st x in the carrier of F1() holds
O . x = F3(x) from FUNCT_1:sch_3();
rng O c= the carrier of F2()
proof
let y be set ; :: according to TARSKI:def_3 ::_thesis: ( not y in rng O or y in the carrier of F2() )
assume y in rng O ; ::_thesis: y in the carrier of F2()
then consider x being set such that
A7: x in dom O and
A8: y = O . x by FUNCT_1:def_3;
reconsider x = x as object of F1() by A5, A7;
A9: y = F3(x) by A6, A8;
F3(x) is object of F2() by A1;
hence y in the carrier of F2() by A9; ::_thesis: verum
end;
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[ set , set , set ] means $1 = F4(($3 `1),($3 `2),$2);
A11: for i being set st i in [: the carrier of F1(), the carrier of F1():] holds
for x being set st x in the Arrows of F1() . i holds
ex y being set st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] )
proof
let i be set ; ::_thesis: ( i in [: the carrier of F1(), the carrier of F1():] implies for x being set st x in the Arrows of F1() . i holds
ex y being set 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():] ; ::_thesis: for x being set st x in the Arrows of F1() . i holds
ex y being set st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] )
then consider a, b being set 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 set ; ::_thesis: ( x in the Arrows of F1() . i implies ex y being set st
( y in ( the Arrows of F2() * OM) . i & S1[y,x,i] ) )
assume A16: x in the Arrows of F1() . i ; ::_thesis: ex y being set 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); ::_thesis: ( 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; ::_thesis: S1[y,x,i]
i `1 = a by A15, MCART_1:7;
hence S1[y,x,i] by A15, MCART_1:7; ::_thesis: verum
end;
consider M being ManySortedFunction of the Arrows of F1(), the Arrows of F2() * OM such that
A19: for i being set 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 set 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
proof
take O ; :: according to FUNCTOR0:def_2,FUNCTOR0:def_13 ::_thesis: the ObjectMap of FunctorStr(# OM,M #) = ~ [:O,O:]
thus the ObjectMap of FunctorStr(# OM,M #) = ~ [:O,O:] ; ::_thesis: verum
end;
then reconsider F = FunctorStr(# OM,M #) as Contravariant FunctorStr over F1(),F2() ;
A20: now__::_thesis:_for_a_being_object_of_F1()_holds_F_._a_=_F3(a)
let a be object of F1(); ::_thesis: F . a = F3(a)
[a,a] in dom OM by A10, ZFMISC_1:def_2;
hence F . a = ([:O,O:] . (a,a)) `1 by FUNCT_4:43
.= [(O . a),(O . a)] `1 by A5, FUNCT_3:def_8
.= O . a
.= F3(a) by A6 ;
::_thesis: verum
end;
A21: now__::_thesis:_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(); ::_thesis: ( <^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^> <> {} ; ::_thesis: 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; ::_thesis: (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 set 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; ::_thesis: verum
end;
A25: F is feasible
proof
let o1, o2 be object of F1(); :: according to FUNCTOR0:def_19 ::_thesis: ( <^o1,o2^> = {} or not <^(F . o2),(F . o1)^> = {} )
set g = the Morphism of o1,o2;
assume A26: <^o1,o2^> <> {} ; ::_thesis: 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; ::_thesis: verum
end;
A27: now__::_thesis:_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(); ::_thesis: ( <^o1,o2^> <> {} implies for g being Morphism of o1,o2 holds F . g = F4(o1,o2,g) )
assume A28: <^o1,o2^> <> {} ; ::_thesis: for g being Morphism of o1,o2 holds F . g = F4(o1,o2,g)
let g be Morphism of o1,o2; ::_thesis: 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, FUNCTOR0:def_19;
hence F . g = F4(o1,o2,g) by A28, A29, FUNCTOR0:def_16; ::_thesis: verum
end;
A30: F is comp-reversing
proof
let o1, o2, o3 be object of F1(); :: according to FUNCTOR0:def_22 ::_thesis: ( <^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^> <> {} ; ::_thesis: 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; ::_thesis: 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; ::_thesis: 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 ; ::_thesis: 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 ; ::_thesis: ( 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; ::_thesis: verum
end;
F is Functor of F1(),F2()
proof
thus F is feasible by A25; :: according to FUNCTOR0:def_25 ::_thesis: ( F is id-preserving & ( ( F is Covariant & F is comp-preserving ) or ( F is Contravariant & F is comp-reversing ) ) )
hereby :: according to FUNCTOR0:def_20 ::_thesis: ( ( F is Covariant & F is comp-preserving ) or ( F is Contravariant & F is comp-reversing ) )
let o be object of F1(); ::_thesis: (Morph-Map (F,o,o)) . (idm o) = idm (F . o)
A40: F . o = F3(o) by A20;
thus (Morph-Map (F,o,o)) . (idm o) = F4(o,o,(idm o)) by A21
.= idm (F . o) by A4, A40 ; ::_thesis: verum
end;
thus ( ( F is Covariant & F is comp-preserving ) or ( F is Contravariant & F is comp-reversing ) ) by A30; ::_thesis: verum
end;
then reconsider F = F as strict contravariant Functor of F1(),F2() by A30;
take F ; ::_thesis: ( ( 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; ::_thesis: verum
end;
theorem Th2: :: YELLOW18:2
for A, B being category
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 #)
proof
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_13;
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_2;
the ObjectMap of G is Contravariant by FUNCTOR0:def_13;
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_2;
now__::_thesis:_for_a,_b_being_Element_of_A_holds_the_ObjectMap_of_F_._(a,b)_=_the_ObjectMap_of_G_._(a,b)
let a, b be Element of A; ::_thesis: the ObjectMap of F . (a,b) = the ObjectMap of G . (a,b)
reconsider x = a, y = b as object of A ;
A5: dom ff = the carrier of A by FUNCT_2:def_1;
A6: dom gg = the carrier of A by FUNCT_2:def_1;
A7: dom [:ff,ff:] = [: the carrier of A, the carrier of A:] by FUNCT_2:def_1;
then A8: [b,a] in dom [:ff,ff:] by ZFMISC_1:def_2;
A9: dom [:gg,gg:] = [: the carrier of A, the carrier of A:] by FUNCT_2:def_1;
then A10: [b,a] in dom [:gg,gg:] by ZFMISC_1:def_2;
A11: [a,a] in dom [:gg,gg:] by A9, ZFMISC_1:def_2;
A12: [b,b] in dom [:gg,gg:] by A9, ZFMISC_1:def_2;
A13: the ObjectMap of F . (x,x) = [:ff,ff:] . (x,x) by A3, A7, A11, FUNCT_4:def_2;
A14: the ObjectMap of F . (y,y) = [:ff,ff:] . (y,y) by A3, A7, A12, FUNCT_4:def_2;
A15: the ObjectMap of G . (x,x) = [:gg,gg:] . (x,x) by A4, A11, FUNCT_4:def_2;
A16: the ObjectMap of G . (y,y) = [:gg,gg:] . (y,y) by A4, A12, FUNCT_4:def_2;
A17: the ObjectMap of F . (x,x) = [(ff . x),(ff . x)] by A5, A13, FUNCT_3:def_8;
A18: the ObjectMap of F . (y,y) = [(ff . y),(ff . y)] by A5, A14, FUNCT_3:def_8;
A19: the ObjectMap of G . (x,x) = [(gg . x),(gg . x)] by A6, A15, FUNCT_3:def_8;
A20: the ObjectMap of G . (y,y) = [(gg . y),(gg . y)] by A6, A16, FUNCT_3:def_8;
A21: F . x = ff . x by A17, MCART_1:7;
A22: F . y = ff . y by A18, MCART_1:7;
A23: G . x = gg . x by A19, MCART_1:7;
A24: G . y = gg . y by A20, MCART_1:7;
A25: F . x = G . x by A1;
A26: F . y = G . y by A1;
thus the ObjectMap of F . (a,b) = [:ff,ff:] . (b,a) by A3, A8, FUNCT_4:def_2
.= [(ff . b),(ff . a)] by A5, FUNCT_3:def_8
.= [:gg,gg:] . (b,a) by A6, A21, A22, A23, A24, A25, A26, FUNCT_3:def_8
.= the ObjectMap of G . (a,b) by A4, A10, FUNCT_4:def_2 ; ::_thesis: verum
end;
then A27: the ObjectMap of F = the ObjectMap of G by BINOP_1:2;
now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_A,_the_carrier_of_A:]_holds_
the_MorphMap_of_F_._i_=_the_MorphMap_of_G_._i
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 . i
then consider a, b being set such that
A28: a in the carrier of A and
A29: b in the carrier of A and
A30: i = [a,b] by ZFMISC_1:def_2;
reconsider x = a, y = b as object of A by A28, A29;
A31: ( <^x,y^> <> {} implies <^(F . y),(F . x)^> <> {} ) by FUNCTOR0:def_19;
A32: ( <^x,y^> <> {} implies <^(G . y),(G . x)^> <> {} ) by FUNCTOR0:def_19;
A33: dom (Morph-Map (F,x,y)) = <^x,y^> by A31, FUNCT_2:def_1;
A34: dom (Morph-Map (G,x,y)) = <^x,y^> by A32, FUNCT_2:def_1;
now__::_thesis:_for_z_being_set_st_z_in_<^x,y^>_holds_
(Morph-Map_(F,x,y))_._z_=_(Morph-Map_(G,x,y))_._z
let z be set ; ::_thesis: ( z in <^x,y^> implies (Morph-Map (F,x,y)) . z = (Morph-Map (G,x,y)) . z )
assume A35: z in <^x,y^> ; ::_thesis: (Morph-Map (F,x,y)) . z = (Morph-Map (G,x,y)) . z
then reconsider f = z as Morphism of x,y ;
thus (Morph-Map (F,x,y)) . z = F . f by A31, A35, FUNCTOR0:def_16
.= G . f by A2, A35
.= (Morph-Map (G,x,y)) . z by A32, A35, FUNCTOR0:def_16 ; ::_thesis: verum
end;
hence the MorphMap of F . i = the MorphMap of G . i by A30, A33, A34, FUNCT_1:2; ::_thesis: verum
end;
hence FunctorStr(# the ObjectMap of F, the MorphMap of F #) = FunctorStr(# the ObjectMap of G, the MorphMap of G #) by A27, PBOOLE:3; ::_thesis: verum
end;
begin
definition
let A, B, C be non empty set ;
let f be Function of [:A,B:],C;
:: original: one-to-one
redefine attrf is one-to-one means :: YELLOW18:def 1
for a1, a2 being Element of A
for b1, b2 being Element of B st f . (a1,b1) = f . (a2,b2) holds
( a1 = a2 & b1 = b2 );
compatibility
( f is one-to-one iff for a1, a2 being Element of A
for b1, b2 being Element of B st f . (a1,b1) = f . (a2,b2) holds
( a1 = a2 & b1 = b2 ) )
proof
A1: dom f = [:A,B:] by FUNCT_2:def_1;
thus ( f is one-to-one implies for a1, a2 being Element of A
for b1, b2 being Element of B st f . (a1,b1) = f . (a2,b2) holds
( a1 = a2 & b1 = b2 ) ) ::_thesis: ( ( for a1, a2 being Element of A
for b1, b2 being Element of B st f . (a1,b1) = f . (a2,b2) holds
( a1 = a2 & b1 = b2 ) ) implies f is one-to-one )
proof
assume A2: for x, y being set st x in dom f & y in dom f & f . x = f . y holds
x = y ; :: according to FUNCT_1:def_4 ::_thesis: for a1, a2 being Element of A
for b1, b2 being Element of B st f . (a1,b1) = f . (a2,b2) holds
( a1 = a2 & b1 = b2 )
let a1, a2 be Element of A; ::_thesis: for b1, b2 being Element of B st f . (a1,b1) = f . (a2,b2) holds
( a1 = a2 & b1 = b2 )
let b1, b2 be Element of B; ::_thesis: ( f . (a1,b1) = f . (a2,b2) implies ( a1 = a2 & b1 = b2 ) )
A3: [a1,b1] in [:A,B:] by ZFMISC_1:def_2;
[a2,b2] in [:A,B:] by ZFMISC_1:def_2;
then ( f . (a1,b1) = f . (a2,b2) implies [a1,b1] = [a2,b2] ) by A1, A2, A3;
hence ( f . (a1,b1) = f . (a2,b2) implies ( a1 = a2 & b1 = b2 ) ) by XTUPLE_0:1; ::_thesis: verum
end;
assume A4: for a1, a2 being Element of A
for b1, b2 being Element of B st f . (a1,b1) = f . (a2,b2) holds
( a1 = a2 & b1 = b2 ) ; ::_thesis: f is one-to-one
let x, y be set ; :: according to FUNCT_1:def_4 ::_thesis: ( not x in proj1 f or not y in proj1 f or not f . x = f . y or x = y )
assume x in dom f ; ::_thesis: ( not y in proj1 f or not f . x = f . y or x = y )
then consider a1, b1 being set such that
A5: a1 in A and
A6: b1 in B and
A7: x = [a1,b1] by ZFMISC_1:def_2;
assume y in dom f ; ::_thesis: ( not f . x = f . y or x = y )
then consider a2, b2 being set such that
A8: a2 in A and
A9: b2 in B and
A10: y = [a2,b2] by ZFMISC_1:def_2;
reconsider a1 = a1, a2 = a2 as Element of A by A5, A8;
reconsider b1 = b1, b2 = b2 as Element of B by A6, A9;
assume f . x = f . y ; ::_thesis: x = y
then A11: f . (a1,b1) = f . (a2,b2) by A7, A10;
then a1 = a2 by A4;
hence x = y by A4, A7, A10, A11; ::_thesis: verum
end;
end;
:: deftheorem defines one-to-one YELLOW18:def_1_:_
for A, B, C being non empty set
for f being Function of [:A,B:],C holds
( f is one-to-one iff for a1, a2 being Element of A
for b1, b2 being Element of B st f . (a1,b1) = f . (a2,b2) holds
( a1 = a2 & b1 = b2 ) );
scheme :: YELLOW18:sch 10
CoBijectiveSch{ F1() -> category, F2() -> category, F3() -> covariant Functor of F1(),F2(), F4( set ) -> set , F5( set , set , set ) -> set } :
F3() is bijective
provided
A1: for a being object of F1() holds F3() . a = F4(a) and
A2: for a, b being object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b holds F3() . f = F5(a,b,f) and
A3: for a, b being object of F1() st F4(a) = F4(b) holds
a = b and
A4: for a, b being object of F1() st <^a,b^> <> {} holds
for f, g being Morphism of a,b st F5(a,b,f) = F5(a,b,g) holds
f = g and
A5: for a, b being object of F2() st <^a,b^> <> {} holds
for f being Morphism of a,b ex c, d being object of F1() ex g being Morphism of c,d st
( a = F4(c) & b = F4(d) & <^c,d^> <> {} & f = F5(c,d,g) )
proof
set F = F3();
thus the ObjectMap of F3() is V7() :: according to FUNCTOR0:def_6,FUNCTOR0:def_33,FUNCTOR0:def_35 ::_thesis: ( F3() is faithful & F3() is V187(F1(),F2()) )
proof
let x1, x2, y1, y2 be Element of F1(); :: according to YELLOW18:def_1 ::_thesis: ( the ObjectMap of F3() . (x1,y1) = the ObjectMap of F3() . (x2,y2) implies ( x1 = x2 & y1 = y2 ) )
reconsider a1 = x1, a2 = x2, b1 = y1, b2 = y2 as object of F1() ;
assume the ObjectMap of F3() . (x1,y1) = the ObjectMap of F3() . (x2,y2) ; ::_thesis: ( x1 = x2 & y1 = y2 )
then A6: [(F3() . a1),(F3() . b1)] = the ObjectMap of F3() . (x2,y2) by FUNCTOR0:22
.= [(F3() . a2),(F3() . b2)] by FUNCTOR0:22 ;
then A7: F3() . a1 = F3() . a2 by XTUPLE_0:1;
A8: F3() . b1 = F3() . b2 by A6, XTUPLE_0:1;
A9: F4(a1) = F3() . a2 by A1, A7;
A10: F4(b1) = F3() . b2 by A1, A8;
A11: F4(a1) = F4(a2) by A1, A9;
F4(b1) = F4(b2) by A1, A10;
hence ( x1 = x2 & y1 = y2 ) by A3, A11; ::_thesis: verum
end;
now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_F1(),_the_carrier_of_F1():]_holds_
the_MorphMap_of_F3()_._i_is_one-to-one
let i be set ; ::_thesis: ( i in [: the carrier of F1(), the carrier of F1():] implies the MorphMap of F3() . i is one-to-one )
assume i in [: the carrier of F1(), the carrier of F1():] ; ::_thesis: the MorphMap of F3() . i is one-to-one
then consider a, b being set such that
A12: a in the carrier of F1() and
A13: b in the carrier of F1() and
A14: i = [a,b] by ZFMISC_1:def_2;
reconsider a = a, b = b as object of F1() by A12, A13;
A15: ( <^a,b^> <> {} implies <^(F3() . a),(F3() . b)^> <> {} ) by FUNCTOR0:def_18;
Morph-Map (F3(),a,b) is one-to-one
proof
let x, y be set ; :: according to FUNCT_1:def_4 ::_thesis: ( not x in proj1 (Morph-Map (F3(),a,b)) or not y in proj1 (Morph-Map (F3(),a,b)) or not (Morph-Map (F3(),a,b)) . x = (Morph-Map (F3(),a,b)) . y or x = y )
assume that
A16: x in dom (Morph-Map (F3(),a,b)) and
A17: y in dom (Morph-Map (F3(),a,b)) ; ::_thesis: ( not (Morph-Map (F3(),a,b)) . x = (Morph-Map (F3(),a,b)) . y or x = y )
reconsider f = x, g = y as Morphism of a,b by A16, A17;
A18: F3() . f = (Morph-Map (F3(),a,b)) . x by A15, A16, FUNCTOR0:def_15;
A19: F3() . g = (Morph-Map (F3(),a,b)) . y by A15, A16, FUNCTOR0:def_15;
A20: F5(a,b,f) = (Morph-Map (F3(),a,b)) . x by A2, A16, A18;
F5(a,b,g) = (Morph-Map (F3(),a,b)) . y by A2, A16, A19;
hence ( not (Morph-Map (F3(),a,b)) . x = (Morph-Map (F3(),a,b)) . y or x = y ) by A4, A16, A20; ::_thesis: verum
end;
hence the MorphMap of F3() . i is one-to-one by A14; ::_thesis: verum
end;
hence the MorphMap of F3() is "1-1" by MSUALG_3:1; :: according to FUNCTOR0:def_30 ::_thesis: F3() is V187(F1(),F2())
reconsider G = the MorphMap of F3() as ManySortedFunction of the Arrows of F1(), the Arrows of F2() * the ObjectMap of F3() by FUNCTOR0:def_4;
thus F3() is full :: according to FUNCTOR0:def_34 ::_thesis: F3() is onto
proof
take G ; :: according to FUNCTOR0:def_32 ::_thesis: ( G = the MorphMap of F3() & G is "onto" )
thus G = the MorphMap of F3() ; ::_thesis: G is "onto"
let i be set ; :: according to MSUALG_3:def_3 ::_thesis: ( not i in [: the carrier of F1(), the carrier of F1():] or proj2 (G . i) = ( the ObjectMap of F3() (#) the Arrows of F2()) . i )
assume i in [: the carrier of F1(), the carrier of F1():] ; ::_thesis: proj2 (G . i) = ( the ObjectMap of F3() (#) the Arrows of F2()) . i
then reconsider ab = i as Element of [: the carrier of F1(), the carrier of F1():] ;
G . ab is Function of ( the Arrows of F1() . ab),(( the Arrows of F2() * the ObjectMap of F3()) . ab) ;
hence rng (G . i) c= ( the Arrows of F2() * the ObjectMap of F3()) . i by RELAT_1:def_19; :: according to XBOOLE_0:def_10 ::_thesis: ( the ObjectMap of F3() (#) the Arrows of F2()) . i c= proj2 (G . i)
consider a, b being set such that
A21: a in the carrier of F1() and
A22: b in the carrier of F1() and
A23: ab = [a,b] by ZFMISC_1:def_2;
reconsider a = a, b = b as object of F1() by A21, A22;
A24: the ObjectMap of F3() . ab = the ObjectMap of F3() . (a,b) by A23
.= [(F3() . a),(F3() . b)] by FUNCTOR0:22 ;
then A25: ( the Arrows of F2() * the ObjectMap of F3()) . ab = <^(F3() . a),(F3() . b)^> by FUNCT_2:15;
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in ( the ObjectMap of F3() (#) the Arrows of F2()) . i or x in proj2 (G . i) )
assume A26: x in ( the Arrows of F2() * the ObjectMap of F3()) . i ; ::_thesis: x in proj2 (G . i)
then reconsider f = x as Morphism of (F3() . a),(F3() . b) by A24, FUNCT_2:15;
consider c, d being object of F1(), g being Morphism of c,d such that
A27: F3() . a = F4(c) and
A28: F3() . b = F4(d) and
A29: <^c,d^> <> {} and
A30: f = F5(c,d,g) by A5, A25, A26;
A31: F4(a) = F4(c) by A1, A27;
A32: F4(b) = F4(d) by A1, A28;
A33: a = c by A3, A31;
A34: b = d by A3, A32;
A35: f = F3() . g by A2, A29, A30
.= (Morph-Map (F3(),c,d)) . g by A25, A26, A29, A33, A34, FUNCTOR0:def_15 ;
dom (Morph-Map (F3(),a,b)) = <^a,b^> by A25, A26, FUNCT_2:def_1;
hence x in proj2 (G . i) by A23, A29, A33, A34, A35, FUNCT_1:def_3; ::_thesis: verum
end;
thus rng the ObjectMap of F3() c= [: the carrier of F2(), the carrier of F2():] ; :: according to FUNCTOR0:def_7,FUNCT_2:def_3,XBOOLE_0:def_10 ::_thesis: [: the carrier of F2(), the carrier of F2():] c= rng the ObjectMap of F3()
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in [: the carrier of F2(), the carrier of F2():] or x in rng the ObjectMap of F3() )
assume x in [: the carrier of F2(), the carrier of F2():] ; ::_thesis: x in rng the ObjectMap of F3()
then consider a, b being set such that
A36: a in the carrier of F2() and
A37: b in the carrier of F2() and
A38: x = [a,b] by ZFMISC_1:def_2;
reconsider a = a, b = b as object of F2() by A36, A37;
consider c, c9 being object of F1(), g being Morphism of c,c9 such that
A39: a = F4(c) and
a = F4(c9) and
<^c,c9^> <> {} and
idm a = F5(c,c9,g) by A5;
consider d, d9 being object of F1(), h being Morphism of d,d9 such that
A40: b = F4(d) and
b = F4(d9) and
<^d,d9^> <> {} and
idm b = F5(d,d9,h) by A5;
[c,d] in [: the carrier of F1(), the carrier of F1():] by ZFMISC_1:def_2;
then A41: [c,d] in dom the ObjectMap of F3() by FUNCT_2:def_1;
the ObjectMap of F3() . [c,d] = the ObjectMap of F3() . (c,d)
.= [(F3() . c),(F3() . d)] by FUNCTOR0:22
.= [a,(F3() . d)] by A1, A39
.= x by A1, A38, A40 ;
hence x in rng the ObjectMap of F3() by A41, FUNCT_1:def_3; ::_thesis: verum
end;
scheme :: YELLOW18:sch 11
CatIsomorphism{ F1() -> category, F2() -> category, F3( set ) -> set , F4( set , set , set ) -> set } :
F1(),F2() are_isomorphic
provided
A1: ex F being covariant Functor of F1(),F2() st
( ( 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) ) ) and
A2: for a, b being object of F1() st F3(a) = F3(b) holds
a = b and
A3: for a, b being object of F1() st <^a,b^> <> {} holds
for f, g being Morphism of a,b st F4(a,b,f) = F4(a,b,g) holds
f = g and
A4: for a, b being object of F2() st <^a,b^> <> {} holds
for f being Morphism of a,b ex c, d being object of F1() ex g being Morphism of c,d st
( a = F3(c) & b = F3(d) & <^c,d^> <> {} & f = F4(c,d,g) )
proof
A5: for a, b being object of F1() st F3(a) = F3(b) holds
a = b by A2;
A6: for a, b being object of F1() st <^a,b^> <> {} holds
for f, g being Morphism of a,b st F4(a,b,f) = F4(a,b,g) holds
f = g by A3;
A7: for a, b being object of F2() st <^a,b^> <> {} holds
for f being Morphism of a,b ex c, d being object of F1() ex g being Morphism of c,d st
( a = F3(c) & b = F3(d) & <^c,d^> <> {} & f = F4(c,d,g) ) by A4;
consider F being covariant Functor of F1(),F2() such that
A8: for a being object of F1() holds F . a = F3(a) and
A9: 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 A1;
take F ; :: according to FUNCTOR0:def_39 ::_thesis: ( F is bijective & F is covariant )
thus F is bijective from YELLOW18:sch_10(A8, A9, A5, A6, A7); ::_thesis: F is covariant
thus F is covariant ; ::_thesis: verum
end;
scheme :: YELLOW18:sch 12
ContraBijectiveSch{ F1() -> category, F2() -> category, F3() -> contravariant Functor of F1(),F2(), F4( set ) -> set , F5( set , set , set ) -> set } :
F3() is bijective
provided
A1: for a being object of F1() holds F3() . a = F4(a) and
A2: for a, b being object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b holds F3() . f = F5(a,b,f) and
A3: for a, b being object of F1() st F4(a) = F4(b) holds
a = b and
A4: for a, b being object of F1() st <^a,b^> <> {} holds
for f, g being Morphism of a,b st F5(a,b,f) = F5(a,b,g) holds
f = g and
A5: for a, b being object of F2() st <^a,b^> <> {} holds
for f being Morphism of a,b ex c, d being object of F1() ex g being Morphism of c,d st
( b = F4(c) & a = F4(d) & <^c,d^> <> {} & f = F5(c,d,g) )
proof
set F = F3();
thus the ObjectMap of F3() is V7() :: according to FUNCTOR0:def_6,FUNCTOR0:def_33,FUNCTOR0:def_35 ::_thesis: ( F3() is faithful & F3() is V187(F1(),F2()) )
proof
let x1, x2, y1, y2 be Element of F1(); :: according to YELLOW18:def_1 ::_thesis: ( the ObjectMap of F3() . (x1,y1) = the ObjectMap of F3() . (x2,y2) implies ( x1 = x2 & y1 = y2 ) )
reconsider a1 = x1, a2 = x2, b1 = y1, b2 = y2 as object of F1() ;
assume the ObjectMap of F3() . (x1,y1) = the ObjectMap of F3() . (x2,y2) ; ::_thesis: ( x1 = x2 & y1 = y2 )
then A6: [(F3() . b1),(F3() . a1)] = the ObjectMap of F3() . (x2,y2) by FUNCTOR0:23
.= [(F3() . b2),(F3() . a2)] by FUNCTOR0:23 ;
then A7: F3() . a1 = F3() . a2 by XTUPLE_0:1;
A8: F3() . b1 = F3() . b2 by A6, XTUPLE_0:1;
A9: F4(a1) = F3() . a2 by A1, A7;
A10: F4(b1) = F3() . b2 by A1, A8;
A11: F4(a1) = F4(a2) by A1, A9;
F4(b1) = F4(b2) by A1, A10;
hence ( x1 = x2 & y1 = y2 ) by A3, A11; ::_thesis: verum
end;
now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_F1(),_the_carrier_of_F1():]_holds_
the_MorphMap_of_F3()_._i_is_one-to-one
let i be set ; ::_thesis: ( i in [: the carrier of F1(), the carrier of F1():] implies the MorphMap of F3() . i is one-to-one )
assume i in [: the carrier of F1(), the carrier of F1():] ; ::_thesis: the MorphMap of F3() . i is one-to-one
then consider a, b being set such that
A12: a in the carrier of F1() and
A13: b in the carrier of F1() and
A14: i = [a,b] by ZFMISC_1:def_2;
reconsider a = a, b = b as object of F1() by A12, A13;
A15: ( <^a,b^> <> {} implies <^(F3() . b),(F3() . a)^> <> {} ) by FUNCTOR0:def_19;
Morph-Map (F3(),a,b) is one-to-one
proof
let x, y be set ; :: according to FUNCT_1:def_4 ::_thesis: ( not x in proj1 (Morph-Map (F3(),a,b)) or not y in proj1 (Morph-Map (F3(),a,b)) or not (Morph-Map (F3(),a,b)) . x = (Morph-Map (F3(),a,b)) . y or x = y )
assume that
A16: x in dom (Morph-Map (F3(),a,b)) and
A17: y in dom (Morph-Map (F3(),a,b)) ; ::_thesis: ( not (Morph-Map (F3(),a,b)) . x = (Morph-Map (F3(),a,b)) . y or x = y )
reconsider f = x, g = y as Morphism of a,b by A16, A17;
A18: F3() . f = (Morph-Map (F3(),a,b)) . x by A15, A16, FUNCTOR0:def_16;
A19: F3() . g = (Morph-Map (F3(),a,b)) . y by A15, A16, FUNCTOR0:def_16;
A20: F5(a,b,f) = (Morph-Map (F3(),a,b)) . x by A2, A16, A18;
F5(a,b,g) = (Morph-Map (F3(),a,b)) . y by A2, A16, A19;
hence ( not (Morph-Map (F3(),a,b)) . x = (Morph-Map (F3(),a,b)) . y or x = y ) by A4, A16, A20; ::_thesis: verum
end;
hence the MorphMap of F3() . i is one-to-one by A14; ::_thesis: verum
end;
hence the MorphMap of F3() is "1-1" by MSUALG_3:1; :: according to FUNCTOR0:def_30 ::_thesis: F3() is V187(F1(),F2())
reconsider G = the MorphMap of F3() as ManySortedFunction of the Arrows of F1(), the Arrows of F2() * the ObjectMap of F3() by FUNCTOR0:def_4;
thus F3() is full :: according to FUNCTOR0:def_34 ::_thesis: F3() is onto
proof
take G ; :: according to FUNCTOR0:def_32 ::_thesis: ( G = the MorphMap of F3() & G is "onto" )
thus G = the MorphMap of F3() ; ::_thesis: G is "onto"
let i be set ; :: according to MSUALG_3:def_3 ::_thesis: ( not i in [: the carrier of F1(), the carrier of F1():] or proj2 (G . i) = ( the ObjectMap of F3() (#) the Arrows of F2()) . i )
assume i in [: the carrier of F1(), the carrier of F1():] ; ::_thesis: proj2 (G . i) = ( the ObjectMap of F3() (#) the Arrows of F2()) . i
then reconsider ab = i as Element of [: the carrier of F1(), the carrier of F1():] ;
G . ab is Function of ( the Arrows of F1() . ab),(( the Arrows of F2() * the ObjectMap of F3()) . ab) ;
hence rng (G . i) c= ( the Arrows of F2() * the ObjectMap of F3()) . i by RELAT_1:def_19; :: according to XBOOLE_0:def_10 ::_thesis: ( the ObjectMap of F3() (#) the Arrows of F2()) . i c= proj2 (G . i)
consider a, b being set such that
A21: a in the carrier of F1() and
A22: b in the carrier of F1() and
A23: ab = [a,b] by ZFMISC_1:def_2;
reconsider a = a, b = b as object of F1() by A21, A22;
A24: the ObjectMap of F3() . ab = the ObjectMap of F3() . (a,b) by A23
.= [(F3() . b),(F3() . a)] by FUNCTOR0:23 ;
then A25: ( the Arrows of F2() * the ObjectMap of F3()) . ab = <^(F3() . b),(F3() . a)^> by FUNCT_2:15;
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in ( the ObjectMap of F3() (#) the Arrows of F2()) . i or x in proj2 (G . i) )
assume A26: x in ( the Arrows of F2() * the ObjectMap of F3()) . i ; ::_thesis: x in proj2 (G . i)
then reconsider f = x as Morphism of (F3() . b),(F3() . a) by A24, FUNCT_2:15;
consider c, d being object of F1(), g being Morphism of c,d such that
A27: F3() . a = F4(c) and
A28: F3() . b = F4(d) and
A29: <^c,d^> <> {} and
A30: f = F5(c,d,g) by A5, A25, A26;
A31: F4(a) = F4(c) by A1, A27;
A32: F4(b) = F4(d) by A1, A28;
A33: a = c by A3, A31;
A34: b = d by A3, A32;
A35: f = F3() . g by A2, A29, A30
.= (Morph-Map (F3(),c,d)) . g by A25, A26, A29, A33, A34, FUNCTOR0:def_16 ;
dom (Morph-Map (F3(),a,b)) = <^a,b^> by A25, A26, FUNCT_2:def_1;
hence x in proj2 (G . i) by A23, A29, A33, A34, A35, FUNCT_1:def_3; ::_thesis: verum
end;
thus rng the ObjectMap of F3() c= [: the carrier of F2(), the carrier of F2():] ; :: according to FUNCTOR0:def_7,FUNCT_2:def_3,XBOOLE_0:def_10 ::_thesis: [: the carrier of F2(), the carrier of F2():] c= rng the ObjectMap of F3()
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in [: the carrier of F2(), the carrier of F2():] or x in rng the ObjectMap of F3() )
assume x in [: the carrier of F2(), the carrier of F2():] ; ::_thesis: x in rng the ObjectMap of F3()
then consider a, b being set such that
A36: a in the carrier of F2() and
A37: b in the carrier of F2() and
A38: x = [a,b] by ZFMISC_1:def_2;
reconsider a = a, b = b as object of F2() by A36, A37;
consider c, c9 being object of F1(), g being Morphism of c,c9 such that
A39: a = F4(c) and
a = F4(c9) and
<^c,c9^> <> {} and
idm a = F5(c,c9,g) by A5;
consider d, d9 being object of F1(), h being Morphism of d,d9 such that
A40: b = F4(d) and
b = F4(d9) and
<^d,d9^> <> {} and
idm b = F5(d,d9,h) by A5;
[d,c] in [: the carrier of F1(), the carrier of F1():] by ZFMISC_1:def_2;
then A41: [d,c] in dom the ObjectMap of F3() by FUNCT_2:def_1;
the ObjectMap of F3() . [d,c] = the ObjectMap of F3() . (d,c)
.= [(F3() . c),(F3() . d)] by FUNCTOR0:23
.= [a,(F3() . d)] by A1, A39
.= x by A1, A38, A40 ;
hence x in rng the ObjectMap of F3() by A41, FUNCT_1:def_3; ::_thesis: verum
end;
scheme :: YELLOW18:sch 13
CatAntiIsomorphism{ F1() -> category, F2() -> category, F3( set ) -> set , F4( set , set , set ) -> set } :
F1(),F2() are_anti-isomorphic
provided
A1: ex F being contravariant Functor of F1(),F2() st
( ( 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) ) ) and
A2: for a, b being object of F1() st F3(a) = F3(b) holds
a = b and
A3: for a, b being object of F1() st <^a,b^> <> {} holds
for f, g being Morphism of a,b st F4(a,b,f) = F4(a,b,g) holds
f = g and
A4: for a, b being object of F2() st <^a,b^> <> {} holds
for f being Morphism of a,b ex c, d being object of F1() ex g being Morphism of c,d st
( b = F3(c) & a = F3(d) & <^c,d^> <> {} & f = F4(c,d,g) )
proof
consider F being contravariant Functor of F1(),F2() such that
A5: for a being object of F1() holds F . a = F3(a) and
A6: 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 A1;
A7: for a, b being object of F1() st F3(a) = F3(b) holds
a = b by A2;
A8: for a, b being object of F1() st <^a,b^> <> {} holds
for f, g being Morphism of a,b st F4(a,b,f) = F4(a,b,g) holds
f = g by A3;
A9: for a, b being object of F2() st <^a,b^> <> {} holds
for f being Morphism of a,b ex c, d being object of F1() ex g being Morphism of c,d st
( b = F3(c) & a = F3(d) & <^c,d^> <> {} & f = F4(c,d,g) ) by A4;
take F ; :: according to FUNCTOR0:def_40 ::_thesis: ( F is bijective & F is contravariant )
thus F is bijective from YELLOW18:sch_12(A5, A6, A7, A8, A9); ::_thesis: F is contravariant
thus F is contravariant ; ::_thesis: verum
end;
definition
let A, B be category;
predA,B are_equivalent means :: YELLOW18:def 2
ex F being covariant Functor of A,B ex G being covariant Functor of B,A st
( G * F, id A are_naturally_equivalent & F * G, id B are_naturally_equivalent );
reflexivity
for A being category ex F, G being covariant Functor of A,A st
( G * F, id A are_naturally_equivalent & F * G, id A are_naturally_equivalent )
proof
let A be category; ::_thesis: ex F, G being covariant Functor of A,A st
( G * F, id A are_naturally_equivalent & F * G, id A are_naturally_equivalent )
take id A ; ::_thesis: ex G being covariant Functor of A,A st
( G * (id A), id A are_naturally_equivalent & (id A) * G, id A are_naturally_equivalent )
take id A ; ::_thesis: ( (id A) * (id A), id A are_naturally_equivalent & (id A) * (id A), id A are_naturally_equivalent )
thus ( (id A) * (id A), id A are_naturally_equivalent & (id A) * (id A), id A are_naturally_equivalent ) by FUNCTOR3:4; ::_thesis: verum
end;
symmetry
for A, B being category st ex F being covariant Functor of A,B ex G being covariant Functor of B,A st
( G * F, id A are_naturally_equivalent & F * G, id B are_naturally_equivalent ) holds
ex F being covariant Functor of B,A ex G being covariant Functor of A,B st
( G * F, id B are_naturally_equivalent & F * G, id A are_naturally_equivalent ) ;
end;
:: deftheorem defines are_equivalent YELLOW18:def_2_:_
for A, B being category holds
( A,B are_equivalent iff ex F being covariant Functor of A,B ex G being covariant Functor of B,A st
( G * F, id A are_naturally_equivalent & F * G, id B are_naturally_equivalent ) );
theorem Th3: :: YELLOW18:3
for A, B, C being non empty reflexive AltGraph
for F1, F2 being feasible FunctorStr over A,B
for G1, G2 being FunctorStr over B,C st FunctorStr(# the ObjectMap of F1, the MorphMap of F1 #) = FunctorStr(# the ObjectMap of F2, the MorphMap of F2 #) & FunctorStr(# the ObjectMap of G1, the MorphMap of G1 #) = FunctorStr(# the ObjectMap of G2, the MorphMap of G2 #) holds
G1 * F1 = G2 * F2
proof
let A, B, C be non empty reflexive AltGraph ; ::_thesis: for F1, F2 being feasible FunctorStr over A,B
for G1, G2 being FunctorStr over B,C st FunctorStr(# the ObjectMap of F1, the MorphMap of F1 #) = FunctorStr(# the ObjectMap of F2, the MorphMap of F2 #) & FunctorStr(# the ObjectMap of G1, the MorphMap of G1 #) = FunctorStr(# the ObjectMap of G2, the MorphMap of G2 #) holds
G1 * F1 = G2 * F2
let F1, F2 be feasible FunctorStr over A,B; ::_thesis: for G1, G2 being FunctorStr over B,C st FunctorStr(# the ObjectMap of F1, the MorphMap of F1 #) = FunctorStr(# the ObjectMap of F2, the MorphMap of F2 #) & FunctorStr(# the ObjectMap of G1, the MorphMap of G1 #) = FunctorStr(# the ObjectMap of G2, the MorphMap of G2 #) holds
G1 * F1 = G2 * F2
let G1, G2 be FunctorStr over B,C; ::_thesis: ( FunctorStr(# the ObjectMap of F1, the MorphMap of F1 #) = FunctorStr(# the ObjectMap of F2, the MorphMap of F2 #) & FunctorStr(# the ObjectMap of G1, the MorphMap of G1 #) = FunctorStr(# the ObjectMap of G2, the MorphMap of G2 #) implies G1 * F1 = G2 * F2 )
assume that
A1: FunctorStr(# the ObjectMap of F1, the MorphMap of F1 #) = FunctorStr(# the ObjectMap of F2, the MorphMap of F2 #) and
A2: FunctorStr(# the ObjectMap of G1, the MorphMap of G1 #) = FunctorStr(# the ObjectMap of G2, the MorphMap of G2 #) ; ::_thesis: G1 * F1 = G2 * F2
A3: the ObjectMap of (G1 * F1) = the ObjectMap of G1 * the ObjectMap of F1 by FUNCTOR0:def_36;
the MorphMap of (G1 * F1) = ( the MorphMap of G1 * the ObjectMap of F1) ** the MorphMap of F1 by FUNCTOR0:def_36;
hence G1 * F1 = G2 * F2 by A1, A2, A3, FUNCTOR0:def_36; ::_thesis: verum
end;
theorem Th4: :: YELLOW18:4
for A, B, C being category st A,B are_equivalent & B,C are_equivalent holds
A,C are_equivalent
proof
let A, B, C be category; ::_thesis: ( A,B are_equivalent & B,C are_equivalent implies A,C are_equivalent )
given F1 being covariant Functor of A,B, G1 being covariant Functor of B,A such that A1: G1 * F1, id A are_naturally_equivalent and
A2: F1 * G1, id B are_naturally_equivalent ; :: according to YELLOW18:def_2 ::_thesis: ( not B,C are_equivalent or A,C are_equivalent )
given F2 being covariant Functor of B,C, G2 being covariant Functor of C,B such that A3: G2 * F2, id B are_naturally_equivalent and
A4: F2 * G2, id C are_naturally_equivalent ; :: according to YELLOW18:def_2 ::_thesis: A,C are_equivalent
take F = F2 * F1; :: according to YELLOW18:def_2 ::_thesis: ex G being covariant Functor of C,A st
( G * F, id A are_naturally_equivalent & F * G, id C are_naturally_equivalent )
take G = G1 * G2; ::_thesis: ( G * F, id A are_naturally_equivalent & F * G, id C are_naturally_equivalent )
FunctorStr(# the ObjectMap of F1, the MorphMap of F1 #) = FunctorStr(# the ObjectMap of F1, the MorphMap of F1 #) ;
then A5: FunctorStr(# the ObjectMap of G1, the MorphMap of G1 #) * F1 = G1 * F1 by Th3;
FunctorStr(# the ObjectMap of G2, the MorphMap of G2 #) = FunctorStr(# the ObjectMap of G2, the MorphMap of G2 #) ;
then A6: FunctorStr(# the ObjectMap of F2, the MorphMap of F2 #) * G2 = F2 * G2 by Th3;
A7: G1 * (id B) = FunctorStr(# the ObjectMap of G1, the MorphMap of G1 #) by FUNCTOR3:5;
A8: F2 * (id B) = FunctorStr(# the ObjectMap of F2, the MorphMap of F2 #) by FUNCTOR3:5;
A9: G * F2 = G1 * (G2 * F2) by FUNCTOR0:32;
A10: F * G1 = F2 * (F1 * G1) by FUNCTOR0:32;
A11: (G * F2) * F1 = G * F by FUNCTOR0:32;
A12: (F * G1) * G2 = F * G by FUNCTOR0:32;
A13: G * F2,G1 * (id B) are_naturally_equivalent by A3, A9, FUNCTOR3:35;
A14: F * G1,F2 * (id B) are_naturally_equivalent by A2, A10, FUNCTOR3:35;
A15: G * F,G1 * F1 are_naturally_equivalent by A5, A7, A11, A13, FUNCTOR3:36;
F * G,F2 * G2 are_naturally_equivalent by A6, A8, A12, A14, FUNCTOR3:36;
hence ( G * F, id A are_naturally_equivalent & F * G, id C are_naturally_equivalent ) by A1, A4, A15, FUNCTOR3:33; ::_thesis: verum
end;
theorem Th5: :: YELLOW18:5
for A, B being category st A,B are_isomorphic holds
A,B are_equivalent
proof
let A, B be category; ::_thesis: ( A,B are_isomorphic implies A,B are_equivalent )
assume A,B are_isomorphic ; ::_thesis: A,B are_equivalent
then consider F being Functor of A,B such that
A1: ( F is bijective & F is covariant ) by FUNCTOR0:def_39;
reconsider F = F as covariant Functor of A,B by A1;
consider G being Functor of B,A such that
A2: G = F " and
A3: ( G is bijective & G is covariant ) by A1, FUNCTOR0:48;
reconsider G = G as covariant Functor of B,A by A3;
take F ; :: according to YELLOW18:def_2 ::_thesis: ex G being covariant Functor of B,A st
( G * F, id A are_naturally_equivalent & F * G, id B are_naturally_equivalent )
take G ; ::_thesis: ( G * F, id A are_naturally_equivalent & F * G, id B are_naturally_equivalent )
thus ( G * F, id A are_naturally_equivalent & F * G, id B are_naturally_equivalent ) by A1, A2, FUNCTOR1:18, FUNCTOR1:19; ::_thesis: verum
end;
scheme :: YELLOW18:sch 14
NatTransLambda{ F1() -> category, F2() -> category, F3() -> covariant Functor of F1(),F2(), F4() -> covariant Functor of F1(),F2(), F5( set ) -> set } :
ex t being natural_transformation of F3(),F4() st
( F3() is_naturally_transformable_to F4() & ( for a being object of F1() holds t ! a = F5(a) ) )
provided
A1: for a being object of F1() holds F5(a) in <^(F3() . a),(F4() . a)^> and
A2: for a, b being object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b
for g1 being Morphism of (F3() . a),(F4() . a) st g1 = F5(a) holds
for g2 being Morphism of (F3() . b),(F4() . b) st g2 = F5(b) holds
g2 * (F3() . f) = (F4() . f) * g1
proof
consider t being ManySortedSet of the carrier of F1() such that
A3: for a being Element of F1() holds t . a = F5(a) from PBOOLE:sch_5();
A4: F3() is_transformable_to F4()
proof
let a be object of F1(); :: according to FUNCTOR2:def_1 ::_thesis: not <^(F3() . a),(F4() . a)^> = {}
thus not <^(F3() . a),(F4() . a)^> = {} by A1; ::_thesis: verum
end;
now__::_thesis:_for_a_being_object_of_F1()_holds_t_._a_is_Morphism_of_(F3()_._a),(F4()_._a)
let a be object of F1(); ::_thesis: t . a is Morphism of (F3() . a),(F4() . a)
t . a = F5(a) by A3;
hence t . a is Morphism of (F3() . a),(F4() . a) by A1; ::_thesis: verum
end;
then reconsider t = t as transformation of F3(),F4() by A4, FUNCTOR2:def_2;
A5: now__::_thesis:_for_a_being_object_of_F1()_holds_t_!_a_=_F5(a)
let a be object of F1(); ::_thesis: t ! a = F5(a)
t . a = F5(a) by A3;
hence t ! a = F5(a) by A4, FUNCTOR2:def_4; ::_thesis: verum
end;
A6: F3() is_naturally_transformable_to F4()
proof
thus F3() is_transformable_to F4() by A4; :: according to FUNCTOR2:def_6 ::_thesis: ex b1 being transformation of F3(),F4() st
for b2, b3 being Element of the carrier of F1() holds
( <^b2,b3^> = {} or for b4 being Element of <^b2,b3^> holds (b1 ! b3) * (F3() . b4) = (F4() . b4) * (b1 ! b2) )
take t ; ::_thesis: for b1, b2 being Element of the carrier of F1() holds
( <^b1,b2^> = {} or for b3 being Element of <^b1,b2^> holds (t ! b2) * (F3() . b3) = (F4() . b3) * (t ! b1) )
let a, b be object of F1(); ::_thesis: ( <^a,b^> = {} or for b1 being Element of <^a,b^> holds (t ! b) * (F3() . b1) = (F4() . b1) * (t ! a) )
A7: t ! a = F5(a) by A5;
t ! b = F5(b) by A5;
hence ( <^a,b^> = {} or for b1 being Element of <^a,b^> holds (t ! b) * (F3() . b1) = (F4() . b1) * (t ! a) ) by A2, A7; ::_thesis: verum
end;
now__::_thesis:_for_a,_b_being_object_of_F1()_st_<^a,b^>_<>_{}_holds_
for_f_being_Morphism_of_a,b_holds_(t_!_b)_*_(F3()_._f)_=_(F4()_._f)_*_(t_!_a)
let a, b be object of F1(); ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds (t ! b) * (F3() . f) = (F4() . f) * (t ! a) )
A8: t ! a = F5(a) by A5;
t ! b = F5(b) by A5;
hence ( <^a,b^> <> {} implies for f being Morphism of a,b holds (t ! b) * (F3() . f) = (F4() . f) * (t ! a) ) by A2, A8; ::_thesis: verum
end;
then t is natural_transformation of F3(),F4() by A6, FUNCTOR2:def_7;
hence ex t being natural_transformation of F3(),F4() st
( F3() is_naturally_transformable_to F4() & ( for a being object of F1() holds t ! a = F5(a) ) ) by A5, A6; ::_thesis: verum
end;
scheme :: YELLOW18:sch 15
NatEquivalenceLambda{ F1() -> category, F2() -> category, F3() -> covariant Functor of F1(),F2(), F4() -> covariant Functor of F1(),F2(), F5( set ) -> set } :
ex t being natural_equivalence of F3(),F4() st
( F3(),F4() are_naturally_equivalent & ( for a being object of F1() holds t ! a = F5(a) ) )
provided
A1: for a being object of F1() holds
( F5(a) in <^(F3() . a),(F4() . a)^> & <^(F4() . a),(F3() . a)^> <> {} & ( for f being Morphism of (F3() . a),(F4() . a) st f = F5(a) holds
f is iso ) ) and
A2: for a, b being object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b
for g1 being Morphism of (F3() . a),(F4() . a) st g1 = F5(a) holds
for g2 being Morphism of (F3() . b),(F4() . b) st g2 = F5(b) holds
g2 * (F3() . f) = (F4() . f) * g1
proof
A3: for a, b being object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b
for g1 being Morphism of (F3() . a),(F4() . a) st g1 = F5(a) holds
for g2 being Morphism of (F3() . b),(F4() . b) st g2 = F5(b) holds
g2 * (F3() . f) = (F4() . f) * g1 by A2;
A4: for a being object of F1() holds F5(a) in <^(F3() . a),(F4() . a)^> by A1;
consider t being natural_transformation of F3(),F4() such that
A5: F3() is_naturally_transformable_to F4() and
A6: for a being object of F1() holds t ! a = F5(a) from YELLOW18:sch_14(A4, A3);
A7: F4() is_transformable_to F3()
proof
let a be object of F1(); :: according to FUNCTOR2:def_1 ::_thesis: not <^(F4() . a),(F3() . a)^> = {}
thus not <^(F4() . a),(F3() . a)^> = {} by A1; ::_thesis: verum
end;
A8: F3(),F4() are_naturally_equivalent
proof
thus F3() is_naturally_transformable_to F4() by A5; :: according to FUNCTOR3:def_4 ::_thesis: ( F4() is_transformable_to F3() & ex b1 being natural_transformation of F3(),F4() st
for b2 being Element of the carrier of F1() holds b1 ! b2 is iso )
thus F4() is_transformable_to F3() by A7; ::_thesis: ex b1 being natural_transformation of F3(),F4() st
for b2 being Element of the carrier of F1() holds b1 ! b2 is iso
take t ; ::_thesis: for b1 being Element of the carrier of F1() holds t ! b1 is iso
let a be object of F1(); ::_thesis: t ! a is iso
t ! a = F5(a) by A6;
hence t ! a is iso by A1; ::_thesis: verum
end;
now__::_thesis:_for_a_being_object_of_F1()_holds_t_!_a_is_iso
let a be object of F1(); ::_thesis: t ! a is iso
t ! a = F5(a) by A6;
hence t ! a is iso by A1; ::_thesis: verum
end;
then t is natural_equivalence of F3(),F4() by A8, FUNCTOR3:def_5;
hence ex t being natural_equivalence of F3(),F4() st
( F3(),F4() are_naturally_equivalent & ( for a being object of F1() holds t ! a = F5(a) ) ) by A6, A8; ::_thesis: verum
end;
begin
definition
let C1, C2 be non empty AltCatStr ;
predC1,C2 are_opposite means :Def3: :: YELLOW18:def 3
( the carrier of C2 = the carrier of C1 & the Arrows of C2 = ~ the Arrows of C1 & ( for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a)) ) );
symmetry
for C1, C2 being non empty AltCatStr st the carrier of C2 = the carrier of C1 & the Arrows of C2 = ~ the Arrows of C1 & ( for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a)) ) holds
( the carrier of C1 = the carrier of C2 & the Arrows of C1 = ~ the Arrows of C2 & ( for a, b, c being object of C2
for a9, b9, c9 being object of C1 st a9 = a & b9 = b & c9 = c holds
the Comp of C1 . (a9,b9,c9) = ~ ( the Comp of C2 . (c,b,a)) ) )
proof
let C1, C2 be non empty AltCatStr ; ::_thesis: ( the carrier of C2 = the carrier of C1 & the Arrows of C2 = ~ the Arrows of C1 & ( for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a)) ) implies ( the carrier of C1 = the carrier of C2 & the Arrows of C1 = ~ the Arrows of C2 & ( for a, b, c being object of C2
for a9, b9, c9 being object of C1 st a9 = a & b9 = b & c9 = c holds
the Comp of C1 . (a9,b9,c9) = ~ ( the Comp of C2 . (c,b,a)) ) ) )
assume that
A1: the carrier of C2 = the carrier of C1 and
A2: the Arrows of C2 = ~ the Arrows of C1 and
A3: for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a)) ; ::_thesis: ( the carrier of C1 = the carrier of C2 & the Arrows of C1 = ~ the Arrows of C2 & ( for a, b, c being object of C2
for a9, b9, c9 being object of C1 st a9 = a & b9 = b & c9 = c holds
the Comp of C1 . (a9,b9,c9) = ~ ( the Comp of C2 . (c,b,a)) ) )
thus the carrier of C1 = the carrier of C2 by A1; ::_thesis: ( the Arrows of C1 = ~ the Arrows of C2 & ( for a, b, c being object of C2
for a9, b9, c9 being object of C1 st a9 = a & b9 = b & c9 = c holds
the Comp of C1 . (a9,b9,c9) = ~ ( the Comp of C2 . (c,b,a)) ) )
dom the Arrows of C1 = [: the carrier of C1, the carrier of C1:] by PARTFUN1:def_2;
hence the Arrows of C1 = ~ the Arrows of C2 by A2, FUNCT_4:52; ::_thesis: for a, b, c being object of C2
for a9, b9, c9 being object of C1 st a9 = a & b9 = b & c9 = c holds
the Comp of C1 . (a9,b9,c9) = ~ ( the Comp of C2 . (c,b,a))
let a, b, c be object of C2; ::_thesis: for a9, b9, c9 being object of C1 st a9 = a & b9 = b & c9 = c holds
the Comp of C1 . (a9,b9,c9) = ~ ( the Comp of C2 . (c,b,a))
let a9, b9, c9 be object of C1; ::_thesis: ( a9 = a & b9 = b & c9 = c implies the Comp of C1 . (a9,b9,c9) = ~ ( the Comp of C2 . (c,b,a)) )
assume that
A4: a9 = a and
A5: b9 = b and
A6: c9 = c ; ::_thesis: the Comp of C1 . (a9,b9,c9) = ~ ( the Comp of C2 . (c,b,a))
A7: the Comp of C2 . (c,b,a) = ~ ( the Comp of C1 . (a9,b9,c9)) by A3, A4, A5, A6;
dom ( the Comp of C1 . (a9,b9,c9)) c= [:( the Arrows of C1 . (b9,c9)),( the Arrows of C1 . (a9,b9)):] ;
hence the Comp of C1 . (a9,b9,c9) = ~ ( the Comp of C2 . (c,b,a)) by A7, FUNCT_4:52; ::_thesis: verum
end;
end;
:: deftheorem Def3 defines are_opposite YELLOW18:def_3_:_
for C1, C2 being non empty AltCatStr holds
( C1,C2 are_opposite iff ( the carrier of C2 = the carrier of C1 & the Arrows of C2 = ~ the Arrows of C1 & ( for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a)) ) ) );
theorem Th6: :: YELLOW18:6
for A, B being non empty AltCatStr st A,B are_opposite holds
for a being object of A holds a is object of B
proof
let A, B be non empty AltCatStr ; ::_thesis: ( A,B are_opposite implies for a being object of A holds a is object of B )
assume the carrier of A = the carrier of B ; :: according to YELLOW18:def_3 ::_thesis: ( not the Arrows of B = ~ the Arrows of A or ex a, b, c being object of A ex a9, b9, c9 being object of B st
( a9 = a & b9 = b & c9 = c & not the Comp of B . (a9,b9,c9) = ~ ( the Comp of A . (c,b,a)) ) or for a being object of A holds a is object of B )
hence ( not the Arrows of B = ~ the Arrows of A or ex a, b, c being object of A ex a9, b9, c9 being object of B st
( a9 = a & b9 = b & c9 = c & not the Comp of B . (a9,b9,c9) = ~ ( the Comp of A . (c,b,a)) ) or for a being object of A holds a is object of B ) ; ::_thesis: verum
end;
theorem Th7: :: YELLOW18:7
for A, B being non empty AltCatStr st A,B are_opposite holds
for a, b being object of A
for a9, b9 being object of B st a9 = a & b9 = b holds
<^a,b^> = <^b9,a9^>
proof
let A, B be non empty AltCatStr ; ::_thesis: ( A,B are_opposite implies for a, b being object of A
for a9, b9 being object of B st a9 = a & b9 = b holds
<^a,b^> = <^b9,a9^> )
assume that
the carrier of B = the carrier of A and
A1: the Arrows of B = ~ the Arrows of A ; :: according to YELLOW18:def_3 ::_thesis: ( ex a, b, c being object of A ex a9, b9, c9 being object of B st
( a9 = a & b9 = b & c9 = c & not the Comp of B . (a9,b9,c9) = ~ ( the Comp of A . (c,b,a)) ) or for a, b being object of A
for a9, b9 being object of B st a9 = a & b9 = b holds
<^a,b^> = <^b9,a9^> )
assume for a, b, c being object of A
for a9, b9, c9 being object of B st a9 = a & b9 = b & c9 = c holds
the Comp of B . (a9,b9,c9) = ~ ( the Comp of A . (c,b,a)) ; ::_thesis: for a, b being object of A
for a9, b9 being object of B st a9 = a & b9 = b holds
<^a,b^> = <^b9,a9^>
let a, b be object of A; ::_thesis: for a9, b9 being object of B st a9 = a & b9 = b holds
<^a,b^> = <^b9,a9^>
let a9, b9 be object of B; ::_thesis: ( a9 = a & b9 = b implies <^a,b^> = <^b9,a9^> )
thus ( a9 = a & b9 = b implies <^a,b^> = <^b9,a9^> ) by A1, ALTCAT_2:6; ::_thesis: verum
end;
theorem :: YELLOW18:8
for A, B being non empty AltCatStr st A,B are_opposite holds
for a, b being object of A
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b holds f is Morphism of b9,a9 by Th7;
theorem Th9: :: YELLOW18:9
for C1, C2 being non empty transitive AltCatStr holds
( C1,C2 are_opposite iff ( the carrier of C2 = the carrier of C1 & ( for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) ) ) ) )
proof
let C1, C2 be non empty transitive AltCatStr ; ::_thesis: ( C1,C2 are_opposite iff ( the carrier of C2 = the carrier of C1 & ( for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) ) ) ) )
A1: dom the Arrows of C1 = [: the carrier of C1, the carrier of C1:] by PARTFUN1:def_2;
A2: dom the Arrows of C2 = [: the carrier of C2, the carrier of C2:] by PARTFUN1:def_2;
hereby ::_thesis: ( the carrier of C2 = the carrier of C1 & ( for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) ) ) implies C1,C2 are_opposite )
assume A3: C1,C2 are_opposite ; ::_thesis: ( the carrier of C2 = the carrier of C1 & ( for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) ) ) )
hence the carrier of C2 = the carrier of C1 by Def3; ::_thesis: for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) )
let a, b, c be object of C1; ::_thesis: for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) )
let a9, b9, c9 be object of C2; ::_thesis: ( a9 = a & b9 = b & c9 = c implies ( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) ) )
assume that
A4: a9 = a and
A5: b9 = b and
A6: c9 = c ; ::_thesis: ( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) )
A7: [a,b] in dom the Arrows of C1 by A1, ZFMISC_1:def_2;
A8: [b,c] in dom the Arrows of C1 by A1, ZFMISC_1:def_2;
thus A9: <^a,b^> = (~ the Arrows of C1) . (b,a) by A7, FUNCT_4:def_2
.= <^b9,a9^> by A3, A4, A5, Def3 ; ::_thesis: ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f )
A10: <^b,c^> = (~ the Arrows of C1) . (c,b) by A8, FUNCT_4:def_2
.= <^c9,b9^> by A3, A5, A6, Def3 ;
A11: the Comp of C2 . (c9,b9,a9) = ~ ( the Comp of C1 . (a,b,c)) by A3, A4, A5, A6, Def3;
assume that
A12: <^a,b^> <> {} and
A13: <^b,c^> <> {} ; ::_thesis: for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f
let f be Morphism of a,b; ::_thesis: for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f
let g be Morphism of b,c; ::_thesis: for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f
<^a,c^> <> {} by A12, A13, ALTCAT_1:def_2;
then dom ( the Comp of C1 . (a,b,c)) = [:( the Arrows of C1 . (b,c)),( the Arrows of C1 . (a,b)):] by FUNCT_2:def_1;
then A14: [g,f] in dom ( the Comp of C1 . (a,b,c)) by A12, A13, ZFMISC_1:def_2;
let f9 be Morphism of b9,a9; ::_thesis: for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f
let g9 be Morphism of c9,b9; ::_thesis: ( f9 = f & g9 = g implies f9 * g9 = g * f )
assume that
A15: f9 = f and
A16: g9 = g ; ::_thesis: f9 * g9 = g * f
thus f9 * g9 = (~ ( the Comp of C1 . (a,b,c))) . (f,g) by A9, A10, A11, A12, A13, A15, A16, ALTCAT_1:def_8
.= ( the Comp of C1 . (a,b,c)) . (g,f) by A14, FUNCT_4:def_2
.= g * f by A12, A13, ALTCAT_1:def_8 ; ::_thesis: verum
end;
assume that
A17: the carrier of C2 = the carrier of C1 and
A18: for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) ) ; ::_thesis: C1,C2 are_opposite
thus the carrier of C2 = the carrier of C1 by A17; :: according to YELLOW18:def_3 ::_thesis: ( the Arrows of C2 = ~ the Arrows of C1 & ( for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a)) ) )
A19: now__::_thesis:_for_x_being_set_holds_
(_(_x_in_dom_the_Arrows_of_C2_implies_ex_z,_y_being_set_st_
(_x_=_[y,z]_&_[z,y]_in_dom_the_Arrows_of_C1_)_)_&_(_ex_z,_y_being_set_st_
(_x_=_[y,z]_&_[z,y]_in_dom_the_Arrows_of_C1_)_implies_x_in_dom_the_Arrows_of_C2_)_)
let x be set ; ::_thesis: ( ( x in dom the Arrows of C2 implies ex z, y being set st
( x = [y,z] & [z,y] in dom the Arrows of C1 ) ) & ( ex z, y being set st
( x = [y,z] & [z,y] in dom the Arrows of C1 ) implies x in dom the Arrows of C2 ) )
hereby ::_thesis: ( ex z, y being set st
( x = [y,z] & [z,y] in dom the Arrows of C1 ) implies x in dom the Arrows of C2 )
assume x in dom the Arrows of C2 ; ::_thesis: ex z, y being set st
( x = [y,z] & [z,y] in dom the Arrows of C1 )
then consider y, z being set such that
A20: y in the carrier of C1 and
A21: z in the carrier of C1 and
A22: [y,z] = x by A17, ZFMISC_1:def_2;
take z = z; ::_thesis: ex y being set st
( x = [y,z] & [z,y] in dom the Arrows of C1 )
take y = y; ::_thesis: ( x = [y,z] & [z,y] in dom the Arrows of C1 )
thus ( x = [y,z] & [z,y] in dom the Arrows of C1 ) by A1, A20, A21, A22, ZFMISC_1:def_2; ::_thesis: verum
end;
given z, y being set such that A23: x = [y,z] and
A24: [z,y] in dom the Arrows of C1 ; ::_thesis: x in dom the Arrows of C2
A25: z in the carrier of C1 by A24, ZFMISC_1:87;
y in the carrier of C1 by A24, ZFMISC_1:87;
hence x in dom the Arrows of C2 by A2, A17, A23, A25, ZFMISC_1:def_2; ::_thesis: verum
end;
now__::_thesis:_for_y,_z_being_set_st_[y,z]_in_dom_the_Arrows_of_C1_holds_
the_Arrows_of_C2_._(z,y)_=_the_Arrows_of_C1_._(y,z)
let y, z be set ; ::_thesis: ( [y,z] in dom the Arrows of C1 implies the Arrows of C2 . (z,y) = the Arrows of C1 . (y,z) )
assume [y,z] in dom the Arrows of C1 ; ::_thesis: the Arrows of C2 . (z,y) = the Arrows of C1 . (y,z)
then reconsider a = y, b = z as object of C1 by ZFMISC_1:87;
reconsider a9 = a, b9 = b as object of C2 by A17;
thus the Arrows of C2 . (z,y) = <^b9,a9^>
.= <^a,b^> by A18
.= the Arrows of C1 . (y,z) ; ::_thesis: verum
end;
hence the Arrows of C2 = ~ the Arrows of C1 by A19, FUNCT_4:def_2; ::_thesis: for a, b, c being object of C1
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a))
let a, b, c be object of C1; ::_thesis: for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a))
let a9, b9, c9 be object of C2; ::_thesis: ( a9 = a & b9 = b & c9 = c implies the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a)) )
assume that
A26: a9 = a and
A27: b9 = b and
A28: c9 = c ; ::_thesis: the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a))
A29: <^a9,b9^> = <^b,a^> by A18, A26, A27;
A30: <^b9,c9^> = <^c,b^> by A18, A27, A28;
A31: <^a9,c9^> = <^c,a^> by A18, A26, A28;
( [:<^b,a^>,<^c,b^>:] <> {} implies ( <^b,a^> <> {} & <^c,b^> <> {} ) ) by ZFMISC_1:90;
then ( [:<^b,a^>,<^c,b^>:] <> {} implies <^c,a^> <> {} ) by ALTCAT_1:def_2;
then A32: dom ( the Comp of C1 . (c,b,a)) = [:( the Arrows of C1 . (b,a)),( the Arrows of C1 . (c,b)):] by FUNCT_2:def_1;
( [:<^c,b^>,<^b,a^>:] <> {} implies ( <^b,a^> <> {} & <^c,b^> <> {} ) ) by ZFMISC_1:90;
then ( [:<^c,b^>,<^b,a^>:] <> {} implies <^c,a^> <> {} ) by ALTCAT_1:def_2;
then A33: dom ( the Comp of C2 . (a9,b9,c9)) = [:( the Arrows of C2 . (b9,c9)),( the Arrows of C2 . (a9,b9)):] by A29, A30, A31, FUNCT_2:def_1;
A34: now__::_thesis:_for_x_being_set_holds_
(_(_x_in_dom_(_the_Comp_of_C2_._(a9,b9,c9))_implies_ex_z,_y_being_set_st_
(_x_=_[y,z]_&_[z,y]_in_dom_(_the_Comp_of_C1_._(c,b,a))_)_)_&_(_ex_z,_y_being_set_st_
(_x_=_[y,z]_&_[z,y]_in_dom_(_the_Comp_of_C1_._(c,b,a))_)_implies_x_in_dom_(_the_Comp_of_C2_._(a9,b9,c9))_)_)
let x be set ; ::_thesis: ( ( x in dom ( the Comp of C2 . (a9,b9,c9)) implies ex z, y being set st
( x = [y,z] & [z,y] in dom ( the Comp of C1 . (c,b,a)) ) ) & ( ex z, y being set st
( x = [y,z] & [z,y] in dom ( the Comp of C1 . (c,b,a)) ) implies x in dom ( the Comp of C2 . (a9,b9,c9)) ) )
hereby ::_thesis: ( ex z, y being set st
( x = [y,z] & [z,y] in dom ( the Comp of C1 . (c,b,a)) ) implies x in dom ( the Comp of C2 . (a9,b9,c9)) )
assume x in dom ( the Comp of C2 . (a9,b9,c9)) ; ::_thesis: ex z, y being set st
( x = [y,z] & [z,y] in dom ( the Comp of C1 . (c,b,a)) )
then consider y, z being set such that
A35: y in <^b9,c9^> and
A36: z in <^a9,b9^> and
A37: [y,z] = x by ZFMISC_1:def_2;
take z = z; ::_thesis: ex y being set st
( x = [y,z] & [z,y] in dom ( the Comp of C1 . (c,b,a)) )
take y = y; ::_thesis: ( x = [y,z] & [z,y] in dom ( the Comp of C1 . (c,b,a)) )
thus ( x = [y,z] & [z,y] in dom ( the Comp of C1 . (c,b,a)) ) by A29, A30, A32, A35, A36, A37, ZFMISC_1:def_2; ::_thesis: verum
end;
given z, y being set such that A38: x = [y,z] and
A39: [z,y] in dom ( the Comp of C1 . (c,b,a)) ; ::_thesis: x in dom ( the Comp of C2 . (a9,b9,c9))
A40: z in <^b,a^> by A39, ZFMISC_1:87;
y in <^c,b^> by A39, ZFMISC_1:87;
hence x in dom ( the Comp of C2 . (a9,b9,c9)) by A29, A30, A33, A38, A40, ZFMISC_1:def_2; ::_thesis: verum
end;
now__::_thesis:_for_y,_z_being_set_st_[y,z]_in_dom_(_the_Comp_of_C1_._(c,b,a))_holds_
(_the_Comp_of_C2_._(a9,b9,c9))_._(z,y)_=_(_the_Comp_of_C1_._(c,b,a))_._(y,z)
let y, z be set ; ::_thesis: ( [y,z] in dom ( the Comp of C1 . (c,b,a)) implies ( the Comp of C2 . (a9,b9,c9)) . (z,y) = ( the Comp of C1 . (c,b,a)) . (y,z) )
assume A41: [y,z] in dom ( the Comp of C1 . (c,b,a)) ; ::_thesis: ( the Comp of C2 . (a9,b9,c9)) . (z,y) = ( the Comp of C1 . (c,b,a)) . (y,z)
then A42: y in <^b,a^> by ZFMISC_1:87;
A43: z in <^c,b^> by A41, ZFMISC_1:87;
reconsider f = y as Morphism of b,a by A41, ZFMISC_1:87;
reconsider g = z as Morphism of c,b by A41, ZFMISC_1:87;
reconsider f9 = y as Morphism of a9,b9 by A18, A26, A27, A42;
reconsider g9 = z as Morphism of b9,c9 by A18, A27, A28, A43;
thus ( the Comp of C2 . (a9,b9,c9)) . (z,y) = g9 * f9 by A29, A30, A42, A43, ALTCAT_1:def_8
.= f * g by A18, A26, A27, A28, A42, A43
.= ( the Comp of C1 . (c,b,a)) . (y,z) by A42, A43, ALTCAT_1:def_8 ; ::_thesis: verum
end;
hence the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a)) by A34, FUNCT_4:def_2; ::_thesis: verum
end;
theorem Th10: :: YELLOW18:10
for A, B being category st A,B are_opposite holds
for a being object of A
for b being object of B st a = b holds
idm a = idm b
proof
let A, B be category; ::_thesis: ( A,B are_opposite implies for a being object of A
for b being object of B st a = b holds
idm a = idm b )
assume A1: A,B are_opposite ; ::_thesis: for a being object of A
for b being object of B st a = b holds
idm a = idm b
let a be object of A; ::_thesis: for b being object of B st a = b holds
idm a = idm b
let b be object of B; ::_thesis: ( a = b implies idm a = idm b )
assume A2: a = b ; ::_thesis: idm a = idm b
reconsider i = idm b as Morphism of a,a by A1, A2, Th9;
now__::_thesis:_for_c_being_object_of_A_st_<^a,c^>_<>_{}_holds_
for_f_being_Morphism_of_a,c_holds_f_*_i_=_f
let c be object of A; ::_thesis: ( <^a,c^> <> {} implies for f being Morphism of a,c holds f * i = f )
assume A3: <^a,c^> <> {} ; ::_thesis: for f being Morphism of a,c holds f * i = f
let f be Morphism of a,c; ::_thesis: f * i = f
reconsider d = c as object of B by A1, Th9;
A4: <^a,c^> = <^d,b^> by A1, A2, Th9;
reconsider g = f as Morphism of d,b by A1, A2, Th9;
thus f * i = (idm b) * g by A1, A2, A3, Th9
.= f by A3, A4, ALTCAT_1:20 ; ::_thesis: verum
end;
hence idm a = idm b by ALTCAT_1:def_17; ::_thesis: verum
end;
theorem Th11: :: YELLOW18:11
for A, B being non empty transitive AltCatStr st A,B are_opposite & A is associative holds
B is associative
proof
let A, B be non empty transitive AltCatStr ; ::_thesis: ( A,B are_opposite & A is associative implies B is associative )
assume that
A1: A,B are_opposite and
A2: A is associative ; ::_thesis: B is associative
deffunc H1( set , set , set , set , set ) -> set = ( the Comp of A . ($3,$2,$1)) . ($4,$5);
A3: now__::_thesis:_for_a,_b,_c_being_object_of_B_st_<^a,b^>_<>_{}_&_<^b,c^>_<>_{}_holds_
for_f_being_Morphism_of_a,b
for_g_being_Morphism_of_b,c_holds_g_*_f_=_H1(a,b,c,f,g)
let a, b, c be object of B; ::_thesis: ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H1(a,b,c,f,g) )
assume that
A4: <^a,b^> <> {} and
A5: <^b,c^> <> {} ; ::_thesis: for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H1(a,b,c,f,g)
let f be Morphism of a,b; ::_thesis: for g being Morphism of b,c holds g * f = H1(a,b,c,f,g)
let g be Morphism of b,c; ::_thesis: g * f = H1(a,b,c,f,g)
reconsider a9 = a, b9 = b, c9 = c as object of A by A1, Th6;
A6: <^a,b^> = <^b9,a9^> by A1, Th7;
A7: <^b,c^> = <^c9,b9^> by A1, Th7;
reconsider f9 = f as Morphism of b9,a9 by A1, Th7;
reconsider g9 = g as Morphism of c9,b9 by A1, Th7;
thus g * f = f9 * g9 by A1, A4, A5, Th9
.= H1(a,b,c,f,g) by A4, A5, A6, A7, ALTCAT_1:def_8 ; ::_thesis: verum
end;
A8: now__::_thesis:_for_a,_b,_c,_d_being_object_of_B
for_f,_g,_h_being_set_st_f_in_<^a,b^>_&_g_in_<^b,c^>_&_h_in_<^c,d^>_holds_
H1(a,c,d,H1(a,b,c,f,g),h)_=_H1(a,b,d,f,H1(b,c,d,g,h))
let a, b, c, d be object of B; ::_thesis: for f, g, h being set st f in <^a,b^> & g in <^b,c^> & h in <^c,d^> holds
H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h))
let f, g, h be set ; ::_thesis: ( f in <^a,b^> & g in <^b,c^> & h in <^c,d^> implies H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h)) )
reconsider a9 = a, b9 = b, c9 = c, d9 = d as object of A by A1, Def3;
assume A9: f in <^a,b^> ; ::_thesis: ( g in <^b,c^> & h in <^c,d^> implies H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h)) )
then A10: f in <^b9,a9^> by A1, Th9;
reconsider f9 = f as Morphism of b9,a9 by A1, A9, Th9;
assume A11: g in <^b,c^> ; ::_thesis: ( h in <^c,d^> implies H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h)) )
then A12: g in <^c9,b9^> by A1, Th9;
reconsider g9 = g as Morphism of c9,b9 by A1, A11, Th9;
assume A13: h in <^c,d^> ; ::_thesis: H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h))
then A14: h in <^d9,c9^> by A1, Th9;
reconsider h9 = h as Morphism of d9,c9 by A1, A13, Th9;
A15: <^c9,a9^> <> {} by A10, A12, ALTCAT_1:def_2;
A16: <^d9,b9^> <> {} by A12, A14, ALTCAT_1:def_2;
thus H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,c,d,f9 * g9,h) by A10, A12, ALTCAT_1:def_8
.= (f9 * g9) * h9 by A14, A15, ALTCAT_1:def_8
.= f9 * (g9 * h9) by A2, A10, A12, A14, ALTCAT_1:21
.= H1(a,b,d,f,g9 * h9) by A10, A16, ALTCAT_1:def_8
.= H1(a,b,d,f,H1(b,c,d,g,h)) by A12, A14, ALTCAT_1:def_8 ; ::_thesis: verum
end;
thus B is associative from YELLOW18:sch_2(A3, A8); ::_thesis: verum
end;
theorem Th12: :: YELLOW18:12
for A, B being non empty transitive AltCatStr st A,B are_opposite & A is with_units holds
B is with_units
proof
let A, B be non empty transitive AltCatStr ; ::_thesis: ( A,B are_opposite & A is with_units implies B is with_units )
assume A1: A,B are_opposite ; ::_thesis: ( not A is with_units or B is with_units )
assume A is with_units ; ::_thesis: B is with_units
then reconsider A = A as non empty transitive with_units AltCatStr ;
deffunc H1( set , set , set , set , set ) -> set = ( the Comp of A . ($3,$2,$1)) . ($4,$5);
A2: now__::_thesis:_for_a,_b,_c_being_object_of_B_st_<^a,b^>_<>_{}_&_<^b,c^>_<>_{}_holds_
for_f_being_Morphism_of_a,b
for_g_being_Morphism_of_b,c_holds_g_*_f_=_H1(a,b,c,f,g)
let a, b, c be object of B; ::_thesis: ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H1(a,b,c,f,g) )
assume that
A3: <^a,b^> <> {} and
A4: <^b,c^> <> {} ; ::_thesis: for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H1(a,b,c,f,g)
let f be Morphism of a,b; ::_thesis: for g being Morphism of b,c holds g * f = H1(a,b,c,f,g)
let g be Morphism of b,c; ::_thesis: g * f = H1(a,b,c,f,g)
reconsider a9 = a, b9 = b, c9 = c as object of A by A1, Th6;
A5: <^a,b^> = <^b9,a9^> by A1, Th7;
A6: <^b,c^> = <^c9,b9^> by A1, Th7;
reconsider f9 = f as Morphism of b9,a9 by A1, Th7;
reconsider g9 = g as Morphism of c9,b9 by A1, Th7;
thus g * f = f9 * g9 by A1, A3, A4, Th9
.= H1(a,b,c,f,g) by A3, A4, A5, A6, ALTCAT_1:def_8 ; ::_thesis: verum
end;
A7: now__::_thesis:_for_a_being_object_of_B_ex_f_being_set_st_
(_f_in_<^a,a^>_&_(_for_b_being_object_of_B
for_g_being_set_st_g_in_<^a,b^>_holds_
H1(a,a,b,f,g)_=_g_)_)
let a be object of B; ::_thesis: ex f being set st
( f in <^a,a^> & ( for b being object of B
for g being set st g in <^a,b^> holds
H1(a,a,b,f,g) = g ) )
reconsider a9 = a as object of A by A1, Th6;
reconsider f = idm a9 as set ;
take f = f; ::_thesis: ( f in <^a,a^> & ( for b being object of B
for g being set st g in <^a,b^> holds
H1(a,a,b,f,g) = g ) )
idm a9 in <^a9,a9^> ;
hence f in <^a,a^> by A1, Th7; ::_thesis: for b being object of B
for g being set st g in <^a,b^> holds
H1(a,a,b,f,g) = g
let b be object of B; ::_thesis: for g being set st g in <^a,b^> holds
H1(a,a,b,f,g) = g
let g be set ; ::_thesis: ( g in <^a,b^> implies H1(a,a,b,f,g) = g )
reconsider b9 = b as object of A by A1, Th6;
assume A8: g in <^a,b^> ; ::_thesis: H1(a,a,b,f,g) = g
then A9: g in <^b9,a9^> by A1, Th7;
reconsider g9 = g as Morphism of b9,a9 by A1, A8, Th7;
thus H1(a,a,b,f,g) = (idm a9) * g9 by A9, ALTCAT_1:def_8
.= g by A9, ALTCAT_1:20 ; ::_thesis: verum
end;
A10: now__::_thesis:_for_a_being_object_of_B_ex_f_being_set_st_
(_f_in_<^a,a^>_&_(_for_b_being_object_of_B
for_g_being_set_st_g_in_<^b,a^>_holds_
H1(b,a,a,g,f)_=_g_)_)
let a be object of B; ::_thesis: ex f being set st
( f in <^a,a^> & ( for b being object of B
for g being set st g in <^b,a^> holds
H1(b,a,a,g,f) = g ) )
reconsider a9 = a as object of A by A1, Th6;
reconsider f = idm a9 as set ;
take f = f; ::_thesis: ( f in <^a,a^> & ( for b being object of B
for g being set st g in <^b,a^> holds
H1(b,a,a,g,f) = g ) )
idm a9 in <^a9,a9^> ;
hence f in <^a,a^> by A1, Th7; ::_thesis: for b being object of B
for g being set st g in <^b,a^> holds
H1(b,a,a,g,f) = g
let b be object of B; ::_thesis: for g being set st g in <^b,a^> holds
H1(b,a,a,g,f) = g
let g be set ; ::_thesis: ( g in <^b,a^> implies H1(b,a,a,g,f) = g )
reconsider b9 = b as object of A by A1, Th6;
assume A11: g in <^b,a^> ; ::_thesis: H1(b,a,a,g,f) = g
then A12: g in <^a9,b9^> by A1, Th7;
reconsider g9 = g as Morphism of a9,b9 by A1, A11, Th7;
thus H1(b,a,a,g,f) = g9 * (idm a9) by A12, ALTCAT_1:def_8
.= g by A12, ALTCAT_1:def_17 ; ::_thesis: verum
end;
thus B is with_units from YELLOW18:sch_3(A2, A7, A10); ::_thesis: verum
end;
theorem Th13: :: YELLOW18:13
for C, C1, C2 being non empty AltCatStr st C,C1 are_opposite holds
( C,C2 are_opposite iff AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) )
proof
let C, C1, C2 be non empty AltCatStr ; ::_thesis: ( C,C1 are_opposite implies ( C,C2 are_opposite iff AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) ) )
assume that
A1: the carrier of C1 = the carrier of C and
A2: the Arrows of C1 = ~ the Arrows of C and
A3: for a, b, c being object of C
for a9, b9, c9 being object of C1 st a9 = a & b9 = b & c9 = c holds
the Comp of C1 . (a9,b9,c9) = ~ ( the Comp of C . (c,b,a)) ; :: according to YELLOW18:def_3 ::_thesis: ( C,C2 are_opposite iff AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) )
thus ( C,C2 are_opposite implies AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) ) ::_thesis: ( AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) implies C,C2 are_opposite )
proof
assume that
A4: the carrier of C2 = the carrier of C and
A5: the Arrows of C2 = ~ the Arrows of C and
A6: for a, b, c being object of C
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C . (c,b,a)) ; :: according to YELLOW18:def_3 ::_thesis: AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #)
A7: dom the Comp of C1 = [: the carrier of C1, the carrier of C1, the carrier of C1:] by PARTFUN1:def_2;
A8: dom the Comp of C2 = [: the carrier of C2, the carrier of C2, the carrier of C2:] by PARTFUN1:def_2;
now__::_thesis:_for_x_being_set_st_x_in_[:_the_carrier_of_C,_the_carrier_of_C,_the_carrier_of_C:]_holds_
the_Comp_of_C1_._x_=_the_Comp_of_C2_._x
let x be set ; ::_thesis: ( x in [: the carrier of C, the carrier of C, the carrier of C:] implies the Comp of C1 . x = the Comp of C2 . x )
assume x in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: the Comp of C1 . x = the Comp of C2 . x
then consider a, b, c being set such that
A9: a in the carrier of C and
A10: b in the carrier of C and
A11: c in the carrier of C and
A12: x = [a,b,c] by MCART_1:68;
reconsider a = a, b = b, c = c as object of C by A9, A10, A11;
reconsider a1 = a, b1 = b, c1 = c as object of C1 by A1;
reconsider a2 = a, b2 = b, c2 = c as object of C2 by A4;
A13: the Comp of C1 . (a1,b1,c1) = ~ ( the Comp of C . (c,b,a)) by A3;
the Comp of C2 . (a2,b2,c2) = ~ ( the Comp of C . (c,b,a)) by A6;
hence the Comp of C1 . x = the Comp of C2 . (a2,b2,c2) by A12, A13, MULTOP_1:def_1
.= the Comp of C2 . x by A12, MULTOP_1:def_1 ;
::_thesis: verum
end;
hence AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) by A1, A2, A4, A5, A7, A8, FUNCT_1:2; ::_thesis: verum
end;
assume A14: AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) ; ::_thesis: C,C2 are_opposite
hence ( the carrier of C2 = the carrier of C & the Arrows of C2 = ~ the Arrows of C ) by A1, A2; :: according to YELLOW18:def_3 ::_thesis: for a, b, c being object of C
for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C . (c,b,a))
let a, b, c be object of C; ::_thesis: for a9, b9, c9 being object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C . (c,b,a))
let a9, b9, c9 be object of C2; ::_thesis: ( a9 = a & b9 = b & c9 = c implies the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C . (c,b,a)) )
thus ( a9 = a & b9 = b & c9 = c implies the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C . (c,b,a)) ) by A3, A14; ::_thesis: verum
end;
definition
let C be non empty transitive AltCatStr ;
funcC opp -> non empty transitive strict AltCatStr means :Def4: :: YELLOW18:def 4
C,it are_opposite ;
uniqueness
for b1, b2 being non empty transitive strict AltCatStr st C,b1 are_opposite & C,b2 are_opposite holds
b1 = b2 by Th13;
existence
ex b1 being non empty transitive strict AltCatStr st C,b1 are_opposite
proof
deffunc H1( set , set ) -> set = the Arrows of C . ($2,$1);
deffunc H2( set , set , set , set , set ) -> set = ( the Comp of C . ($3,$2,$1)) . ($4,$5);
A1: now__::_thesis:_for_a,_b,_c_being_Element_of_C
for_f,_g_being_set_st_f_in_H1(a,b)_&_g_in_H1(b,c)_holds_
H2(a,b,c,f,g)_in_H1(a,c)
let a, b, c be Element of C; ::_thesis: for f, g being set st f in H1(a,b) & g in H1(b,c) holds
H2(a,b,c,f,g) in H1(a,c)
let f, g be set ; ::_thesis: ( f in H1(a,b) & g in H1(b,c) implies H2(a,b,c,f,g) in H1(a,c) )
reconsider a9 = a, b9 = b, c9 = c as object of C ;
assume A2: f in H1(a,b) ; ::_thesis: ( g in H1(b,c) implies H2(a,b,c,f,g) in H1(a,c) )
then A3: f in <^b9,a9^> ;
reconsider f9 = f as Morphism of b9,a9 by A2;
assume A4: g in H1(b,c) ; ::_thesis: H2(a,b,c,f,g) in H1(a,c)
then A5: g in <^c9,b9^> ;
reconsider g9 = g as Morphism of c9,b9 by A4;
A6: <^c9,a9^> <> {} by A3, A5, ALTCAT_1:def_2;
H2(a,b,c,f,g) = f9 * g9 by A2, A4, ALTCAT_1:def_8;
hence H2(a,b,c,f,g) in H1(a,c) by A6; ::_thesis: verum
end;
ex C1 being non empty transitive strict AltCatStr st
( the carrier of C1 = the carrier of C & ( for a, b being object of C1 holds <^a,b^> = H1(a,b) ) & ( for a, b, c being object of C1 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H2(a,b,c,f,g) ) ) from YELLOW18:sch_1(A1);
then consider C1 being non empty transitive strict AltCatStr such that
A7: the carrier of C1 = the carrier of C and
A8: for a, b being object of C1 holds <^a,b^> = the Arrows of C . (b,a) and
A9: for a, b, c being object of C1 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = ( the Comp of C . (c,b,a)) . (f,g) ;
take C1 ; ::_thesis: C,C1 are_opposite
now__::_thesis:_for_a,_b,_c_being_object_of_C
for_a9,_b9,_c9_being_object_of_C1_st_a9_=_a_&_b9_=_b_&_c9_=_c_holds_
(_<^a,b^>_=_<^b9,a9^>_&_(_<^a,b^>_<>_{}_&_<^b,c^>_<>_{}_implies_for_f_being_Morphism_of_a,b
for_g_being_Morphism_of_b,c
for_f9_being_Morphism_of_b9,a9
for_g9_being_Morphism_of_c9,b9_st_f9_=_f_&_g9_=_g_holds_
f9_*_g9_=_g_*_f_)_)
let a, b, c be object of C; ::_thesis: for a9, b9, c9 being object of C1 st a9 = a & b9 = b & c9 = c holds
( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) )
let a9, b9, c9 be object of C1; ::_thesis: ( a9 = a & b9 = b & c9 = c implies ( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) ) )
assume that
A10: a9 = a and
A11: b9 = b and
A12: c9 = c ; ::_thesis: ( <^a,b^> = <^b9,a9^> & ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f ) )
thus A13: <^a,b^> = <^b9,a9^> by A8, A10, A11; ::_thesis: ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f )
A14: <^b,c^> = <^c9,b9^> by A8, A11, A12;
assume that
A15: <^a,b^> <> {} and
A16: <^b,c^> <> {} ; ::_thesis: for f being Morphism of a,b
for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f
let f be Morphism of a,b; ::_thesis: for g being Morphism of b,c
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f
let g be Morphism of b,c; ::_thesis: for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f
let f9 be Morphism of b9,a9; ::_thesis: for g9 being Morphism of c9,b9 st f9 = f & g9 = g holds
f9 * g9 = g * f
let g9 be Morphism of c9,b9; ::_thesis: ( f9 = f & g9 = g implies f9 * g9 = g * f )
assume that
A17: f9 = f and
A18: g9 = g ; ::_thesis: f9 * g9 = g * f
thus f9 * g9 = ( the Comp of C . (a,b,c)) . (g,f) by A9, A10, A11, A12, A13, A14, A15, A16, A17, A18
.= g * f by A15, A16, ALTCAT_1:def_8 ; ::_thesis: verum
end;
hence C,C1 are_opposite by A7, Th9; ::_thesis: verum
end;
end;
:: deftheorem Def4 defines opp YELLOW18:def_4_:_
for C being non empty transitive AltCatStr
for b2 being non empty transitive strict AltCatStr holds
( b2 = C opp iff C,b2 are_opposite );
registration
let C be non empty transitive associative AltCatStr ;
clusterC opp -> non empty transitive strict associative ;
coherence
C opp is associative
proof
C,C opp are_opposite by Def4;
hence C opp is associative by Th11; ::_thesis: verum
end;
end;
registration
let C be non empty transitive with_units AltCatStr ;
clusterC opp -> non empty transitive strict with_units ;
coherence
C opp is with_units
proof
C,C opp are_opposite by Def4;
hence C opp is with_units by Th12; ::_thesis: verum
end;
end;
definition
let A, B be category;
assume B1: A,B are_opposite ;
deffunc H1( set ) -> set = $1;
deffunc H2( set , set , set ) -> set = $3;
A1: for a being object of A holds H1(a) is object of B by B1, Def3;
A2: now__::_thesis:_for_a,_b_being_object_of_A_st_<^a,b^>_<>_{}_holds_
for_f_being_Morphism_of_a,b_holds_H2(a,b,f)_in_the_Arrows_of_B_._(H1(b),H1(a))
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds H2(a,b,f) in the Arrows of B . (H1(b),H1(a)) )
assume A3: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds H2(a,b,f) in the Arrows of B . (H1(b),H1(a))
let f be Morphism of a,b; ::_thesis: H2(a,b,f) in the Arrows of B . (H1(b),H1(a))
reconsider a9 = a, b9 = b as object of B by A1;
<^a,b^> = <^b9,a9^> by B1, Th9
.= the Arrows of B . (b,a) ;
hence H2(a,b,f) in the Arrows of B . (H1(b),H1(a)) by A3; ::_thesis: verum
end;
A4: for a, b, c being object of A st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c
for a9, b9, c9 being object of B st a9 = H1(a) & b9 = H1(b) & c9 = H1(c) holds
for f9 being Morphism of b9,a9
for g9 being Morphism of c9,b9 st f9 = H2(a,b,f) & g9 = H2(b,c,g) holds
H2(a,c,g * f) = f9 * g9 by B1, Th9;
A5: for a being object of A
for a9 being object of B st a9 = H1(a) holds
H2(a,a, idm a) = idm a9 by B1, Th10;
func dualizing-func (A,B) -> strict contravariant Functor of A,B means :Def5: :: YELLOW18:def 5
( ( for a being object of A holds it . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds it . f = f ) );
existence
ex b1 being strict contravariant Functor of A,B st
( ( for a being object of A holds b1 . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds b1 . f = f ) )
proof
thus ex F being strict contravariant Functor of A,B st
( ( for a being object of A holds F . a = H1(a) ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds F . f = H2(a,b,f) ) ) from YELLOW18:sch_9(A1, A2, A4, A5); ::_thesis: verum
end;
uniqueness
for b1, b2 being strict contravariant Functor of A,B st ( for a being object of A holds b1 . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds b1 . f = f ) & ( for a being object of A holds b2 . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds b2 . f = f ) holds
b1 = b2
proof
let F, G be strict contravariant Functor of A,B; ::_thesis: ( ( for a being object of A holds F . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds F . f = f ) & ( for a being object of A holds G . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds G . f = f ) implies F = G )
assume that
A6: for a being object of A holds F . a = a and
A7: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds F . f = f and
A8: for a being object of A holds G . a = a and
A9: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds G . f = f ; ::_thesis: F = G
A10: now__::_thesis:_for_a_being_object_of_A_holds_F_._a_=_G_._a
let a be object of A; ::_thesis: F . a = G . a
thus F . a = a by A6
.= G . a by A8 ; ::_thesis: verum
end;
now__::_thesis:_for_a,_b_being_object_of_A_st_<^a,b^>_<>_{}_holds_
for_f_being_Morphism_of_a,b_holds_F_._f_=_G_._f
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds F . f = G . f )
assume A11: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds F . f = G . f
let f be Morphism of a,b; ::_thesis: F . f = G . f
thus F . f = f by A7, A11
.= G . f by A9, A11 ; ::_thesis: verum
end;
hence F = G by A10, Th2; ::_thesis: verum
end;
end;
:: deftheorem Def5 defines dualizing-func YELLOW18:def_5_:_
for A, B being category st A,B are_opposite holds
for b3 being strict contravariant Functor of A,B holds
( b3 = dualizing-func (A,B) iff ( ( for a being object of A holds b3 . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds b3 . f = f ) ) );
theorem Th14: :: YELLOW18:14
for A, B being category st A,B are_opposite holds
(dualizing-func (A,B)) * (dualizing-func (B,A)) = id B
proof
let A, B be category; ::_thesis: ( A,B are_opposite implies (dualizing-func (A,B)) * (dualizing-func (B,A)) = id B )
assume A1: A,B are_opposite ; ::_thesis: (dualizing-func (A,B)) * (dualizing-func (B,A)) = id B
A2: now__::_thesis:_for_a_being_object_of_B_holds_((dualizing-func_(A,B))_*_(dualizing-func_(B,A)))_._a_=_(id_B)_._a
let a be object of B; ::_thesis: ((dualizing-func (A,B)) * (dualizing-func (B,A))) . a = (id B) . a
thus ((dualizing-func (A,B)) * (dualizing-func (B,A))) . a = (dualizing-func (A,B)) . ((dualizing-func (B,A)) . a) by FUNCTOR0:33
.= (dualizing-func (B,A)) . a by A1, Def5
.= a by A1, Def5
.= (id B) . a by FUNCTOR0:29 ; ::_thesis: verum
end;
now__::_thesis:_for_a,_b_being_object_of_B_st_<^a,b^>_<>_{}_holds_
for_f_being_Morphism_of_a,b_holds_((dualizing-func_(A,B))_*_(dualizing-func_(B,A)))_._f_=_(id_B)_._f
let a, b be object of B; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds ((dualizing-func (A,B)) * (dualizing-func (B,A))) . f = (id B) . f )
assume A3: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds ((dualizing-func (A,B)) * (dualizing-func (B,A))) . f = (id B) . f
then A4: <^((dualizing-func (B,A)) . b),((dualizing-func (B,A)) . a)^> <> {} by FUNCTOR0:def_19;
let f be Morphism of a,b; ::_thesis: ((dualizing-func (A,B)) * (dualizing-func (B,A))) . f = (id B) . f
thus ((dualizing-func (A,B)) * (dualizing-func (B,A))) . f = (dualizing-func (A,B)) . ((dualizing-func (B,A)) . f) by A3, FUNCTOR3:7
.= (dualizing-func (B,A)) . f by A1, A4, Def5
.= f by A1, A3, Def5
.= (id B) . f by A3, FUNCTOR0:31 ; ::_thesis: verum
end;
hence (dualizing-func (A,B)) * (dualizing-func (B,A)) = id B by A2, Th1; ::_thesis: verum
end;
theorem Th15: :: YELLOW18:15
for A, B being category st A,B are_opposite holds
dualizing-func (A,B) is bijective
proof
let A, B be category; ::_thesis: ( A,B are_opposite implies dualizing-func (A,B) is bijective )
assume A1: A,B are_opposite ; ::_thesis: dualizing-func (A,B) is bijective
set F = dualizing-func (A,B);
deffunc H1( set ) -> set = $1;
deffunc H2( set , set , set ) -> set = $3;
A2: for a being object of A holds (dualizing-func (A,B)) . a = H1(a) by A1, Def5;
A3: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (dualizing-func (A,B)) . f = H2(a,b,f) by A1, Def5;
A4: for a, b being object of A st H1(a) = H1(b) holds
a = b ;
A5: for a, b being object of A st <^a,b^> <> {} holds
for f, g being Morphism of a,b st H2(a,b,f) = H2(a,b,g) holds
f = g ;
A6: now__::_thesis:_for_a,_b_being_object_of_B_st_<^a,b^>_<>_{}_holds_
for_f_being_Morphism_of_a,b_ex_c,_d_being_object_of_A_ex_g_being_Morphism_of_c,d_st_
(_b_=_H1(c)_&_a_=_H1(d)_&_<^c,d^>_<>_{}_&_f_=_H2(c,d,g)_)
let a, b be object of B; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st
( b = H1(c) & a = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) ) )
reconsider a9 = a, b9 = b as object of A by A1, Def3;
A7: <^a,b^> = <^b9,a9^> by A1, Th9;
assume A8: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st
( b = H1(c) & a = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) )
let f be Morphism of a,b; ::_thesis: ex c, d being object of A ex g being Morphism of c,d st
( b = H1(c) & a = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) )
thus ex c, d being object of A ex g being Morphism of c,d st
( b = H1(c) & a = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) ) by A7, A8; ::_thesis: verum
end;
dualizing-func (A,B) is bijective from YELLOW18:sch_12(A2, A3, A4, A5, A6);
hence dualizing-func (A,B) is bijective ; ::_thesis: verum
end;
registration
let A be category;
cluster dualizing-func (A,(A opp)) -> strict contravariant bijective ;
coherence
dualizing-func (A,(A opp)) is bijective
proof
A,A opp are_opposite by Def4;
hence dualizing-func (A,(A opp)) is bijective by Th15; ::_thesis: verum
end;
cluster dualizing-func ((A opp),A) -> strict contravariant bijective ;
coherence
dualizing-func ((A opp),A) is bijective
proof
A,A opp are_opposite by Def4;
hence dualizing-func ((A opp),A) is bijective by Th15; ::_thesis: verum
end;
end;
theorem :: YELLOW18:16
for A, B being category st A,B are_opposite holds
A,B are_anti-isomorphic
proof
let A, B be category; ::_thesis: ( A,B are_opposite implies A,B are_anti-isomorphic )
assume A,B are_opposite ; ::_thesis: A,B are_anti-isomorphic
then dualizing-func (A,B) is bijective by Th15;
hence A,B are_anti-isomorphic by FUNCTOR0:def_40; ::_thesis: verum
end;
theorem Th17: :: YELLOW18:17
for A, B, C being category st A,B are_opposite holds
( A,C are_isomorphic iff B,C are_anti-isomorphic )
proof
let A, B, C be category; ::_thesis: ( A,B are_opposite implies ( A,C are_isomorphic iff B,C are_anti-isomorphic ) )
assume A,B are_opposite ; ::_thesis: ( A,C are_isomorphic iff B,C are_anti-isomorphic )
then A1: dualizing-func (A,B) is bijective by Th15;
hereby ::_thesis: ( B,C are_anti-isomorphic implies A,C are_isomorphic )
assume A,C are_isomorphic ; ::_thesis: B,C are_anti-isomorphic
then consider F being Functor of C,A such that
A2: ( F is bijective & F is covariant ) by FUNCTOR0:def_39;
reconsider F = F as covariant Functor of C,A by A2;
( (dualizing-func (A,B)) * F is bijective & (dualizing-func (A,B)) * F is contravariant ) by A1, A2, FUNCTOR1:12;
hence B,C are_anti-isomorphic by FUNCTOR0:def_40; ::_thesis: verum
end;
assume B,C are_anti-isomorphic ; ::_thesis: A,C are_isomorphic
then consider F being Functor of B,C such that
A3: ( F is bijective & F is contravariant ) by FUNCTOR0:def_40;
reconsider F = F as contravariant Functor of B,C by A3;
( F * (dualizing-func (A,B)) is bijective & F * (dualizing-func (A,B)) is covariant ) by A1, A3, FUNCTOR1:12;
hence A,C are_isomorphic by FUNCTOR0:def_39; ::_thesis: verum
end;
theorem :: YELLOW18:18
for A, B, C, D being category st A,B are_opposite & C,D are_opposite & A,C are_isomorphic holds
B,D are_isomorphic
proof
let A, B, C, D be category; ::_thesis: ( A,B are_opposite & C,D are_opposite & A,C are_isomorphic implies B,D are_isomorphic )
assume that
A1: A,B are_opposite and
A2: C,D are_opposite ; ::_thesis: ( not A,C are_isomorphic or B,D are_isomorphic )
( A,C are_isomorphic implies B,C are_anti-isomorphic ) by A1, Th17;
hence ( not A,C are_isomorphic or B,D are_isomorphic ) by A2, Th17; ::_thesis: verum
end;
theorem :: YELLOW18:19
for A, B, C, D being category st A,B are_opposite & C,D are_opposite & A,C are_anti-isomorphic holds
B,D are_anti-isomorphic
proof
let A, B, C, D be category; ::_thesis: ( A,B are_opposite & C,D are_opposite & A,C are_anti-isomorphic implies B,D are_anti-isomorphic )
assume that
A1: A,B are_opposite and
A2: C,D are_opposite ; ::_thesis: ( not A,C are_anti-isomorphic or B,D are_anti-isomorphic )
( A,C are_anti-isomorphic implies B,C are_isomorphic ) by A1, Th17;
hence ( not A,C are_anti-isomorphic or B,D are_anti-isomorphic ) by A2, Th17; ::_thesis: verum
end;
Lm1: now__::_thesis:_for_A,_B_being_category_st_A,B_are_opposite_holds_
for_a,_b_being_object_of_A_st_<^a,b^>_<>_{}_&_<^b,a^>_<>_{}_holds_
for_a9,_b9_being_object_of_B_st_a9_=_a_&_b9_=_b_holds_
for_f_being_Morphism_of_a,b
for_f9_being_Morphism_of_b9,a9_st_f9_=_f_holds_
(_(_f_is_retraction_implies_f9_is_coretraction_)_&_(_f_is_coretraction_implies_f9_is_retraction_)_)
let A, B be category; ::_thesis: ( A,B are_opposite implies for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) ) )
assume A1: A,B are_opposite ; ::_thesis: for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) )
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} & <^b,a^> <> {} implies for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) ) )
assume that
A2: <^a,b^> <> {} and
A3: <^b,a^> <> {} ; ::_thesis: for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) )
let a9, b9 be object of B; ::_thesis: ( a9 = a & b9 = b implies for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) ) )
assume that
A4: a9 = a and
A5: b9 = b ; ::_thesis: for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) )
let f be Morphism of a,b; ::_thesis: for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) )
let f9 be Morphism of b9,a9; ::_thesis: ( f9 = f implies ( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) ) )
assume A6: f9 = f ; ::_thesis: ( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) )
thus ( f is retraction implies f9 is coretraction ) ::_thesis: ( f is coretraction implies f9 is retraction )
proof
given g being Morphism of b,a such that A7: g is_right_inverse_of f ; :: according to ALTCAT_3:def_2 ::_thesis: f9 is coretraction
reconsider g9 = g as Morphism of a9,b9 by A1, A4, A5, Th7;
take g9 ; :: according to ALTCAT_3:def_3 ::_thesis: g9 is_left_inverse_of f9
f * g = idm b by A7, ALTCAT_3:def_1
.= idm b9 by A1, A5, Th10 ;
hence g9 * f9 = idm b9 by A1, A2, A3, A4, A5, A6, Th9; :: according to ALTCAT_3:def_1 ::_thesis: verum
end;
thus ( f is coretraction implies f9 is retraction ) ::_thesis: verum
proof
given g being Morphism of b,a such that A8: g is_left_inverse_of f ; :: according to ALTCAT_3:def_3 ::_thesis: f9 is retraction
reconsider g9 = g as Morphism of a9,b9 by A1, A4, A5, Th7;
take g9 ; :: according to ALTCAT_3:def_2 ::_thesis: f9 is_left_inverse_of g9
g * f = idm a by A8, ALTCAT_3:def_1
.= idm a9 by A1, A4, Th10 ;
hence f9 * g9 = idm a9 by A1, A2, A3, A4, A5, A6, Th9; :: according to ALTCAT_3:def_1 ::_thesis: verum
end;
end;
theorem :: YELLOW18:20
for A, B being category st A,B are_opposite holds
for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is retraction iff f9 is coretraction )
proof
let A, B be category; ::_thesis: ( A,B are_opposite implies for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is retraction iff f9 is coretraction ) )
assume A1: A,B are_opposite ; ::_thesis: for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is retraction iff f9 is coretraction )
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} & <^b,a^> <> {} implies for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is retraction iff f9 is coretraction ) )
assume that
A2: <^a,b^> <> {} and
A3: <^b,a^> <> {} ; ::_thesis: for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is retraction iff f9 is coretraction )
let a9, b9 be object of B; ::_thesis: ( a9 = a & b9 = b implies for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is retraction iff f9 is coretraction ) )
assume that
A4: a9 = a and
A5: b9 = b ; ::_thesis: for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is retraction iff f9 is coretraction )
A6: <^b9,a9^> = <^a,b^> by A1, A4, A5, Th9;
<^a9,b9^> = <^b,a^> by A1, A4, A5, Th9;
hence for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is retraction iff f9 is coretraction ) by A1, A2, A3, A4, A5, A6, Lm1; ::_thesis: verum
end;
theorem :: YELLOW18:21
for A, B being category st A,B are_opposite holds
for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is coretraction iff f9 is retraction )
proof
let A, B be category; ::_thesis: ( A,B are_opposite implies for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is coretraction iff f9 is retraction ) )
assume A1: A,B are_opposite ; ::_thesis: for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is coretraction iff f9 is retraction )
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} & <^b,a^> <> {} implies for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is coretraction iff f9 is retraction ) )
assume that
A2: <^a,b^> <> {} and
A3: <^b,a^> <> {} ; ::_thesis: for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is coretraction iff f9 is retraction )
let a9, b9 be object of B; ::_thesis: ( a9 = a & b9 = b implies for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is coretraction iff f9 is retraction ) )
assume that
A4: a9 = a and
A5: b9 = b ; ::_thesis: for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is coretraction iff f9 is retraction )
A6: <^b9,a9^> = <^a,b^> by A1, A4, A5, Th9;
<^a9,b9^> = <^b,a^> by A1, A4, A5, Th9;
hence for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is coretraction iff f9 is retraction ) by A1, A2, A3, A4, A5, A6, Lm1; ::_thesis: verum
end;
theorem Th22: :: YELLOW18:22
for A, B being category st A,B are_opposite holds
for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is retraction & f is coretraction holds
f9 " = f "
proof
let A, B be category; ::_thesis: ( A,B are_opposite implies for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is retraction & f is coretraction holds
f9 " = f " )
assume A1: A,B are_opposite ; ::_thesis: for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is retraction & f is coretraction holds
f9 " = f "
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} & <^b,a^> <> {} implies for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is retraction & f is coretraction holds
f9 " = f " )
assume that
A2: <^a,b^> <> {} and
A3: <^b,a^> <> {} ; ::_thesis: for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is retraction & f is coretraction holds
f9 " = f "
let a9, b9 be object of B; ::_thesis: ( a9 = a & b9 = b implies for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is retraction & f is coretraction holds
f9 " = f " )
assume that
A4: a9 = a and
A5: b9 = b ; ::_thesis: for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is retraction & f is coretraction holds
f9 " = f "
A6: <^b9,a9^> = <^a,b^> by A1, A4, A5, Th9;
A7: <^a9,b9^> = <^b,a^> by A1, A4, A5, Th9;
let f be Morphism of a,b; ::_thesis: for f9 being Morphism of b9,a9 st f9 = f & f is retraction & f is coretraction holds
f9 " = f "
let f9 be Morphism of b9,a9; ::_thesis: ( f9 = f & f is retraction & f is coretraction implies f9 " = f " )
assume that
A8: f9 = f and
A9: ( f is retraction & f is coretraction ) ; ::_thesis: f9 " = f "
reconsider g = f " as Morphism of a9,b9 by A1, A4, A5, Th7;
A10: (f ") * f = idm a by A2, A3, A9, ALTCAT_3:2;
A11: f * (f ") = idm b by A2, A3, A9, ALTCAT_3:2;
A12: f9 * g = idm a by A1, A2, A3, A4, A5, A8, A10, Th9;
A13: g * f9 = idm b by A1, A2, A3, A4, A5, A8, A11, Th9;
A14: f9 * g = idm a9 by A1, A4, A12, Th10;
A15: g * f9 = idm b9 by A1, A5, A13, Th10;
A16: ( f9 is retraction & f9 is coretraction ) by A1, A2, A3, A4, A5, A8, A9, Lm1;
A17: g is_left_inverse_of f9 by A15, ALTCAT_3:def_1;
g is_right_inverse_of f9 by A14, ALTCAT_3:def_1;
hence f9 " = f " by A2, A3, A6, A7, A16, A17, ALTCAT_3:def_4; ::_thesis: verum
end;
theorem Th23: :: YELLOW18:23
for A, B being category st A,B are_opposite holds
for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is iso iff f9 is iso )
proof
let A, B be category; ::_thesis: ( A,B are_opposite implies for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is iso iff f9 is iso ) )
assume A1: A,B are_opposite ; ::_thesis: for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is iso iff f9 is iso )
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} & <^b,a^> <> {} implies for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is iso iff f9 is iso ) )
assume that
A2: <^a,b^> <> {} and
A3: <^b,a^> <> {} ; ::_thesis: for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is iso iff f9 is iso )
let a9, b9 be object of B; ::_thesis: ( a9 = a & b9 = b implies for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is iso iff f9 is iso ) )
assume that
A4: a9 = a and
A5: b9 = b ; ::_thesis: for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is iso iff f9 is iso )
A6: <^b9,a9^> = <^a,b^> by A1, A4, A5, Th9;
A7: <^a9,b9^> = <^b,a^> by A1, A4, A5, Th9;
now__::_thesis:_for_A,_B_being_category_st_A,B_are_opposite_holds_
for_a,_b_being_object_of_A_st_<^a,b^>_<>_{}_&_<^b,a^>_<>_{}_holds_
for_a9,_b9_being_object_of_B_st_a9_=_a_&_b9_=_b_holds_
for_f_being_Morphism_of_a,b
for_f9_being_Morphism_of_b9,a9_st_f9_=_f_&_f_is_iso_holds_
f9_is_iso
let A, B be category; ::_thesis: ( A,B are_opposite implies for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is iso holds
f9 is iso )
assume A8: A,B are_opposite ; ::_thesis: for a, b being object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is iso holds
f9 is iso
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} & <^b,a^> <> {} implies for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is iso holds
f9 is iso )
assume that
A9: <^a,b^> <> {} and
A10: <^b,a^> <> {} ; ::_thesis: for a9, b9 being object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is iso holds
f9 is iso
let a9, b9 be object of B; ::_thesis: ( a9 = a & b9 = b implies for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is iso holds
f9 is iso )
assume that
A11: a9 = a and
A12: b9 = b ; ::_thesis: for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f & f is iso holds
f9 is iso
let f be Morphism of a,b; ::_thesis: for f9 being Morphism of b9,a9 st f9 = f & f is iso holds
f9 is iso
let f9 be Morphism of b9,a9; ::_thesis: ( f9 = f & f is iso implies f9 is iso )
assume A13: f9 = f ; ::_thesis: ( f is iso implies f9 is iso )
assume A14: f is iso ; ::_thesis: f9 is iso
then A15: f * (f ") = idm b by ALTCAT_3:def_5;
A16: (f ") * f = idm a by A14, ALTCAT_3:def_5;
( f is retraction & f is coretraction ) by A14, ALTCAT_3:5;
then A17: f9 " = f " by A8, A9, A10, A11, A12, A13, Th22;
A18: idm a = idm a9 by A8, A11, Th10;
A19: idm b = idm b9 by A8, A12, Th10;
A20: f9 * (f9 ") = idm a9 by A8, A9, A10, A11, A12, A13, A16, A17, A18, Th9;
(f9 ") * f9 = idm b9 by A8, A9, A10, A11, A12, A13, A15, A17, A19, Th9;
hence f9 is iso by A20, ALTCAT_3:def_5; ::_thesis: verum
end;
hence for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( f is iso iff f9 is iso ) by A1, A2, A3, A4, A5, A6, A7; ::_thesis: verum
end;
theorem Th24: :: YELLOW18:24
for A, B, C, D being category st A,B are_opposite & C,D are_opposite holds
for F, G being covariant Functor of B,C st F,G are_naturally_equivalent holds
((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) are_naturally_equivalent
proof
let A, B, C, D be category; ::_thesis: ( A,B are_opposite & C,D are_opposite implies for F, G being covariant Functor of B,C st F,G are_naturally_equivalent holds
((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) are_naturally_equivalent )
assume that
A1: A,B are_opposite and
A2: C,D are_opposite ; ::_thesis: for F, G being covariant Functor of B,C st F,G are_naturally_equivalent holds
((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) are_naturally_equivalent
let F, G be covariant Functor of B,C; ::_thesis: ( F,G are_naturally_equivalent implies ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) are_naturally_equivalent )
assume that
A3: F is_naturally_transformable_to G and
A4: G is_transformable_to F ; :: according to FUNCTOR3:def_4 ::_thesis: ( for b1 being natural_transformation of F,G holds
not for b2 being Element of the carrier of B holds b1 ! b2 is iso or ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) are_naturally_equivalent )
given t being natural_transformation of F,G such that A5: for a being object of B holds t ! a is iso ; ::_thesis: ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) are_naturally_equivalent
set dAB = dualizing-func (A,B);
set dCD = dualizing-func (C,D);
set dF = ((dualizing-func (C,D)) * F) * (dualizing-func (A,B));
set dG = ((dualizing-func (C,D)) * G) * (dualizing-func (A,B));
A6: F is_transformable_to G by A3, FUNCTOR2:def_6;
A7: now__::_thesis:_for_a_being_object_of_A_holds_
(_(((dualizing-func_(C,D))_*_G)_*_(dualizing-func_(A,B)))_._a_=_(dualizing-func_(C,D))_._(G_._((dualizing-func_(A,B))_._a))_&_(((dualizing-func_(C,D))_*_F)_*_(dualizing-func_(A,B)))_._a_=_(dualizing-func_(C,D))_._(F_._((dualizing-func_(A,B))_._a))_&_(((dualizing-func_(C,D))_*_G)_*_(dualizing-func_(A,B)))_._a_=_G_._((dualizing-func_(A,B))_._a)_&_(((dualizing-func_(C,D))_*_F)_*_(dualizing-func_(A,B)))_._a_=_F_._((dualizing-func_(A,B))_._a)_&_<^((((dualizing-func_(C,D))_*_G)_*_(dualizing-func_(A,B)))_._a),((((dualizing-func_(C,D))_*_F)_*_(dualizing-func_(A,B)))_._a)^>_=_<^(F_._((dualizing-func_(A,B))_._a)),(G_._((dualizing-func_(A,B))_._a))^>_)
let a be object of A; ::_thesis: ( (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a = (dualizing-func (C,D)) . (G . ((dualizing-func (A,B)) . a)) & (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a = (dualizing-func (C,D)) . (F . ((dualizing-func (A,B)) . a)) & (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a = G . ((dualizing-func (A,B)) . a) & (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a = F . ((dualizing-func (A,B)) . a) & <^((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a)^> = <^(F . ((dualizing-func (A,B)) . a)),(G . ((dualizing-func (A,B)) . a))^> )
A8: (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a = ((dualizing-func (C,D)) * G) . ((dualizing-func (A,B)) . a) by FUNCTOR0:33;
(((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a = ((dualizing-func (C,D)) * F) . ((dualizing-func (A,B)) . a) by FUNCTOR0:33;
hence ( (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a = (dualizing-func (C,D)) . (G . ((dualizing-func (A,B)) . a)) & (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a = (dualizing-func (C,D)) . (F . ((dualizing-func (A,B)) . a)) ) by A8, FUNCTOR0:33; ::_thesis: ( (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a = G . ((dualizing-func (A,B)) . a) & (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a = F . ((dualizing-func (A,B)) . a) & <^((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a)^> = <^(F . ((dualizing-func (A,B)) . a)),(G . ((dualizing-func (A,B)) . a))^> )
hence ( (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a = G . ((dualizing-func (A,B)) . a) & (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a = F . ((dualizing-func (A,B)) . a) ) by A2, Def5; ::_thesis: <^((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a)^> = <^(F . ((dualizing-func (A,B)) . a)),(G . ((dualizing-func (A,B)) . a))^>
hence <^((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a)^> = <^(F . ((dualizing-func (A,B)) . a)),(G . ((dualizing-func (A,B)) . a))^> by A2, Th9; ::_thesis: verum
end;
A9: ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)) is_transformable_to ((dualizing-func (C,D)) * F) * (dualizing-func (A,B))
proof
let a be object of A; :: according to FUNCTOR2:def_1 ::_thesis: not <^((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a)^> = {}
<^((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a)^> = <^(F . ((dualizing-func (A,B)) . a)),(G . ((dualizing-func (A,B)) . a))^> by A7;
hence not <^((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a)^> = {} by A6, FUNCTOR2:def_1; ::_thesis: verum
end;
dom t = the carrier of B by PARTFUN1:def_2
.= the carrier of A by A1, Def3 ;
then reconsider dt = t as ManySortedSet of the carrier of A by PARTFUN1:def_2, RELAT_1:def_18;
dt is transformation of ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B))
proof
thus ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)) is_transformable_to ((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) by A9; :: according to FUNCTOR2:def_2 ::_thesis: for b1 being Element of the carrier of A holds dt . b1 is Element of <^((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . b1),((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . b1)^>
let a be object of A; ::_thesis: dt . a is Element of <^((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a)^>
set b = (dualizing-func (A,B)) . a;
A10: (dualizing-func (A,B)) . a = a by A1, Def5;
t . ((dualizing-func (A,B)) . a) = t ! ((dualizing-func (A,B)) . a) by A6, FUNCTOR2:def_4;
hence dt . a is Element of <^((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a)^> by A7, A10; ::_thesis: verum
end;
then reconsider dt = dt as transformation of ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) ;
A11: now__::_thesis:_for_a,_b_being_object_of_A_st_<^a,b^>_<>_{}_holds_
for_f_being_Morphism_of_a,b_holds_(dt_!_b)_*_((((dualizing-func_(C,D))_*_G)_*_(dualizing-func_(A,B)))_._f)_=_((((dualizing-func_(C,D))_*_F)_*_(dualizing-func_(A,B)))_._f)_*_(dt_!_a)
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds (dt ! b) * ((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . f) = ((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . f) * (dt ! a) )
assume A12: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds (dt ! b) * ((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . f) = ((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . f) * (dt ! a)
let f be Morphism of a,b; ::_thesis: (dt ! b) * ((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . f) = ((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . f) * (dt ! a)
set b9 = (dualizing-func (A,B)) . b;
set a9 = (dualizing-func (A,B)) . a;
set f9 = (dualizing-func (A,B)) . f;
A13: (dualizing-func (A,B)) . a = a by A1, Def5;
A14: (dualizing-func (A,B)) . b = b by A1, Def5;
then A15: <^((dualizing-func (A,B)) . b),((dualizing-func (A,B)) . a)^> = <^a,b^> by A1, A13, Th9;
A16: t ! ((dualizing-func (A,B)) . a) = t . a by A6, A13, FUNCTOR2:def_4;
A17: t ! ((dualizing-func (A,B)) . b) = t . b by A6, A14, FUNCTOR2:def_4;
A18: dt ! a = t . a by A9, FUNCTOR2:def_4;
A19: dt ! b = t . b by A9, FUNCTOR2:def_4;
A20: <^(F . ((dualizing-func (A,B)) . b)),(F . ((dualizing-func (A,B)) . a))^> <> {} by A12, A15, FUNCTOR0:def_18;
A21: <^(G . ((dualizing-func (A,B)) . b)),(G . ((dualizing-func (A,B)) . a))^> <> {} by A12, A15, FUNCTOR0:def_18;
A22: (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . f = ((dualizing-func (C,D)) * F) . ((dualizing-func (A,B)) . f) by A12, FUNCTOR3:7;
A23: (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . f = ((dualizing-func (C,D)) * G) . ((dualizing-func (A,B)) . f) by A12, FUNCTOR3:7;
A24: (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . f = (dualizing-func (C,D)) . (F . ((dualizing-func (A,B)) . f)) by A12, A15, A22, FUNCTOR3:8;
A25: (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . f = (dualizing-func (C,D)) . (G . ((dualizing-func (A,B)) . f)) by A12, A15, A23, FUNCTOR3:8;
A26: (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . f = F . ((dualizing-func (A,B)) . f) by A2, A20, A24, Def5;
A27: (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . f = G . ((dualizing-func (A,B)) . f) by A2, A21, A25, Def5;
A28: <^(F . ((dualizing-func (A,B)) . b)),(G . ((dualizing-func (A,B)) . b))^> <> {} by A6, FUNCTOR2:def_1;
A29: <^(F . ((dualizing-func (A,B)) . a)),(G . ((dualizing-func (A,B)) . a))^> <> {} by A6, FUNCTOR2:def_1;
A30: (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a = G . ((dualizing-func (A,B)) . a) by A7;
A31: (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a = F . ((dualizing-func (A,B)) . a) by A7;
A32: (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . b = G . ((dualizing-func (A,B)) . b) by A7;
A33: (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . b = F . ((dualizing-func (A,B)) . b) by A7;
hence (dt ! b) * ((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . f) = (G . ((dualizing-func (A,B)) . f)) * (t ! ((dualizing-func (A,B)) . b)) by A2, A17, A19, A21, A27, A28, A30, A32, Th9
.= (t ! ((dualizing-func (A,B)) . a)) * (F . ((dualizing-func (A,B)) . f)) by A3, A12, A15, FUNCTOR2:def_7
.= ((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . f) * (dt ! a) by A2, A16, A18, A20, A26, A29, A30, A31, A33, Th9 ;
::_thesis: verum
end;
thus ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)) is_naturally_transformable_to ((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) :: according to FUNCTOR3:def_4 ::_thesis: ( ((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) is_transformable_to ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)) & ex b1 being natural_transformation of ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) st
for b2 being Element of the carrier of A holds b1 ! b2 is iso )
proof
thus ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)) is_transformable_to ((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) by A9; :: according to FUNCTOR2:def_6 ::_thesis: ex b1 being transformation of ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) st
for b2, b3 being Element of the carrier of A holds
( <^b2,b3^> = {} or for b4 being Element of <^b2,b3^> holds (b1 ! b3) * ((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . b4) = ((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . b4) * (b1 ! b2) )
take dt ; ::_thesis: for b1, b2 being Element of the carrier of A holds
( <^b1,b2^> = {} or for b3 being Element of <^b1,b2^> holds (dt ! b2) * ((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . b3) = ((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . b3) * (dt ! b1) )
thus for b1, b2 being Element of the carrier of A holds
( <^b1,b2^> = {} or for b3 being Element of <^b1,b2^> holds (dt ! b2) * ((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . b3) = ((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . b3) * (dt ! b1) ) by A11; ::_thesis: verum
end;
then reconsider dt = dt as natural_transformation of ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) by A11, FUNCTOR2:def_7;
thus ((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) is_transformable_to ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)) ::_thesis: ex b1 being natural_transformation of ((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) st
for b2 being Element of the carrier of A holds b1 ! b2 is iso
proof
let a be object of A; :: according to FUNCTOR2:def_1 ::_thesis: not <^((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a)^> = {}
A34: (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a = F . ((dualizing-func (A,B)) . a) by A7;
(((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a = G . ((dualizing-func (A,B)) . a) by A7;
then <^((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a)^> = <^(G . ((dualizing-func (A,B)) . a)),(F . ((dualizing-func (A,B)) . a))^> by A2, A34, Th9;
hence not <^((((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a),((((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a)^> = {} by A4, FUNCTOR2:def_1; ::_thesis: verum
end;
take dt ; ::_thesis: for b1 being Element of the carrier of A holds dt ! b1 is iso
let a be object of A; ::_thesis: dt ! a is iso
A35: (((dualizing-func (C,D)) * G) * (dualizing-func (A,B))) . a = G . ((dualizing-func (A,B)) . a) by A7;
A36: (((dualizing-func (C,D)) * F) * (dualizing-func (A,B))) . a = F . ((dualizing-func (A,B)) . a) by A7;
A37: (dualizing-func (A,B)) . a = a by A1, Def5;
A38: dt ! a = t . a by A9, FUNCTOR2:def_4;
A39: t ! ((dualizing-func (A,B)) . a) = t . a by A6, A37, FUNCTOR2:def_4;
A40: t ! ((dualizing-func (A,B)) . a) is iso by A5;
A41: <^(F . ((dualizing-func (A,B)) . a)),(G . ((dualizing-func (A,B)) . a))^> <> {} by A6, FUNCTOR2:def_1;
<^(G . ((dualizing-func (A,B)) . a)),(F . ((dualizing-func (A,B)) . a))^> <> {} by A4, FUNCTOR2:def_1;
hence dt ! a is iso by A2, A35, A36, A38, A39, A40, A41, Th23; ::_thesis: verum
end;
theorem Th25: :: YELLOW18:25
for A, B, C, D being category st A,B are_opposite & C,D are_opposite & A,C are_equivalent holds
B,D are_equivalent
proof
let A, B, C, D be category; ::_thesis: ( A,B are_opposite & C,D are_opposite & A,C are_equivalent implies B,D are_equivalent )
assume that
A1: A,B are_opposite and
A2: C,D are_opposite ; ::_thesis: ( not A,C are_equivalent or B,D are_equivalent )
given F being covariant Functor of A,C, G being covariant Functor of C,A such that A3: G * F, id A are_naturally_equivalent and
A4: F * G, id C are_naturally_equivalent ; :: according to YELLOW18:def_2 ::_thesis: B,D are_equivalent
take dF = ((dualizing-func (C,D)) * F) * (dualizing-func (B,A)); :: according to YELLOW18:def_2 ::_thesis: ex G being covariant Functor of D,B st
( G * dF, id B are_naturally_equivalent & dF * G, id D are_naturally_equivalent )
take dG = ((dualizing-func (A,B)) * G) * (dualizing-func (D,C)); ::_thesis: ( dG * dF, id B are_naturally_equivalent & dF * dG, id D are_naturally_equivalent )
A5: G * (id C) = FunctorStr(# the ObjectMap of G, the MorphMap of G #) by FUNCTOR3:5;
A6: (dualizing-func (A,B)) * (id A) = dualizing-func (A,B) by FUNCTOR3:5;
A7: id C = (dualizing-func (D,C)) * (dualizing-func (C,D)) by A2, Th14;
A8: ((dualizing-func (A,B)) * (G * F)) * (dualizing-func (B,A)) = (((dualizing-func (A,B)) * G) * F) * (dualizing-func (B,A)) by FUNCTOR0:32
.= ((dualizing-func (A,B)) * G) * (F * (dualizing-func (B,A))) by FUNCTOR0:32
.= ((dualizing-func (A,B)) * (G * (id C))) * (F * (dualizing-func (B,A))) by A5, Th3
.= (((dualizing-func (A,B)) * G) * (id C)) * (F * (dualizing-func (B,A))) by FUNCTOR0:32
.= (dG * (dualizing-func (C,D))) * (F * (dualizing-func (B,A))) by A7, FUNCTOR0:32
.= dG * ((dualizing-func (C,D)) * (F * (dualizing-func (B,A)))) by FUNCTOR0:32
.= dG * dF by FUNCTOR0:32 ;
((dualizing-func (A,B)) * (id A)) * (dualizing-func (B,A)) = id B by A1, A6, Th14;
hence dG * dF, id B are_naturally_equivalent by A1, A3, A8, Th24; ::_thesis: dF * dG, id D are_naturally_equivalent
A9: F * (id A) = FunctorStr(# the ObjectMap of F, the MorphMap of F #) by FUNCTOR3:5;
A10: (dualizing-func (C,D)) * (id C) = dualizing-func (C,D) by FUNCTOR3:5;
A11: id A = (dualizing-func (B,A)) * (dualizing-func (A,B)) by A1, Th14;
A12: ((dualizing-func (C,D)) * (F * G)) * (dualizing-func (D,C)) = (((dualizing-func (C,D)) * F) * G) * (dualizing-func (D,C)) by FUNCTOR0:32
.= ((dualizing-func (C,D)) * F) * (G * (dualizing-func (D,C))) by FUNCTOR0:32
.= ((dualizing-func (C,D)) * (F * (id A))) * (G * (dualizing-func (D,C))) by A9, Th3
.= (((dualizing-func (C,D)) * F) * (id A)) * (G * (dualizing-func (D,C))) by FUNCTOR0:32
.= (dF * (dualizing-func (A,B))) * (G * (dualizing-func (D,C))) by A11, FUNCTOR0:32
.= dF * ((dualizing-func (A,B)) * (G * (dualizing-func (D,C)))) by FUNCTOR0:32
.= dF * dG by FUNCTOR0:32 ;
((dualizing-func (C,D)) * (id C)) * (dualizing-func (D,C)) = id D by A2, A10, Th14;
hence dF * dG, id D are_naturally_equivalent by A2, A4, A12, Th24; ::_thesis: verum
end;
definition
let A, B be category;
predA,B are_dual means :Def6: :: YELLOW18:def 6
A,B opp are_equivalent ;
symmetry
for A, B being category st A,B opp are_equivalent holds
B,A opp are_equivalent
proof
let A, B be category; ::_thesis: ( A,B opp are_equivalent implies B,A opp are_equivalent )
A1: A,A opp are_opposite by Def4;
B,B opp are_opposite by Def4;
hence ( A,B opp are_equivalent implies B,A opp are_equivalent ) by A1, Th25; ::_thesis: verum
end;
end;
:: deftheorem Def6 defines are_dual YELLOW18:def_6_:_
for A, B being category holds
( A,B are_dual iff A,B opp are_equivalent );
theorem :: YELLOW18:26
for A, B being category st A,B are_anti-isomorphic holds
A,B are_dual
proof
let A, B be category; ::_thesis: ( A,B are_anti-isomorphic implies A,B are_dual )
A1: B,B opp are_opposite by Def4;
assume A,B are_anti-isomorphic ; ::_thesis: A,B are_dual
then A,B opp are_isomorphic by A1, Th17;
hence A,B opp are_equivalent by Th5; :: according to YELLOW18:def_6 ::_thesis: verum
end;
theorem :: YELLOW18:27
for A, B, C being category st A,B are_opposite holds
( A,C are_equivalent iff B,C are_dual )
proof
let A, B, C be category; ::_thesis: ( A,B are_opposite implies ( A,C are_equivalent iff B,C are_dual ) )
assume A1: A,B are_opposite ; ::_thesis: ( A,C are_equivalent iff B,C are_dual )
A2: ( B,C are_dual iff B,C opp are_equivalent ) by Def6;
C,C opp are_opposite by Def4;
hence ( A,C are_equivalent iff B,C are_dual ) by A1, A2, Th25; ::_thesis: verum
end;
theorem :: YELLOW18:28
for A, B, C being category st A,B are_dual & B,C are_equivalent holds
A,C are_dual
proof
let A, B, C be category; ::_thesis: ( A,B are_dual & B,C are_equivalent implies A,C are_dual )
assume that
A1: A,B opp are_equivalent and
A2: B,C are_equivalent ; :: according to YELLOW18:def_6 ::_thesis: A,C are_dual
A3: B,B opp are_opposite by Def4;
C,C opp are_opposite by Def4;
then B opp ,C opp are_equivalent by A2, A3, Th25;
hence A,C opp are_equivalent by A1, Th4; :: according to YELLOW18:def_6 ::_thesis: verum
end;
theorem :: YELLOW18:29
for A, B, C being category st A,B are_dual & B,C are_dual holds
A,C are_equivalent
proof
let A, B, C be category; ::_thesis: ( A,B are_dual & B,C are_dual implies A,C are_equivalent )
assume that
A1: A,B opp are_equivalent and
A2: B,C are_dual ; :: according to YELLOW18:def_6 ::_thesis: A,C are_equivalent
C,B opp are_equivalent by A2, Def6;
hence A,C are_equivalent by A1, Th4; ::_thesis: verum
end;
begin
theorem Th30: :: YELLOW18:30
for X, Y, x being set holds
( x in Funcs (X,Y) iff ( x is Function & proj1 x = X & proj2 x c= Y ) )
proof
let X, Y, x be set ; ::_thesis: ( x in Funcs (X,Y) iff ( x is Function & proj1 x = X & proj2 x c= Y ) )
hereby ::_thesis: ( x is Function & proj1 x = X & proj2 x c= Y implies x in Funcs (X,Y) )
assume x in Funcs (X,Y) ; ::_thesis: ( x is Function & proj1 x = X & proj2 x c= Y )
then ex f being Function st
( x = f & dom f = X & rng f c= Y ) by FUNCT_2:def_2;
hence ( x is Function & proj1 x = X & proj2 x c= Y ) ; ::_thesis: verum
end;
assume x is Function ; ::_thesis: ( not proj1 x = X or not proj2 x c= Y or x in Funcs (X,Y) )
then reconsider x = x as Function ;
dom x = proj1 x ;
hence ( not proj1 x = X or not proj2 x c= Y or x in Funcs (X,Y) ) by FUNCT_2:def_2; ::_thesis: verum
end;
definition
let C be category;
attrC is para-functional means :: YELLOW18:def 7
ex F being ManySortedSet of C st
for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((F . a1),(F . a2));
end;
:: deftheorem defines para-functional YELLOW18:def_7_:_
for C being category holds
( C is para-functional iff ex F being ManySortedSet of C st
for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((F . a1),(F . a2)) );
registration
cluster non empty transitive quasi-functional associative with_units -> para-functional for AltCatStr ;
coherence
for b1 being category st b1 is quasi-functional holds
b1 is para-functional
proof
let C be category; ::_thesis: ( C is quasi-functional implies C is para-functional )
assume A1: for a1, a2 being object of C holds <^a1,a2^> c= Funcs (a1,a2) ; :: according to ALTCAT_1:def_11 ::_thesis: C is para-functional
reconsider F = id the carrier of C as ManySortedSet of C ;
take F ; :: according to YELLOW18:def_7 ::_thesis: for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((F . a1),(F . a2))
let a1, a2 be object of C; ::_thesis: <^a1,a2^> c= Funcs ((F . a1),(F . a2))
A2: F . a1 = a1 by FUNCT_1:18;
F . a2 = a2 by FUNCT_1:18;
hence <^a1,a2^> c= Funcs ((F . a1),(F . a2)) by A1, A2; ::_thesis: verum
end;
end;
definition
let C be category;
let a be set ;
funcC -carrier_of a -> set means :Def8: :: YELLOW18:def 8
ex b being object of C st
( b = a & it = proj1 (idm b) ) if a is object of C
otherwise it = {} ;
consistency
for b1 being set holds verum ;
existence
( ( a is object of C implies ex b1 being set ex b being object of C st
( b = a & b1 = proj1 (idm b) ) ) & ( a is not object of C implies ex b1 being set st b1 = {} ) )
proof
hereby ::_thesis: ( a is not object of C implies ex b1 being set st b1 = {} )
assume a is object of C ; ::_thesis: ex x being set ex b being object of C st
( b = a & x = proj1 (idm b) )
then reconsider b = a as object of C ;
take x = proj1 (idm b); ::_thesis: ex b being object of C st
( b = a & x = proj1 (idm b) )
take b = b; ::_thesis: ( b = a & x = proj1 (idm b) )
thus ( b = a & x = proj1 (idm b) ) ; ::_thesis: verum
end;
thus ( a is not object of C implies ex b1 being set st b1 = {} ) ; ::_thesis: verum
end;
uniqueness
for b1, b2 being set holds
( ( a is object of C & ex b being object of C st
( b = a & b1 = proj1 (idm b) ) & ex b being object of C st
( b = a & b2 = proj1 (idm b) ) implies b1 = b2 ) & ( a is not object of C & b1 = {} & b2 = {} implies b1 = b2 ) ) ;
end;
:: deftheorem Def8 defines -carrier_of YELLOW18:def_8_:_
for C being category
for a being set
for b3 being set holds
( ( a is object of C implies ( b3 = C -carrier_of a iff ex b being object of C st
( b = a & b3 = proj1 (idm b) ) ) ) & ( a is not object of C implies ( b3 = C -carrier_of a iff b3 = {} ) ) );
notation
let C be category;
let a be object of C;
synonym the_carrier_of a for C -carrier_of a;
end;
definition
let C be category;
let a be object of C;
redefine func C -carrier_of a equals :: YELLOW18:def 9
proj1 (idm a);
compatibility
for b1 being set holds
( b1 = C -carrier_of a iff b1 = proj1 (idm a) ) by Def8;
end;
:: deftheorem defines -carrier_of YELLOW18:def_9_:_
for C being category
for a being object of C holds C -carrier_of a = proj1 (idm a);
theorem Th31: :: YELLOW18:31
for A being non empty set
for a being object of (EnsCat A) holds idm a = id a
proof
let A be non empty set ; ::_thesis: for a being object of (EnsCat A) holds idm a = id a
let a be object of (EnsCat A); ::_thesis: idm a = id a
<^a,a^> = Funcs (a,a) by ALTCAT_1:def_14;
then reconsider e = id a as Morphism of a,a by ALTCAT_1:1;
now__::_thesis:_for_b_being_object_of_(EnsCat_A)_st_<^a,b^>_<>_{}_holds_
for_f_being_Morphism_of_a,b_holds_f_*_e_=_f
let b be object of (EnsCat A); ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds f * e = f )
assume A1: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds f * e = f
let f be Morphism of a,b; ::_thesis: f * e = f
A2: <^a,b^> = Funcs (a,b) by ALTCAT_1:def_14;
then reconsider g = f as Function ;
A3: dom g = a by A1, A2, Th30;
thus f * e = g * (id a) by A1, ALTCAT_1:def_12
.= f by A3, RELAT_1:52 ; ::_thesis: verum
end;
hence idm a = id a by ALTCAT_1:def_17; ::_thesis: verum
end;
theorem Th32: :: YELLOW18:32
for A being non empty set
for a being object of (EnsCat A) holds the_carrier_of a = a
proof
let A be non empty set ; ::_thesis: for a being object of (EnsCat A) holds the_carrier_of a = a
let a be object of (EnsCat A); ::_thesis: the_carrier_of a = a
thus the_carrier_of a = proj1 (id a) by Th31
.= a ; ::_thesis: verum
end;
definition
let C be category;
attrC is set-id-inheriting means :Def10: :: YELLOW18:def 10
for a being object of C holds idm a = id (the_carrier_of a);
end;
:: deftheorem Def10 defines set-id-inheriting YELLOW18:def_10_:_
for C being category holds
( C is set-id-inheriting iff for a being object of C holds idm a = id (the_carrier_of a) );
registration
let A be non empty set ;
cluster EnsCat A -> set-id-inheriting ;
coherence
EnsCat A is set-id-inheriting
proof
let a be object of (EnsCat A); :: according to YELLOW18:def_10 ::_thesis: idm a = id (the_carrier_of a)
thus idm a = id a by Th31
.= id (the_carrier_of a) by Th32 ; ::_thesis: verum
end;
end;
definition
let C be category;
attrC is concrete means :Def11: :: YELLOW18:def 11
( C is para-functional & C is semi-functional & C is set-id-inheriting );
end;
:: deftheorem Def11 defines concrete YELLOW18:def_11_:_
for C being category holds
( C is concrete iff ( C is para-functional & C is semi-functional & C is set-id-inheriting ) );
registration
cluster non empty transitive associative with_units concrete -> semi-functional para-functional set-id-inheriting for AltCatStr ;
coherence
for b1 being category st b1 is concrete holds
( b1 is para-functional & b1 is semi-functional & b1 is set-id-inheriting ) by Def11;
cluster non empty transitive semi-functional associative with_units para-functional set-id-inheriting -> concrete for AltCatStr ;
coherence
for b1 being category st b1 is para-functional & b1 is semi-functional & b1 is set-id-inheriting holds
b1 is concrete by Def11;
end;
registration
cluster non empty transitive strict quasi-functional associative with_units reflexive concrete for AltCatStr ;
existence
ex b1 being category st
( b1 is concrete & b1 is quasi-functional & b1 is strict )
proof
take EnsCat NAT ; ::_thesis: ( EnsCat NAT is concrete & EnsCat NAT is quasi-functional & EnsCat NAT is strict )
thus ( EnsCat NAT is concrete & EnsCat NAT is quasi-functional & EnsCat NAT is strict ) ; ::_thesis: verum
end;
end;
theorem Th33: :: YELLOW18:33
for C being category holds
( C is para-functional iff for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((the_carrier_of a1),(the_carrier_of a2)) )
proof
let C be category; ::_thesis: ( C is para-functional iff for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((the_carrier_of a1),(the_carrier_of a2)) )
thus ( C is para-functional implies for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((the_carrier_of a1),(the_carrier_of a2)) ) ::_thesis: ( ( for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((the_carrier_of a1),(the_carrier_of a2)) ) implies C is para-functional )
proof
given F being ManySortedSet of C such that A1: for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((F . a1),(F . a2)) ; :: according to YELLOW18:def_7 ::_thesis: for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((the_carrier_of a1),(the_carrier_of a2))
let a1, a2 be object of C; ::_thesis: <^a1,a2^> c= Funcs ((the_carrier_of a1),(the_carrier_of a2))
A2: idm a1 in <^a1,a1^> ;
A3: <^a1,a1^> c= Funcs ((F . a1),(F . a1)) by A1;
A4: <^a2,a2^> c= Funcs ((F . a2),(F . a2)) by A1;
A5: idm a2 in <^a2,a2^> ;
A6: ex f1 being Function st
( idm a1 = f1 & dom f1 = F . a1 & rng f1 c= F . a1 ) by A2, A3, FUNCT_2:def_2;
ex f2 being Function st
( idm a2 = f2 & dom f2 = F . a2 & rng f2 c= F . a2 ) by A4, A5, FUNCT_2:def_2;
hence <^a1,a2^> c= Funcs ((the_carrier_of a1),(the_carrier_of a2)) by A1, A6; ::_thesis: verum
end;
assume A7: for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((the_carrier_of a1),(the_carrier_of a2)) ; ::_thesis: C is para-functional
deffunc H1( set ) -> set = C -carrier_of $1;
consider F being ManySortedSet of the carrier of C such that
A8: for a being Element of C holds F . a = H1(a) from PBOOLE:sch_5();
take F ; :: according to YELLOW18:def_7 ::_thesis: for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((F . a1),(F . a2))
let a, b be object of C; ::_thesis: <^a,b^> c= Funcs ((F . a),(F . b))
A9: F . a = the_carrier_of a by A8;
F . b = the_carrier_of b by A8;
hence <^a,b^> c= Funcs ((F . a),(F . b)) by A7, A9; ::_thesis: verum
end;
theorem Th34: :: YELLOW18:34
for C being para-functional category
for a, b being object of C st <^a,b^> <> {} holds
for f being Morphism of a,b holds f is Function of (the_carrier_of a),(the_carrier_of b)
proof
let C be para-functional category; ::_thesis: for a, b being object of C st <^a,b^> <> {} holds
for f being Morphism of a,b holds f is Function of (the_carrier_of a),(the_carrier_of b)
let a, b be object of C; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds f is Function of (the_carrier_of a),(the_carrier_of b) )
assume A1: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds f is Function of (the_carrier_of a),(the_carrier_of b)
let f be Morphism of a,b; ::_thesis: f is Function of (the_carrier_of a),(the_carrier_of b)
A2: <^a,b^> c= Funcs ((the_carrier_of a),(the_carrier_of b)) by Th33;
f in <^a,b^> by A1;
hence f is Function of (the_carrier_of a),(the_carrier_of b) by A2, FUNCT_2:66; ::_thesis: verum
end;
registration
let A be para-functional category;
let a, b be object of A;
cluster -> Relation-like Function-like for Element of <^a,b^>;
coherence
for b1 being Morphism of a,b holds
( b1 is Function-like & b1 is Relation-like )
proof
let f be Morphism of a,b; ::_thesis: ( f is Function-like & f is Relation-like )
percases ( <^a,b^> <> {} or <^a,b^> = {} ) ;
suppose <^a,b^> <> {} ; ::_thesis: ( f is Function-like & f is Relation-like )
hence ( f is Function-like & f is Relation-like ) by Th34; ::_thesis: verum
end;
suppose <^a,b^> = {} ; ::_thesis: ( f is Function-like & f is Relation-like )
hence ( f is Function-like & f is Relation-like ) ; ::_thesis: verum
end;
end;
end;
end;
theorem Th35: :: YELLOW18:35
for C being para-functional category
for a, b being object of C st <^a,b^> <> {} holds
for f being Morphism of a,b holds
( dom f = the_carrier_of a & rng f c= the_carrier_of b )
proof
let C be para-functional category; ::_thesis: for a, b being object of C st <^a,b^> <> {} holds
for f being Morphism of a,b holds
( dom f = the_carrier_of a & rng f c= the_carrier_of b )
let a, b be object of C; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds
( dom f = the_carrier_of a & rng f c= the_carrier_of b ) )
assume A1: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds
( dom f = the_carrier_of a & rng f c= the_carrier_of b )
let f be Morphism of a,b; ::_thesis: ( dom f = the_carrier_of a & rng f c= the_carrier_of b )
A2: <^a,b^> c= Funcs ((the_carrier_of a),(the_carrier_of b)) by Th33;
f in <^a,b^> by A1;
hence ( dom f = the_carrier_of a & rng f c= the_carrier_of b ) by A2, FUNCT_2:92; ::_thesis: verum
end;
theorem Th36: :: YELLOW18:36
for C being semi-functional para-functional category
for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = g * f
proof
let C be semi-functional para-functional category; ::_thesis: for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = g * f
let a, b, c be object of C; ::_thesis: ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c holds g * f = g * f )
assume that
A1: <^a,b^> <> {} and
A2: <^b,c^> <> {} ; ::_thesis: for f being Morphism of a,b
for g being Morphism of b,c holds g * f = g * f
let f be Morphism of a,b; ::_thesis: for g being Morphism of b,c holds g * f = g * f
let g be Morphism of b,c; ::_thesis: g * f = g * f
<^a,c^> <> {} by A1, A2, ALTCAT_1:def_2;
hence g * f = g * f by A1, A2, ALTCAT_1:def_12; ::_thesis: verum
end;
theorem Th37: :: YELLOW18:37
for C being semi-functional para-functional category
for a being object of C st id (the_carrier_of a) in <^a,a^> holds
idm a = id (the_carrier_of a)
proof
let C be semi-functional para-functional category; ::_thesis: for a being object of C st id (the_carrier_of a) in <^a,a^> holds
idm a = id (the_carrier_of a)
let a be object of C; ::_thesis: ( id (the_carrier_of a) in <^a,a^> implies idm a = id (the_carrier_of a) )
assume id (the_carrier_of a) in <^a,a^> ; ::_thesis: idm a = id (the_carrier_of a)
then reconsider f = id (the_carrier_of a) as Morphism of a,a ;
now__::_thesis:_for_b_being_object_of_C_st_<^a,b^>_<>_{}_holds_
for_g_being_Morphism_of_a,b_holds_g_*_f_=_g
let b be object of C; ::_thesis: ( <^a,b^> <> {} implies for g being Morphism of a,b holds g * f = g )
assume A1: <^a,b^> <> {} ; ::_thesis: for g being Morphism of a,b holds g * f = g
let g be Morphism of a,b; ::_thesis: g * f = g
A2: dom g = the_carrier_of a by A1, Th35;
thus g * f = g * (id (the_carrier_of a)) by A1, Th36
.= g by A2, RELAT_1:52 ; ::_thesis: verum
end;
hence idm a = id (the_carrier_of a) by ALTCAT_1:def_17; ::_thesis: verum
end;
scheme :: YELLOW18:sch 16
ConcreteCategoryLambda{ F1() -> non empty set , F2( set , set ) -> set , F3( set ) -> set } :
ex C being strict concrete category st
( the carrier of C = F1() & ( for a being object of C holds the_carrier_of a = F3(a) ) & ( for a, b being object of C holds <^a,b^> = F2(a,b) ) )
provided
A1: for a, b, c being Element of F1()
for f, g being Function st f in F2(a,b) & g in F2(b,c) holds
g * f in F2(a,c) and
A2: for a, b being Element of F1() holds F2(a,b) c= Funcs (F3(a),F3(b)) and
A3: for a being Element of F1() holds id F3(a) in F2(a,a)
proof
deffunc H1( set , set , set , set , set ) -> set = $4 (#) $5;
A4: now__::_thesis:_for_a,_b_being_Element_of_F1()
for_f_being_set_st_f_in_F2(a,b)_holds_
f_is_Function
let a, b be Element of F1(); ::_thesis: for f being set st f in F2(a,b) holds
f is Function
let f be set ; ::_thesis: ( f in F2(a,b) implies f is Function )
assume A5: f in F2(a,b) ; ::_thesis: f is Function
F2(a,b) c= Funcs (F3(a),F3(b)) by A2;
hence f is Function by A5; ::_thesis: verum
end;
A6: for a, b, c being Element of F1()
for f, g being set st f in F2(a,b) & g in F2(b,c) holds
H1(a,b,c,f,g) in F2(a,c)
proof
let a, b, c be Element of F1(); ::_thesis: for f, g being set st f in F2(a,b) & g in F2(b,c) holds
H1(a,b,c,f,g) in F2(a,c)
let f, g be set ; ::_thesis: ( f in F2(a,b) & g in F2(b,c) implies H1(a,b,c,f,g) in F2(a,c) )
assume that
A7: f in F2(a,b) and
A8: g in F2(b,c) ; ::_thesis: H1(a,b,c,f,g) in F2(a,c)
reconsider f = f, g = g as Function by A4, A7, A8;
g * f = f (#) g ;
hence H1(a,b,c,f,g) in F2(a,c) by A1, A7, A8; ::_thesis: verum
end;
A9: for a, b, c, d being Element of F1()
for f, g, h being set st f in F2(a,b) & g in F2(b,c) & h in F2(c,d) holds
H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h))
proof
let a, b, c, d be Element of F1(); ::_thesis: for f, g, h being set st f in F2(a,b) & g in F2(b,c) & h in F2(c,d) holds
H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h))
let f, g, h be set ; ::_thesis: ( f in F2(a,b) & g in F2(b,c) & h in F2(c,d) implies H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h)) )
assume that
A10: f in F2(a,b) and
A11: g in F2(b,c) and
A12: h in F2(c,d) ; ::_thesis: H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h))
reconsider f = f, g = g, h = h as Function by A4, A10, A11, A12;
(f (#) g) (#) h = f (#) (h * g) by RELAT_1:36;
hence H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h)) ; ::_thesis: verum
end;
A13: for a being Element of F1() ex f being set st
( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = g ) )
proof
let a be Element of F1(); ::_thesis: ex f being set st
( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = g ) )
take f = id F3(a); ::_thesis: ( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = g ) )
thus f in F2(a,a) by A3; ::_thesis: for b being Element of F1()
for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = g
let b be Element of F1(); ::_thesis: for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = g
let g be set ; ::_thesis: ( g in F2(a,b) implies H1(a,a,b,f,g) = g )
assume A14: g in F2(a,b) ; ::_thesis: H1(a,a,b,f,g) = g
F2(a,b) c= Funcs (F3(a),F3(b)) by A2;
then consider h being Function such that
A15: g = h and
A16: dom h = F3(a) and
rng h c= F3(b) by A14, FUNCT_2:def_2;
thus f (#) g = g by A15, A16, RELAT_1:52; ::_thesis: verum
end;
A17: for a being Element of F1() ex f being set st
( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = g ) )
proof
let a be Element of F1(); ::_thesis: ex f being set st
( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = g ) )
take f = id F3(a); ::_thesis: ( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = g ) )
thus f in F2(a,a) by A3; ::_thesis: for b being Element of F1()
for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = g
let b be Element of F1(); ::_thesis: for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = g
let g be set ; ::_thesis: ( g in F2(b,a) implies H1(b,a,a,g,f) = g )
assume A18: g in F2(b,a) ; ::_thesis: H1(b,a,a,g,f) = g
F2(b,a) c= Funcs (F3(b),F3(a)) by A2;
then consider h being Function such that
A19: g = h and
dom h = F3(b) and
A20: rng h c= F3(a) by A18, FUNCT_2:def_2;
thus g (#) f = g by A19, A20, RELAT_1:53; ::_thesis: verum
end;
consider C being strict category such that
A21: the carrier of C = F1() and
A22: for a, b being object of C holds <^a,b^> = F2(a,b) and
A23: for a, b, c being object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H1(a,b,c,f,g) from YELLOW18:sch_4(A6, A9, A13, A17);
consider D being ManySortedSet of C such that
A24: for x being Element of C holds D . x = F3(x) from PBOOLE:sch_5();
A25: C is para-functional
proof
take D ; :: according to YELLOW18:def_7 ::_thesis: for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((D . a1),(D . a2))
let a1, a2 be object of C; ::_thesis: <^a1,a2^> c= Funcs ((D . a1),(D . a2))
A26: <^a1,a2^> = F2(a1,a2) by A22;
A27: F3(a1) = D . a1 by A24;
F3(a2) = D . a2 by A24;
hence <^a1,a2^> c= Funcs ((D . a1),(D . a2)) by A2, A21, A26, A27; ::_thesis: verum
end;
A28: C is semi-functional
proof
let a1, a2, a3 be object of C; :: according to ALTCAT_1:def_12 ::_thesis: ( <^a1,a2^> = {} or <^a2,a3^> = {} or <^a1,a3^> = {} or for b1 being Element of <^a1,a2^>
for b2 being Element of <^a2,a3^>
for b3, b4 being set holds
( not b1 = b3 or not b2 = b4 or b2 * b1 = b3 (#) b4 ) )
assume that
A29: <^a1,a2^> <> {} and
A30: <^a2,a3^> <> {} and
<^a1,a3^> <> {} ; ::_thesis: for b1 being Element of <^a1,a2^>
for b2 being Element of <^a2,a3^>
for b3, b4 being set holds
( not b1 = b3 or not b2 = b4 or b2 * b1 = b3 (#) b4 )
let f be Morphism of a1,a2; ::_thesis: for b1 being Element of <^a2,a3^>
for b2, b3 being set holds
( not f = b2 or not b1 = b3 or b1 * f = b2 (#) b3 )
let g be Morphism of a2,a3; ::_thesis: for b1, b2 being set holds
( not f = b1 or not g = b2 or g * f = b1 (#) b2 )
let f9, g9 be Function; ::_thesis: ( not f = f9 or not g = g9 or g * f = f9 (#) g9 )
assume that
A31: f = f9 and
A32: g = g9 ; ::_thesis: g * f = f9 (#) g9
thus g * f = g9 * f9 by A23, A29, A30, A31, A32; ::_thesis: verum
end;
A33: now__::_thesis:_for_a_being_object_of_C_holds_idm_a_=_id_F3(a)
let a be object of C; ::_thesis: idm a = id F3(a)
id F3(a) in F2(a,a) by A3, A21;
then reconsider e = id F3(a) as Morphism of a,a by A22;
now__::_thesis:_for_b_being_object_of_C_st_<^a,b^>_<>_{}_holds_
for_f_being_Morphism_of_a,b_holds_f_*_e_=_f
let b be object of C; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds f * e = f )
assume A34: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds f * e = f
let f be Morphism of a,b; ::_thesis: f * e = f
A35: <^a,b^> = F2(a,b) by A22;
A36: F2(a,b) c= Funcs (F3(a),F3(b)) by A2, A21;
f in <^a,b^> by A34;
then consider h being Function such that
A37: f = h and
A38: dom h = F3(a) and
rng h c= F3(b) by A35, A36, FUNCT_2:def_2;
thus f * e = h * (id F3(a)) by A28, A34, A37, ALTCAT_1:def_12
.= f by A37, A38, RELAT_1:52 ; ::_thesis: verum
end;
hence idm a = id F3(a) by ALTCAT_1:def_17; ::_thesis: verum
end;
A39: now__::_thesis:_for_i_being_set_st_i_in_the_carrier_of_C_holds_
C_-carrier_of_i_=_D_._i
let i be set ; ::_thesis: ( i in the carrier of C implies C -carrier_of i = D . i )
assume i in the carrier of C ; ::_thesis: C -carrier_of i = D . i
then reconsider a = i as object of C ;
thus C -carrier_of i = proj1 (idm a) by Def8
.= proj1 (id F3(a)) by A33
.= F3(a)
.= D . i by A24 ; ::_thesis: verum
end;
C is set-id-inheriting
proof
let a be object of C; :: according to YELLOW18:def_10 ::_thesis: idm a = id (the_carrier_of a)
thus idm a = id F3(a) by A33
.= id (D . a) by A24
.= id (the_carrier_of a) by A39 ; ::_thesis: verum
end;
then reconsider C = C as strict semi-functional para-functional set-id-inheriting category by A25, A28;
take C ; ::_thesis: ( the carrier of C = F1() & ( for a being object of C holds the_carrier_of a = F3(a) ) & ( for a, b being object of C holds <^a,b^> = F2(a,b) ) )
thus the carrier of C = F1() by A21; ::_thesis: ( ( for a being object of C holds the_carrier_of a = F3(a) ) & ( for a, b being object of C holds <^a,b^> = F2(a,b) ) )
hereby ::_thesis: for a, b being object of C holds <^a,b^> = F2(a,b)
let a be object of C; ::_thesis: the_carrier_of a = F3(a)
thus the_carrier_of a = D . a by A39
.= F3(a) by A24 ; ::_thesis: verum
end;
thus for a, b being object of C holds <^a,b^> = F2(a,b) by A22; ::_thesis: verum
end;
scheme :: YELLOW18:sch 17
ConcreteCategoryQuasiLambda{ F1() -> non empty set , P1[ set , set , set ], F2( set ) -> set } :
ex C being strict concrete category st
( the carrier of C = F1() & ( for a being object of C holds the_carrier_of a = F2(a) ) & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) ) ) )
provided
A1: for a, b, c being Element of F1()
for f, g being Function st P1[a,b,f] & P1[b,c,g] holds
P1[a,c,g * f] and
A2: for a being Element of F1() holds P1[a,a, id F2(a)]
proof
set A = F1();
defpred S1[ set , set ] means ex a, b being set st
( $1 = [a,b] & ( for f being set holds
( f in $2 iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) ) ) );
A3: now__::_thesis:_for_x_being_set_st_x_in_[:F1(),F1():]_holds_
ex_y_being_set_st_S1[x,y]
let x be set ; ::_thesis: ( x in [:F1(),F1():] implies ex y being set st S1[x,y] )
assume x in [:F1(),F1():] ; ::_thesis: ex y being set st S1[x,y]
then consider a, b being set such that
a in F1() and
b in F1() and
A4: x = [a,b] by ZFMISC_1:def_2;
defpred S2[ set ] means P1[a,b,$1];
consider y being set such that
A5: for f being set holds
( f in y iff ( f in Funcs (F2(a),F2(b)) & S2[f] ) ) from XBOOLE_0:sch_1();
take y = y; ::_thesis: S1[x,y]
thus S1[x,y] by A4, A5; ::_thesis: verum
end;
consider F being Function such that
dom F = [:F1(),F1():] and
A6: for x being set st x in [:F1(),F1():] holds
S1[x,F . x] from CLASSES1:sch_1(A3);
A7: now__::_thesis:_for_a,_b_being_set_st_a_in_F1()_&_b_in_F1()_holds_
for_f_being_set_holds_
(_f_in_F_._[a,b]_iff_(_P1[a,b,f]_&_f_in_Funcs_(F2(a),F2(b))_)_)
let a, b be set ; ::_thesis: ( a in F1() & b in F1() implies for f being set holds
( f in F . [a,b] iff ( P1[a,b,f] & f in Funcs (F2(a),F2(b)) ) ) )
assume that
A8: a in F1() and
A9: b in F1() ; ::_thesis: for f being set holds
( f in F . [a,b] iff ( P1[a,b,f] & f in Funcs (F2(a),F2(b)) ) )
[a,b] in [:F1(),F1():] by A8, A9, ZFMISC_1:87;
then consider a9, b9 being set such that
A10: [a,b] = [a9,b9] and
A11: for f being set holds
( f in F . [a,b] iff ( f in Funcs (F2(a9),F2(b9)) & P1[a9,b9,f] ) ) by A6;
A12: a = a9 by A10, XTUPLE_0:1;
A13: b = b9 by A10, XTUPLE_0:1;
let f be set ; ::_thesis: ( f in F . [a,b] iff ( P1[a,b,f] & f in Funcs (F2(a),F2(b)) ) )
thus ( f in F . [a,b] iff ( P1[a,b,f] & f in Funcs (F2(a),F2(b)) ) ) by A11, A12, A13; ::_thesis: verum
end;
deffunc H1( set , set ) -> set = F . [$1,$2];
A14: now__::_thesis:_for_a,_b,_c_being_Element_of_F1()
for_f,_g_being_Function_st_f_in_H1(a,b)_&_g_in_H1(b,c)_holds_
g_*_f_in_H1(a,c)
let a, b, c be Element of F1(); ::_thesis: for f, g being Function st f in H1(a,b) & g in H1(b,c) holds
g * f in H1(a,c)
let f, g be Function; ::_thesis: ( f in H1(a,b) & g in H1(b,c) implies g * f in H1(a,c) )
assume that
A15: f in H1(a,b) and
A16: g in H1(b,c) ; ::_thesis: g * f in H1(a,c)
A17: P1[a,b,f] by A7, A15;
A18: f in Funcs (F2(a),F2(b)) by A7, A15;
A19: P1[b,c,g] by A7, A16;
A20: g in Funcs (F2(b),F2(c)) by A7, A16;
A21: dom f = F2(a) by A18, Th30;
A22: rng f c= F2(b) by A18, Th30;
A23: dom g = F2(b) by A20, Th30;
A24: rng g c= F2(c) by A20, Th30;
A25: rng (g * f) c= rng g by RELAT_1:26;
A26: dom (g * f) = F2(a) by A21, A22, A23, RELAT_1:27;
rng (g * f) c= F2(c) by A24, A25, XBOOLE_1:1;
then A27: g * f in Funcs (F2(a),F2(c)) by A26, FUNCT_2:def_2;
P1[a,c,g * f] by A1, A17, A19;
hence g * f in H1(a,c) by A7, A27; ::_thesis: verum
end;
A28: now__::_thesis:_for_a,_b_being_Element_of_F1()_holds_H1(a,b)_c=_Funcs_(F2(a),F2(b))
let a, b be Element of F1(); ::_thesis: H1(a,b) c= Funcs (F2(a),F2(b))
thus H1(a,b) c= Funcs (F2(a),F2(b)) ::_thesis: verum
proof
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in H1(a,b) or x in Funcs (F2(a),F2(b)) )
thus ( not x in H1(a,b) or x in Funcs (F2(a),F2(b)) ) by A7; ::_thesis: verum
end;
end;
A29: for a being Element of F1() holds id F2(a) in H1(a,a)
proof
let a be Element of F1(); ::_thesis: id F2(a) in H1(a,a)
A30: dom (id F2(a)) = F2(a) ;
A31: rng (id F2(a)) = F2(a) ;
A32: P1[a,a, id F2(a)] by A2;
id F2(a) in Funcs (F2(a),F2(a)) by A30, A31, FUNCT_2:def_2;
hence id F2(a) in H1(a,a) by A7, A32; ::_thesis: verum
end;
consider C being strict semi-functional para-functional set-id-inheriting category such that
A33: the carrier of C = F1() and
A34: for a being object of C holds the_carrier_of a = F2(a) and
A35: for a, b being object of C holds <^a,b^> = H1(a,b) from YELLOW18:sch_16(A14, A28, A29);
take C ; ::_thesis: ( the carrier of C = F1() & ( for a being object of C holds the_carrier_of a = F2(a) ) & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) ) ) )
thus the carrier of C = F1() by A33; ::_thesis: ( ( for a being object of C holds the_carrier_of a = F2(a) ) & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) ) ) )
thus for a being object of C holds the_carrier_of a = F2(a) by A34; ::_thesis: for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) )
let a, b be Element of F1(); ::_thesis: for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) )
let f be Function; ::_thesis: ( f in the Arrows of C . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) )
reconsider a = a, b = b as object of C by A33;
the Arrows of C . (a,b) = <^a,b^>
.= F . [a,b] by A35 ;
hence ( f in the Arrows of C . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) ) by A7; ::_thesis: verum
end;
scheme :: YELLOW18:sch 18
ConcreteCategoryEx{ F1() -> non empty set , F2( set ) -> set , P1[ set , set ], P2[ set , set , set ] } :
ex C being strict concrete category st
( the carrier of C = F1() & ( for a being object of C
for x being set holds
( x in the_carrier_of a iff ( x in F2(a) & P1[a,x] ) ) ) & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs ((C -carrier_of a),(C -carrier_of b)) & P2[a,b,f] ) ) ) )
provided
A1: for a, b, c being Element of F1()
for f, g being Function st P2[a,b,f] & P2[b,c,g] holds
P2[a,c,g * f] and
A2: for a being Element of F1()
for X being set st ( for x being set holds
( x in X iff ( x in F2(a) & P1[a,x] ) ) ) holds
P2[a,a, id X]
proof
A3: for a, b, c being Element of F1()
for f, g being Function st P2[a,b,f] & P2[b,c,g] holds
P2[a,c,g * f] by A1;
consider D being Function such that
dom D = F1() and
A4: for a being set st a in F1() holds
for y being set holds
( y in D . a iff ( y in F2(a) & P1[a,y] ) ) from CARD_3:sch_2();
deffunc H1( set ) -> set = D . $1;
A5: now__::_thesis:_for_a_being_Element_of_F1()_holds_P2[a,a,_id_H1(a)]
let a be Element of F1(); ::_thesis: P2[a,a, id H1(a)]
for y being set holds
( y in D . a iff ( y in F2(a) & P1[a,y] ) ) by A4;
hence P2[a,a, id H1(a)] by A2; ::_thesis: verum
end;
consider C being strict semi-functional para-functional set-id-inheriting category such that
A6: the carrier of C = F1() and
A7: for a being object of C holds the_carrier_of a = H1(a) and
A8: for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs (H1(a),H1(b)) & P2[a,b,f] ) ) from YELLOW18:sch_17(A3, A5);
take C ; ::_thesis: ( the carrier of C = F1() & ( for a being object of C
for x being set holds
( x in the_carrier_of a iff ( x in F2(a) & P1[a,x] ) ) ) & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs ((C -carrier_of a),(C -carrier_of b)) & P2[a,b,f] ) ) ) )
thus the carrier of C = F1() by A6; ::_thesis: ( ( for a being object of C
for x being set holds
( x in the_carrier_of a iff ( x in F2(a) & P1[a,x] ) ) ) & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs ((C -carrier_of a),(C -carrier_of b)) & P2[a,b,f] ) ) ) )
hereby ::_thesis: for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs ((C -carrier_of a),(C -carrier_of b)) & P2[a,b,f] ) )
let a be object of C; ::_thesis: for x being set holds
( x in the_carrier_of a iff ( x in F2(a) & P1[a,x] ) )
the_carrier_of a = D . a by A7;
hence for x being set holds
( x in the_carrier_of a iff ( x in F2(a) & P1[a,x] ) ) by A4, A6; ::_thesis: verum
end;
let a, b be Element of F1(); ::_thesis: for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs ((C -carrier_of a),(C -carrier_of b)) & P2[a,b,f] ) )
A9: D . a = C -carrier_of a by A6, A7;
D . b = C -carrier_of b by A6, A7;
hence for f being Function holds
( f in the Arrows of C . (a,b) iff ( f in Funcs ((C -carrier_of a),(C -carrier_of b)) & P2[a,b,f] ) ) by A8, A9; ::_thesis: verum
end;
scheme :: YELLOW18:sch 19
ConcreteCategoryUniq1{ F1() -> non empty set , F2( set , set ) -> set } :
for C1, C2 being semi-functional para-functional category st the carrier of C1 = F1() & ( for a, b being object of C1 holds <^a,b^> = F2(a,b) ) & the carrier of C2 = F1() & ( for a, b being object of C2 holds <^a,b^> = F2(a,b) ) holds
AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #)
proof
deffunc H1( set , set , set , set , set ) -> set = $4 (#) $5;
A1: for C1, C2 being non empty transitive AltCatStr st the carrier of C1 = F1() & ( for a, b being object of C1 holds <^a,b^> = F2(a,b) ) & ( for a, b, c being object of C1 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H1(a,b,c,f,g) ) & the carrier of C2 = F1() & ( for a, b being object of C2 holds <^a,b^> = F2(a,b) ) & ( for a, b, c being object of C2 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H1(a,b,c,f,g) ) holds
AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) from YELLOW18:sch_5();
let C1, C2 be semi-functional para-functional category; ::_thesis: ( the carrier of C1 = F1() & ( for a, b being object of C1 holds <^a,b^> = F2(a,b) ) & the carrier of C2 = F1() & ( for a, b being object of C2 holds <^a,b^> = F2(a,b) ) implies AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) )
A2: for C1 being semi-functional para-functional category
for a, b, c being object of C1 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = f (#) g by Th36;
then A3: for a, b, c being object of C1 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = f (#) g ;
for a, b, c being object of C2 st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = f (#) g by A2;
hence ( the carrier of C1 = F1() & ( for a, b being object of C1 holds <^a,b^> = F2(a,b) ) & the carrier of C2 = F1() & ( for a, b being object of C2 holds <^a,b^> = F2(a,b) ) implies AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) ) by A1, A3; ::_thesis: verum
end;
scheme :: YELLOW18:sch 20
ConcreteCategoryUniq2{ F1() -> non empty set , P1[ set , set , set ], F2( set ) -> set } :
for C1, C2 being semi-functional para-functional category st the carrier of C1 = F1() & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C1 . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) ) ) & the carrier of C2 = F1() & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C2 . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) ) ) holds
AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #)
proof
let C1, C2 be semi-functional para-functional category; ::_thesis: ( the carrier of C1 = F1() & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C1 . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) ) ) & the carrier of C2 = F1() & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C2 . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) ) ) implies AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) )
assume that
A1: the carrier of C1 = F1() and
A2: for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C1 . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) ) and
A3: the carrier of C2 = F1() and
A4: for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C2 . (a,b) iff ( f in Funcs (F2(a),F2(b)) & P1[a,b,f] ) ) ; ::_thesis: AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #)
deffunc H1( set , set ) -> set = the Arrows of C1 . ($1,$2);
A5: for C1, C2 being semi-functional para-functional category st the carrier of C1 = F1() & ( for a, b being object of C1 holds <^a,b^> = H1(a,b) ) & the carrier of C2 = F1() & ( for a, b being object of C2 holds <^a,b^> = H1(a,b) ) holds
AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) from YELLOW18:sch_19();
A6: for a, b being object of C1 holds <^a,b^> = H1(a,b) ;
now__::_thesis:_for_a,_b_being_object_of_C2_holds_<^a,b^>_=_H1(a,b)
let a, b be object of C2; ::_thesis: <^a,b^> = H1(a,b)
reconsider x = a, y = b as Element of F1() by A3;
reconsider a9 = x, b9 = y as object of C1 by A1;
thus <^a,b^> = H1(a,b) ::_thesis: verum
proof
hereby :: according to TARSKI:def_3,XBOOLE_0:def_10 ::_thesis: H1(a,b) c= <^a,b^>
let z be set ; ::_thesis: ( z in <^a,b^> implies z in H1(a,b) )
assume A7: z in <^a,b^> ; ::_thesis: z in H1(a,b)
then A8: z in Funcs (F2(x),F2(y)) by A4;
P1[x,y,z] by A4, A7;
hence z in H1(a,b) by A2, A8; ::_thesis: verum
end;
let z be set ; :: according to TARSKI:def_3 ::_thesis: ( not z in H1(a,b) or z in <^a,b^> )
assume A9: z in H1(a,b) ; ::_thesis: z in <^a,b^>
then A10: z is Morphism of a9,b9 ;
then A11: z in Funcs (F2(x),F2(y)) by A2, A9;
P1[x,y,z] by A2, A9, A10;
hence z in <^a,b^> by A4, A11; ::_thesis: verum
end;
end;
hence AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) by A1, A3, A5, A6; ::_thesis: verum
end;
scheme :: YELLOW18:sch 21
ConcreteCategoryUniq3{ F1() -> non empty set , F2( set ) -> set , P1[ set , set ], P2[ set , set , set ] } :
for C1, C2 being semi-functional para-functional category st the carrier of C1 = F1() & ( for a being object of C1
for x being set holds
( x in the_carrier_of a iff ( x in F2(a) & P1[a,x] ) ) ) & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C1 . (a,b) iff ( f in Funcs ((C1 -carrier_of a),(C1 -carrier_of b)) & P2[a,b,f] ) ) ) & the carrier of C2 = F1() & ( for a being object of C2
for x being set holds
( x in the_carrier_of a iff ( x in F2(a) & P1[a,x] ) ) ) & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C2 . (a,b) iff ( f in Funcs ((C2 -carrier_of a),(C2 -carrier_of b)) & P2[a,b,f] ) ) ) holds
AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #)
proof
let C1, C2 be semi-functional para-functional category; ::_thesis: ( the carrier of C1 = F1() & ( for a being object of C1
for x being set holds
( x in the_carrier_of a iff ( x in F2(a) & P1[a,x] ) ) ) & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C1 . (a,b) iff ( f in Funcs ((C1 -carrier_of a),(C1 -carrier_of b)) & P2[a,b,f] ) ) ) & the carrier of C2 = F1() & ( for a being object of C2
for x being set holds
( x in the_carrier_of a iff ( x in F2(a) & P1[a,x] ) ) ) & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C2 . (a,b) iff ( f in Funcs ((C2 -carrier_of a),(C2 -carrier_of b)) & P2[a,b,f] ) ) ) implies AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) )
assume that
A1: the carrier of C1 = F1() and
A2: for a being object of C1
for x being set holds
( x in the_carrier_of a iff ( x in F2(a) & P1[a,x] ) ) and
A3: for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C1 . (a,b) iff ( f in Funcs ((C1 -carrier_of a),(C1 -carrier_of b)) & P2[a,b,f] ) ) and
A4: the carrier of C2 = F1() and
A5: for a being object of C2
for x being set holds
( x in the_carrier_of a iff ( x in F2(a) & P1[a,x] ) ) and
A6: for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C2 . (a,b) iff ( f in Funcs ((C2 -carrier_of a),(C2 -carrier_of b)) & P2[a,b,f] ) ) ; ::_thesis: AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #)
deffunc H1( set ) -> set = C1 -carrier_of $1;
A7: for C1, C2 being semi-functional para-functional category st the carrier of C1 = F1() & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C1 . (a,b) iff ( f in Funcs (H1(a),H1(b)) & P2[a,b,f] ) ) ) & the carrier of C2 = F1() & ( for a, b being Element of F1()
for f being Function holds
( f in the Arrows of C2 . (a,b) iff ( f in Funcs (H1(a),H1(b)) & P2[a,b,f] ) ) ) holds
AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) from YELLOW18:sch_20();
A8: now__::_thesis:_for_a_being_Element_of_F1()_holds_C1_-carrier_of_a_=_C2_-carrier_of_a
let a be Element of F1(); ::_thesis: C1 -carrier_of a = C2 -carrier_of a
reconsider a1 = a as object of C1 by A1;
reconsider a2 = a as object of C2 by A4;
now__::_thesis:_for_x_being_set_holds_
(_x_in_the_carrier_of_a1_iff_x_in_the_carrier_of_a2_)
let x be set ; ::_thesis: ( x in the_carrier_of a1 iff x in the_carrier_of a2 )
( x in the_carrier_of a1 iff ( x in F2(a) & P1[a,x] ) ) by A2;
hence ( x in the_carrier_of a1 iff x in the_carrier_of a2 ) by A5; ::_thesis: verum
end;
hence C1 -carrier_of a = C2 -carrier_of a by TARSKI:1; ::_thesis: verum
end;
now__::_thesis:_for_a,_b_being_Element_of_F1()
for_f_being_Function_holds_
(_f_in_the_Arrows_of_C2_._(a,b)_iff_(_f_in_Funcs_(H1(a),H1(b))_&_P2[a,b,f]_)_)
let a, b be Element of F1(); ::_thesis: for f being Function holds
( f in the Arrows of C2 . (a,b) iff ( f in Funcs (H1(a),H1(b)) & P2[a,b,f] ) )
let f be Function; ::_thesis: ( f in the Arrows of C2 . (a,b) iff ( f in Funcs (H1(a),H1(b)) & P2[a,b,f] ) )
A9: H1(a) = C2 -carrier_of a by A8;
H1(b) = C2 -carrier_of b by A8;
hence ( f in the Arrows of C2 . (a,b) iff ( f in Funcs (H1(a),H1(b)) & P2[a,b,f] ) ) by A6, A9; ::_thesis: verum
end;
hence AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) by A1, A3, A4, A7; ::_thesis: verum
end;
begin
theorem Th38: :: YELLOW18:38
for C being concrete category
for a, b being object of C st <^a,b^> <> {} & <^b,a^> <> {} holds
for f being Morphism of a,b st f is retraction holds
rng f = the_carrier_of b
proof
let C be concrete category; ::_thesis: for a, b being object of C st <^a,b^> <> {} & <^b,a^> <> {} holds
for f being Morphism of a,b st f is retraction holds
rng f = the_carrier_of b
let a, b be object of C; ::_thesis: ( <^a,b^> <> {} & <^b,a^> <> {} implies for f being Morphism of a,b st f is retraction holds
rng f = the_carrier_of b )
assume that
A1: <^a,b^> <> {} and
A2: <^b,a^> <> {} ; ::_thesis: for f being Morphism of a,b st f is retraction holds
rng f = the_carrier_of b
let f be Morphism of a,b; ::_thesis: ( f is retraction implies rng f = the_carrier_of b )
given g being Morphism of b,a such that A3: g is_right_inverse_of f ; :: according to ALTCAT_3:def_2 ::_thesis: rng f = the_carrier_of b
A4: f * g = idm b by A3, ALTCAT_3:def_1;
A5: f * g = f * g by A1, A2, Th36;
A6: f is Function of (the_carrier_of a),(the_carrier_of b) by A1, Th34;
A7: g is Function of (the_carrier_of b),(the_carrier_of a) by A2, Th34;
idm b = id (the_carrier_of b) by Def10;
hence rng f = the_carrier_of b by A4, A5, A6, A7, FUNCT_2:18; ::_thesis: verum
end;
theorem Th39: :: YELLOW18:39
for C being concrete category
for a, b being object of C st <^a,b^> <> {} & <^b,a^> <> {} holds
for f being Morphism of a,b st f is coretraction holds
f is one-to-one
proof
let C be concrete category; ::_thesis: for a, b being object of C st <^a,b^> <> {} & <^b,a^> <> {} holds
for f being Morphism of a,b st f is coretraction holds
f is one-to-one
let a, b be object of C; ::_thesis: ( <^a,b^> <> {} & <^b,a^> <> {} implies for f being Morphism of a,b st f is coretraction holds
f is one-to-one )
assume that
A1: <^a,b^> <> {} and
A2: <^b,a^> <> {} ; ::_thesis: for f being Morphism of a,b st f is coretraction holds
f is one-to-one
let f be Morphism of a,b; ::_thesis: ( f is coretraction implies f is one-to-one )
given g being Morphism of b,a such that A3: g is_left_inverse_of f ; :: according to ALTCAT_3:def_3 ::_thesis: f is one-to-one
A4: g * f = idm a by A3, ALTCAT_3:def_1;
A5: g * f = g * f by A1, A2, Th36;
A6: dom f = the_carrier_of a by A1, Th35;
idm a = id (the_carrier_of a) by Def10;
hence f is one-to-one by A4, A5, A6, FUNCT_1:31; ::_thesis: verum
end;
theorem Th40: :: YELLOW18:40
for C being concrete category
for a, b being object of C st <^a,b^> <> {} & <^b,a^> <> {} holds
for f being Morphism of a,b st f is iso holds
( f is one-to-one & rng f = the_carrier_of b )
proof
let C be concrete category; ::_thesis: for a, b being object of C st <^a,b^> <> {} & <^b,a^> <> {} holds
for f being Morphism of a,b st f is iso holds
( f is one-to-one & rng f = the_carrier_of b )
let a, b be object of C; ::_thesis: ( <^a,b^> <> {} & <^b,a^> <> {} implies for f being Morphism of a,b st f is iso holds
( f is one-to-one & rng f = the_carrier_of b ) )
assume that
A1: <^a,b^> <> {} and
A2: <^b,a^> <> {} ; ::_thesis: for f being Morphism of a,b st f is iso holds
( f is one-to-one & rng f = the_carrier_of b )
let f be Morphism of a,b; ::_thesis: ( f is iso implies ( f is one-to-one & rng f = the_carrier_of b ) )
assume f is iso ; ::_thesis: ( f is one-to-one & rng f = the_carrier_of b )
then ( f is retraction & f is coretraction ) by ALTCAT_3:5;
hence ( f is one-to-one & rng f = the_carrier_of b ) by A1, A2, Th38, Th39; ::_thesis: verum
end;
theorem Th41: :: YELLOW18:41
for C being semi-functional para-functional category
for a, b being object of C st <^a,b^> <> {} holds
for f being Morphism of a,b st f is one-to-one & f " in <^b,a^> holds
f is iso
proof
let C be semi-functional para-functional category; ::_thesis: for a, b being object of C st <^a,b^> <> {} holds
for f being Morphism of a,b st f is one-to-one & f " in <^b,a^> holds
f is iso
let a, b be object of C; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b st f is one-to-one & f " in <^b,a^> holds
f is iso )
assume A1: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b st f is one-to-one & f " in <^b,a^> holds
f is iso
let f be Morphism of a,b; ::_thesis: ( f is one-to-one & f " in <^b,a^> implies f is iso )
assume A2: f is one-to-one ; ::_thesis: ( not f " in <^b,a^> or f is iso )
assume A3: f " in <^b,a^> ; ::_thesis: f is iso
then reconsider g = f " as Morphism of b,a ;
dom g = the_carrier_of b by A3, Th35;
then A4: rng f = the_carrier_of b by A2, FUNCT_1:33;
A5: (f ") * f = id (dom f) by A2, FUNCT_1:39;
A6: f * (f ") = id (rng f) by A2, FUNCT_1:39;
A7: dom f = the_carrier_of a by A1, Th35;
A8: f * g = id (the_carrier_of b) by A1, A3, A4, A6, Th36;
A9: g * f = id (the_carrier_of a) by A1, A3, A5, A7, Th36;
A10: idm b = f * g by A8, Th37;
A11: idm a = g * f by A9, Th37;
then A12: g is_left_inverse_of f by ALTCAT_3:def_1;
A13: g is_right_inverse_of f by A10, ALTCAT_3:def_1;
then ( f is retraction & f is coretraction ) by A12, ALTCAT_3:def_2, ALTCAT_3:def_3;
hence ( f * (f ") = idm b & (f ") * f = idm a ) by A1, A3, A10, A11, A12, A13, ALTCAT_3:def_4; :: according to ALTCAT_3:def_5 ::_thesis: verum
end;
theorem :: YELLOW18:42
for C being concrete category
for a, b being object of C st <^a,b^> <> {} & <^b,a^> <> {} holds
for f being Morphism of a,b st f is iso holds
f " = f "
proof
let C be concrete category; ::_thesis: for a, b being object of C st <^a,b^> <> {} & <^b,a^> <> {} holds
for f being Morphism of a,b st f is iso holds
f " = f "
let a, b be object of C; ::_thesis: ( <^a,b^> <> {} & <^b,a^> <> {} implies for f being Morphism of a,b st f is iso holds
f " = f " )
assume that
A1: <^a,b^> <> {} and
A2: <^b,a^> <> {} ; ::_thesis: for f being Morphism of a,b st f is iso holds
f " = f "
let f be Morphism of a,b; ::_thesis: ( f is iso implies f " = f " )
assume A3: f is iso ; ::_thesis: f " = f "
then A4: (f ") * f = idm a by ALTCAT_3:def_5;
A5: (f ") * f = (f ") * f by A1, A2, Th36;
A6: dom (f ") = the_carrier_of b by A2, Th35;
A7: dom f = the_carrier_of a by A1, Th35;
A8: f is one-to-one by A1, A2, A3, Th40;
A9: rng f = the_carrier_of b by A1, A2, A3, Th40;
idm a = id (the_carrier_of a) by Def10;
hence f " = f " by A4, A5, A6, A7, A8, A9, FUNCT_1:41; ::_thesis: verum
end;
scheme :: YELLOW18:sch 22
ConcreteCatEquivalence{ F1() -> semi-functional para-functional category, F2() -> semi-functional para-functional category, F3( set ) -> set , F4( set ) -> set , F5( set , set , set ) -> Function, F6( set , set , set ) -> Function, F7( set ) -> Function, F8( set ) -> Function } :
F1(),F2() are_equivalent
provided
A1: ex F being covariant Functor of F1(),F2() st
( ( 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 = F5(a,b,f) ) ) and
A2: ex G being covariant Functor of F2(),F1() st
( ( for a being object of F2() holds G . a = F4(a) ) & ( for a, b being object of F2() st <^a,b^> <> {} holds
for f being Morphism of a,b holds G . f = F6(a,b,f) ) ) and
A3: for a, b being object of F1() st a = F4(F3(b)) holds
( F7(b) in <^a,b^> & F7(b) " in <^b,a^> & F7(b) is one-to-one ) and
A4: for a, b being object of F2() st b = F3(F4(a)) holds
( F8(a) in <^a,b^> & F8(a) " in <^b,a^> & F8(a) is one-to-one ) and
A5: for a, b being object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b holds F7(b) * F6(F3(a),F3(b),F5(a,b,f)) = f * F7(a) and
A6: for a, b being object of F2() st <^a,b^> <> {} holds
for f being Morphism of a,b holds F5(F4(a),F4(b),F6(a,b,f)) * F8(a) = F8(b) * f
proof
consider F being covariant Functor of F1(),F2() such that
A7: for a being object of F1() holds F . a = F3(a) and
A8: for a, b being object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b holds F . f = F5(a,b,f) by A1;
consider G being covariant Functor of F2(),F1() such that
A9: for a being object of F2() holds G . a = F4(a) and
A10: for a, b being object of F2() st <^a,b^> <> {} holds
for f being Morphism of a,b holds G . f = F6(a,b,f) by A2;
take F ; :: according to YELLOW18:def_2 ::_thesis: ex G being covariant Functor of F2(),F1() st
( G * F, id F1() are_naturally_equivalent & F * G, id F2() are_naturally_equivalent )
take G ; ::_thesis: ( G * F, id F1() are_naturally_equivalent & F * G, id F2() are_naturally_equivalent )
set GF = G * F;
set I = id F1();
A11: for a being object of F1() holds
( F7(a) in <^((G * F) . a),((id F1()) . a)^> & <^((id F1()) . a),((G * F) . a)^> <> {} & ( for f being Morphism of ((G * F) . a),((id F1()) . a) st f = F7(a) holds
f is iso ) )
proof
let a be object of F1(); ::_thesis: ( F7(a) in <^((G * F) . a),((id F1()) . a)^> & <^((id F1()) . a),((G * F) . a)^> <> {} & ( for f being Morphism of ((G * F) . a),((id F1()) . a) st f = F7(a) holds
f is iso ) )
A12: (G * F) . a = G . (F . a) by FUNCTOR0:33
.= F4((F . a)) by A9
.= F4(F3(a)) by A7 ;
A13: (id F1()) . a = a by FUNCTOR0:29;
then A14: F7(a) in <^((G * F) . a),((id F1()) . a)^> by A3, A12;
A15: F7(a) " in <^((id F1()) . a),((G * F) . a)^> by A3, A12, A13;
F7(a) is one-to-one by A3, A12;
hence ( F7(a) in <^((G * F) . a),((id F1()) . a)^> & <^((id F1()) . a),((G * F) . a)^> <> {} & ( for f being Morphism of ((G * F) . a),((id F1()) . a) st f = F7(a) holds
f is iso ) ) by A14, A15, Th41; ::_thesis: verum
end;
A16: for a, b being object of F1() st <^a,b^> <> {} holds
for f being Morphism of a,b
for g1 being Morphism of ((G * F) . a),((id F1()) . a) st g1 = F7(a) holds
for g2 being Morphism of ((G * F) . b),((id F1()) . b) st g2 = F7(b) holds
g2 * ((G * F) . f) = ((id F1()) . f) * g1
proof
let a, b be object of F1(); ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b
for g1 being Morphism of ((G * F) . a),((id F1()) . a) st g1 = F7(a) holds
for g2 being Morphism of ((G * F) . b),((id F1()) . b) st g2 = F7(b) holds
g2 * ((G * F) . f) = ((id F1()) . f) * g1 )
assume A17: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b
for g1 being Morphism of ((G * F) . a),((id F1()) . a) st g1 = F7(a) holds
for g2 being Morphism of ((G * F) . b),((id F1()) . b) st g2 = F7(b) holds
g2 * ((G * F) . f) = ((id F1()) . f) * g1
A18: F7(a) in <^((G * F) . a),((id F1()) . a)^> by A11;
A19: F7(b) in <^((G * F) . b),((id F1()) . b)^> by A11;
reconsider g2 = F7(b) as Morphism of ((G * F) . b),((id F1()) . b) by A11;
A20: <^((G * F) . a),((G * F) . b)^> <> {} by A17, FUNCTOR0:def_18;
A21: <^((id F1()) . a),((id F1()) . b)^> <> {} by A17, FUNCTOR0:def_18;
let f be Morphism of a,b; ::_thesis: for g1 being Morphism of ((G * F) . a),((id F1()) . a) st g1 = F7(a) holds
for g2 being Morphism of ((G * F) . b),((id F1()) . b) st g2 = F7(b) holds
g2 * ((G * F) . f) = ((id F1()) . f) * g1
A22: (G * F) . f = G . (F . f) by A17, FUNCTOR3:6;
A23: F3(a) = F . a by A7;
A24: F3(b) = F . b by A7;
A25: F5(a,b,f) = F . f by A8, A17;
<^(F . a),(F . b)^> <> {} by A17, FUNCTOR0:def_18;
then F6(F3(a),F3(b),F5(a,b,f)) = (G * F) . f by A10, A22, A23, A24, A25;
then g2 * ((G * F) . f) = F7(b) * F6(F3(a),F3(b),F5(a,b,f)) by A19, A20, Th36
.= f * F7(a) by A5, A17
.= ((id F1()) . f) * F7(a) by A17, FUNCTOR0:31 ;
hence for g1 being Morphism of ((G * F) . a),((id F1()) . a) st g1 = F7(a) holds
for g2 being Morphism of ((G * F) . b),((id F1()) . b) st g2 = F7(b) holds
g2 * ((G * F) . f) = ((id F1()) . f) * g1 by A18, A21, Th36; ::_thesis: verum
end;
ex t being natural_equivalence of G * F, id F1() st
( G * F, id F1() are_naturally_equivalent & ( for a being object of F1() holds t ! a = F7(a) ) ) from YELLOW18:sch_15(A11, A16);
hence G * F, id F1() are_naturally_equivalent ; ::_thesis: F * G, id F2() are_naturally_equivalent
set I = id F2();
set FG = F * G;
A26: for a being object of F2() holds
( F8(a) in <^((id F2()) . a),((F * G) . a)^> & <^((F * G) . a),((id F2()) . a)^> <> {} & ( for f being Morphism of ((id F2()) . a),((F * G) . a) st f = F8(a) holds
f is iso ) )
proof
let a be object of F2(); ::_thesis: ( F8(a) in <^((id F2()) . a),((F * G) . a)^> & <^((F * G) . a),((id F2()) . a)^> <> {} & ( for f being Morphism of ((id F2()) . a),((F * G) . a) st f = F8(a) holds
f is iso ) )
A27: (F * G) . a = F . (G . a) by FUNCTOR0:33
.= F3((G . a)) by A7
.= F3(F4(a)) by A9 ;
A28: (id F2()) . a = a by FUNCTOR0:29;
then A29: F8(a) in <^((id F2()) . a),((F * G) . a)^> by A4, A27;
A30: F8(a) " in <^((F * G) . a),((id F2()) . a)^> by A4, A27, A28;
F8(a) is one-to-one by A4, A27;
hence ( F8(a) in <^((id F2()) . a),((F * G) . a)^> & <^((F * G) . a),((id F2()) . a)^> <> {} & ( for f being Morphism of ((id F2()) . a),((F * G) . a) st f = F8(a) holds
f is iso ) ) by A29, A30, Th41; ::_thesis: verum
end;
A31: for a, b being object of F2() st <^a,b^> <> {} holds
for f being Morphism of a,b
for g1 being Morphism of ((id F2()) . a),((F * G) . a) st g1 = F8(a) holds
for g2 being Morphism of ((id F2()) . b),((F * G) . b) st g2 = F8(b) holds
g2 * ((id F2()) . f) = ((F * G) . f) * g1
proof
let a, b be object of F2(); ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b
for g1 being Morphism of ((id F2()) . a),((F * G) . a) st g1 = F8(a) holds
for g2 being Morphism of ((id F2()) . b),((F * G) . b) st g2 = F8(b) holds
g2 * ((id F2()) . f) = ((F * G) . f) * g1 )
assume A32: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b
for g1 being Morphism of ((id F2()) . a),((F * G) . a) st g1 = F8(a) holds
for g2 being Morphism of ((id F2()) . b),((F * G) . b) st g2 = F8(b) holds
g2 * ((id F2()) . f) = ((F * G) . f) * g1
A33: F8(a) in <^((id F2()) . a),((F * G) . a)^> by A26;
reconsider g1 = F8(a) as Morphism of ((id F2()) . a),((F * G) . a) by A26;
A34: F8(b) in <^((id F2()) . b),((F * G) . b)^> by A26;
A35: <^((F * G) . a),((F * G) . b)^> <> {} by A32, FUNCTOR0:def_18;
A36: <^((id F2()) . a),((id F2()) . b)^> <> {} by A32, FUNCTOR0:def_18;
let f be Morphism of a,b; ::_thesis: for g1 being Morphism of ((id F2()) . a),((F * G) . a) st g1 = F8(a) holds
for g2 being Morphism of ((id F2()) . b),((F * G) . b) st g2 = F8(b) holds
g2 * ((id F2()) . f) = ((F * G) . f) * g1
A37: (F * G) . f = F . (G . f) by A32, FUNCTOR3:6;
A38: F4(a) = G . a by A9;
A39: F4(b) = G . b by A9;
A40: F6(a,b,f) = G . f by A10, A32;
<^(G . a),(G . b)^> <> {} by A32, FUNCTOR0:def_18;
then F5(F4(a),F4(b),F6(a,b,f)) = (F * G) . f by A8, A37, A38, A39, A40;
then ((F * G) . f) * g1 = F5(F4(a),F4(b),F6(a,b,f)) * F8(a) by A33, A35, Th36
.= F8(b) * f by A6, A32
.= F8(b) * ((id F2()) . f) by A32, FUNCTOR0:31 ;
hence for g1 being Morphism of ((id F2()) . a),((F * G) . a) st g1 = F8(a) holds
for g2 being Morphism of ((id F2()) . b),((F * G) . b) st g2 = F8(b) holds
g2 * ((id F2()) . f) = ((F * G) . f) * g1 by A34, A36, Th36; ::_thesis: verum
end;
ex t being natural_equivalence of id F2(),F * G st
( id F2(),F * G are_naturally_equivalent & ( for a being object of F2() holds t ! a = F8(a) ) ) from YELLOW18:sch_15(A26, A31);
hence F * G, id F2() are_naturally_equivalent ; ::_thesis: verum
end;
begin
definition
let C be category;
defpred S1[ set , set ] means $1 = $2 `22 ;
defpred S2[ set , set , Function] means ex fa, fb being object of C ex g being Morphism of fa,fb st
( fa = $1 & fb = $2 & <^fa,fb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds $3 . [h,[o,fa]] = [(g * h),[o,fb]] ) );
deffunc H1( set ) -> set = Union (disjoin the Arrows of C);
A1: for a, b, c being Element of C
for f, g being Function st S2[a,b,f] & S2[b,c,g] holds
S2[a,c,g * f]
proof
let a, b, c be Element of C; ::_thesis: for f, g being Function st S2[a,b,f] & S2[b,c,g] holds
S2[a,c,g * f]
let f, g be Function; ::_thesis: ( S2[a,b,f] & S2[b,c,g] implies S2[a,c,g * f] )
given fa, fb being object of C, ff being Morphism of fa,fb such that A2: fa = a and
A3: fb = b and
A4: <^fa,fb^> <> {} and
A5: for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(ff * h),[o,fb]] ; ::_thesis: ( not S2[b,c,g] or S2[a,c,g * f] )
given ga, gb being object of C, gf being Morphism of ga,gb such that A6: ga = b and
A7: gb = c and
A8: <^ga,gb^> <> {} and
A9: for o being object of C st <^o,ga^> <> {} holds
for h being Morphism of o,ga holds g . [h,[o,ga]] = [(gf * h),[o,gb]] ; ::_thesis: S2[a,c,g * f]
reconsider gf = gf as Morphism of fb,gb by A3, A6;
take fa ; ::_thesis: ex fb being object of C ex g being Morphism of fa,fb st
( fa = a & fb = c & <^fa,fb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds (g * f) . [h,[o,fa]] = [(g * h),[o,fb]] ) )
take gb ; ::_thesis: ex g being Morphism of fa,gb st
( fa = a & gb = c & <^fa,gb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds (g * f) . [h,[o,fa]] = [(g * h),[o,gb]] ) )
take k = gf * ff; ::_thesis: ( fa = a & gb = c & <^fa,gb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds (g * f) . [h,[o,fa]] = [(k * h),[o,gb]] ) )
thus ( fa = a & gb = c & <^fa,gb^> <> {} ) by A2, A3, A4, A6, A7, A8, ALTCAT_1:def_2; ::_thesis: for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds (g * f) . [h,[o,fa]] = [(k * h),[o,gb]]
let o be object of C; ::_thesis: ( <^o,fa^> <> {} implies for h being Morphism of o,fa holds (g * f) . [h,[o,fa]] = [(k * h),[o,gb]] )
assume A10: <^o,fa^> <> {} ; ::_thesis: for h being Morphism of o,fa holds (g * f) . [h,[o,fa]] = [(k * h),[o,gb]]
A11: <^o,fb^> <> {} by A4, A10, ALTCAT_1:def_2;
let h be Morphism of o,fa; ::_thesis: (g * f) . [h,[o,fa]] = [(k * h),[o,gb]]
A12: f . [h,[o,fa]] = [(ff * h),[o,fb]] by A5, A10;
then [h,[o,fa]] in dom f by FUNCT_1:def_2;
hence (g * f) . [h,[o,fa]] = g . [(ff * h),[o,fb]] by A12, FUNCT_1:13
.= [(gf * (ff * h)),[o,gb]] by A3, A6, A9, A11
.= [(k * h),[o,gb]] by A3, A4, A6, A8, A10, ALTCAT_1:21 ;
::_thesis: verum
end;
A13: for a being Element of C
for X being set st ( for x being set holds
( x in X iff ( x in H1(a) & S1[a,x] ) ) ) holds
S2[a,a, id X]
proof
let a be Element of C; ::_thesis: for X being set st ( for x being set holds
( x in X iff ( x in H1(a) & S1[a,x] ) ) ) holds
S2[a,a, id X]
let X be set ; ::_thesis: ( ( for x being set holds
( x in X iff ( x in H1(a) & S1[a,x] ) ) ) implies S2[a,a, id X] )
assume A14: for x being set holds
( x in X iff ( x in Union (disjoin the Arrows of C) & S1[a,x] ) ) ; ::_thesis: S2[a,a, id X]
reconsider fa = a as object of C ;
take fa ; ::_thesis: ex fb being object of C ex g being Morphism of fa,fb st
( fa = a & fb = a & <^fa,fb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds (id X) . [h,[o,fa]] = [(g * h),[o,fb]] ) )
take fa ; ::_thesis: ex g being Morphism of fa,fa st
( fa = a & fa = a & <^fa,fa^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds (id X) . [h,[o,fa]] = [(g * h),[o,fa]] ) )
take g = idm fa; ::_thesis: ( fa = a & fa = a & <^fa,fa^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds (id X) . [h,[o,fa]] = [(g * h),[o,fa]] ) )
thus ( fa = a & fa = a & <^fa,fa^> <> {} ) ; ::_thesis: for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds (id X) . [h,[o,fa]] = [(g * h),[o,fa]]
let o be object of C; ::_thesis: ( <^o,fa^> <> {} implies for h being Morphism of o,fa holds (id X) . [h,[o,fa]] = [(g * h),[o,fa]] )
assume A15: <^o,fa^> <> {} ; ::_thesis: for h being Morphism of o,fa holds (id X) . [h,[o,fa]] = [(g * h),[o,fa]]
let h be Morphism of o,fa; ::_thesis: (id X) . [h,[o,fa]] = [(g * h),[o,fa]]
A16: [h,[o,fa]] `1 = h ;
A17: [h,[o,fa]] `2 = [o,fa] ;
A18: [h,[o,fa]] `22 = fa by MCART_1:85;
dom the Arrows of C = [: the carrier of C, the carrier of C:] by PARTFUN1:def_2;
then [o,fa] in dom the Arrows of C by ZFMISC_1:def_2;
then [h,[o,fa]] in Union (disjoin the Arrows of C) by A15, A16, A17, CARD_3:22;
then [h,[o,fa]] in X by A14, A18;
hence (id X) . [h,[o,fa]] = [h,[o,fa]] by FUNCT_1:18
.= [(g * h),[o,fa]] by A15, ALTCAT_1:20 ;
::_thesis: verum
end;
func Concretized C -> strict concrete category means :Def12: :: YELLOW18:def 12
( the carrier of it = the carrier of C & ( for a being object of it
for x being set holds
( x in the_carrier_of a iff ( x in Union (disjoin the Arrows of C) & a = x `22 ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of it . (a,b) iff ( f in Funcs ((it -carrier_of a),(it -carrier_of b)) & ex fa, fb being object of C ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) );
uniqueness
for b1, b2 being strict concrete category st the carrier of b1 = the carrier of C & ( for a being object of b1
for x being set holds
( x in the_carrier_of a iff ( x in Union (disjoin the Arrows of C) & a = x `22 ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of b1 . (a,b) iff ( f in Funcs ((b1 -carrier_of a),(b1 -carrier_of b)) & ex fa, fb being object of C ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) & the carrier of b2 = the carrier of C & ( for a being object of b2
for x being set holds
( x in the_carrier_of a iff ( x in Union (disjoin the Arrows of C) & a = x `22 ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of b2 . (a,b) iff ( f in Funcs ((b2 -carrier_of a),(b2 -carrier_of b)) & ex fa, fb being object of C ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) holds
b1 = b2
proof
for C1, C2 being semi-functional para-functional category st the carrier of C1 = the carrier of C & ( for a being object of C1
for x being set holds
( x in the_carrier_of a iff ( x in H1(a) & S1[a,x] ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of C1 . (a,b) iff ( f in Funcs ((C1 -carrier_of a),(C1 -carrier_of b)) & S2[a,b,f] ) ) ) & the carrier of C2 = the carrier of C & ( for a being object of C2
for x being set holds
( x in the_carrier_of a iff ( x in H1(a) & S1[a,x] ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of C2 . (a,b) iff ( f in Funcs ((C2 -carrier_of a),(C2 -carrier_of b)) & S2[a,b,f] ) ) ) holds
AltCatStr(# the carrier of C1, the Arrows of C1, the Comp of C1 #) = AltCatStr(# the carrier of C2, the Arrows of C2, the Comp of C2 #) from YELLOW18:sch_21();
hence for b1, b2 being strict concrete category st the carrier of b1 = the carrier of C & ( for a being object of b1
for x being set holds
( x in the_carrier_of a iff ( x in Union (disjoin the Arrows of C) & a = x `22 ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of b1 . (a,b) iff ( f in Funcs ((b1 -carrier_of a),(b1 -carrier_of b)) & ex fa, fb being object of C ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) & the carrier of b2 = the carrier of C & ( for a being object of b2
for x being set holds
( x in the_carrier_of a iff ( x in Union (disjoin the Arrows of C) & a = x `22 ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of b2 . (a,b) iff ( f in Funcs ((b2 -carrier_of a),(b2 -carrier_of b)) & ex fa, fb being object of C ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) holds
b1 = b2 ; ::_thesis: verum
end;
existence
ex b1 being strict concrete category st
( the carrier of b1 = the carrier of C & ( for a being object of b1
for x being set holds
( x in the_carrier_of a iff ( x in Union (disjoin the Arrows of C) & a = x `22 ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of b1 . (a,b) iff ( f in Funcs ((b1 -carrier_of a),(b1 -carrier_of b)) & ex fa, fb being object of C ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) )
proof
thus ex C9 being strict concrete category st
( the carrier of C9 = the carrier of C & ( for a being object of C9
for x being set holds
( x in the_carrier_of a iff ( x in H1(a) & S1[a,x] ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of C9 . (a,b) iff ( f in Funcs ((C9 -carrier_of a),(C9 -carrier_of b)) & S2[a,b,f] ) ) ) ) from YELLOW18:sch_18(A1, A13); ::_thesis: verum
end;
end;
:: deftheorem Def12 defines Concretized YELLOW18:def_12_:_
for C being category
for b2 being strict concrete category holds
( b2 = Concretized C iff ( the carrier of b2 = the carrier of C & ( for a being object of b2
for x being set holds
( x in the_carrier_of a iff ( x in Union (disjoin the Arrows of C) & a = x `22 ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of b2 . (a,b) iff ( f in Funcs ((b2 -carrier_of a),(b2 -carrier_of b)) & ex fa, fb being object of C ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) ) );
theorem Th43: :: YELLOW18:43
for A being category
for a being object of A
for x being set holds
( x in (Concretized A) -carrier_of a iff ex b being object of A ex f being Morphism of b,a st
( <^b,a^> <> {} & x = [f,[b,a]] ) )
proof
let A be category; ::_thesis: for a being object of A
for x being set holds
( x in (Concretized A) -carrier_of a iff ex b being object of A ex f being Morphism of b,a st
( <^b,a^> <> {} & x = [f,[b,a]] ) )
let a be object of A; ::_thesis: for x being set holds
( x in (Concretized A) -carrier_of a iff ex b being object of A ex f being Morphism of b,a st
( <^b,a^> <> {} & x = [f,[b,a]] ) )
let x be set ; ::_thesis: ( x in (Concretized A) -carrier_of a iff ex b being object of A ex f being Morphism of b,a st
( <^b,a^> <> {} & x = [f,[b,a]] ) )
set B = Concretized A;
reconsider ac = a as object of (Concretized A) by Def12;
A1: ( x in the_carrier_of ac iff ( x in Union (disjoin the Arrows of A) & ac = x `22 ) ) by Def12;
A2: dom the Arrows of A = [: the carrier of A, the carrier of A:] by PARTFUN1:def_2;
hereby ::_thesis: ( ex b being object of A ex f being Morphism of b,a st
( <^b,a^> <> {} & x = [f,[b,a]] ) implies x in (Concretized A) -carrier_of a )
assume A3: x in (Concretized A) -carrier_of a ; ::_thesis: ex b being object of A ex f being Morphism of b,a st
( <^b,a^> <> {} & x = [f,[b,a]] )
then A4: x `2 in dom the Arrows of A by A1, CARD_3:22;
A5: x `1 in the Arrows of A . (x `2) by A1, A3, CARD_3:22;
A6: x = [(x `1),(x `2)] by A1, A3, CARD_3:22;
consider b, c being set such that
A7: b in the carrier of A and
c in the carrier of A and
A8: x `2 = [b,c] by A4, ZFMISC_1:def_2;
reconsider b = b as object of A by A7;
take b = b; ::_thesis: ex f being Morphism of b,a st
( <^b,a^> <> {} & x = [f,[b,a]] )
reconsider f = x `1 as Morphism of b,a by A1, A3, A5, A6, A8, MCART_1:85;
take f = f; ::_thesis: ( <^b,a^> <> {} & x = [f,[b,a]] )
thus ( <^b,a^> <> {} & x = [f,[b,a]] ) by A1, A3, A5, A6, A8, MCART_1:85; ::_thesis: verum
end;
given b being object of A, f being Morphism of b,a such that A9: <^b,a^> <> {} and
A10: x = [f,[b,a]] ; ::_thesis: x in (Concretized A) -carrier_of a
A11: x `1 = f by A10, MCART_1:7;
A12: x `2 = [b,a] by A10, MCART_1:7;
[b,a] in dom the Arrows of A by A2, ZFMISC_1:def_2;
hence x in (Concretized A) -carrier_of a by A1, A9, A10, A11, A12, CARD_3:22, MCART_1:85; ::_thesis: verum
end;
registration
let A be category;
let a be object of A;
cluster(Concretized A) -carrier_of a -> non empty ;
coherence
not (Concretized A) -carrier_of a is empty
proof
[(idm a),[a,a]] in (Concretized A) -carrier_of a by Th43;
hence not (Concretized A) -carrier_of a is empty ; ::_thesis: verum
end;
end;
theorem Th44: :: YELLOW18:44
for A being category
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b ex F being Function of ((Concretized A) -carrier_of a),((Concretized A) -carrier_of b) st
( F in the Arrows of (Concretized A) . (a,b) & ( for c being object of A
for g being Morphism of c,a st <^c,a^> <> {} holds
F . [g,[c,a]] = [(f * g),[c,b]] ) )
proof
let A be category; ::_thesis: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b ex F being Function of ((Concretized A) -carrier_of a),((Concretized A) -carrier_of b) st
( F in the Arrows of (Concretized A) . (a,b) & ( for c being object of A
for g being Morphism of c,a st <^c,a^> <> {} holds
F . [g,[c,a]] = [(f * g),[c,b]] ) )
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b ex F being Function of ((Concretized A) -carrier_of a),((Concretized A) -carrier_of b) st
( F in the Arrows of (Concretized A) . (a,b) & ( for c being object of A
for g being Morphism of c,a st <^c,a^> <> {} holds
F . [g,[c,a]] = [(f * g),[c,b]] ) ) )
assume A1: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b ex F being Function of ((Concretized A) -carrier_of a),((Concretized A) -carrier_of b) st
( F in the Arrows of (Concretized A) . (a,b) & ( for c being object of A
for g being Morphism of c,a st <^c,a^> <> {} holds
F . [g,[c,a]] = [(f * g),[c,b]] ) )
set B = Concretized A;
let f be Morphism of a,b; ::_thesis: ex F being Function of ((Concretized A) -carrier_of a),((Concretized A) -carrier_of b) st
( F in the Arrows of (Concretized A) . (a,b) & ( for c being object of A
for g being Morphism of c,a st <^c,a^> <> {} holds
F . [g,[c,a]] = [(f * g),[c,b]] ) )
defpred S1[ set , set ] means ex o being object of A ex g being Morphism of o,a st
( <^o,a^> <> {} & $1 = [g,[o,a]] & $2 = [(f * g),[o,b]] );
A2: for x being set st x in (Concretized A) -carrier_of a holds
ex y being set st
( y in (Concretized A) -carrier_of b & S1[x,y] )
proof
let x be set ; ::_thesis: ( x in (Concretized A) -carrier_of a implies ex y being set st
( y in (Concretized A) -carrier_of b & S1[x,y] ) )
assume x in (Concretized A) -carrier_of a ; ::_thesis: ex y being set st
( y in (Concretized A) -carrier_of b & S1[x,y] )
then consider o being object of A, g being Morphism of o,a such that
A3: <^o,a^> <> {} and
A4: x = [g,[o,a]] by Th43;
take [(f * g),[o,b]] ; ::_thesis: ( [(f * g),[o,b]] in (Concretized A) -carrier_of b & S1[x,[(f * g),[o,b]]] )
<^o,b^> <> {} by A1, A3, ALTCAT_1:def_2;
hence ( [(f * g),[o,b]] in (Concretized A) -carrier_of b & S1[x,[(f * g),[o,b]]] ) by A3, A4, Th43; ::_thesis: verum
end;
consider F being Function such that
A5: ( dom F = (Concretized A) -carrier_of a & rng F c= (Concretized A) -carrier_of b ) and
A6: for x being set st x in (Concretized A) -carrier_of a holds
S1[x,F . x] from FUNCT_1:sch_5(A2);
A7: F in Funcs (((Concretized A) -carrier_of a),((Concretized A) -carrier_of b)) by A5, FUNCT_2:def_2;
then reconsider F = F as Function of ((Concretized A) -carrier_of a),((Concretized A) -carrier_of b) by FUNCT_2:66;
take F ; ::_thesis: ( F in the Arrows of (Concretized A) . (a,b) & ( for c being object of A
for g being Morphism of c,a st <^c,a^> <> {} holds
F . [g,[c,a]] = [(f * g),[c,b]] ) )
ex fa, fb being object of A ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being object of A st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds F . [h,[o,fa]] = [(g * h),[o,fb]] ) )
proof
take fa = a; ::_thesis: ex fb being object of A ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being object of A st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds F . [h,[o,fa]] = [(g * h),[o,fb]] ) )
take fb = b; ::_thesis: ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being object of A st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds F . [h,[o,fa]] = [(g * h),[o,fb]] ) )
reconsider g = f as Morphism of fa,fb ;
take g ; ::_thesis: ( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being object of A st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds F . [h,[o,fa]] = [(g * h),[o,fb]] ) )
thus ( fa = a & fb = b & <^fa,fb^> <> {} ) by A1; ::_thesis: for o being object of A st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds F . [h,[o,fa]] = [(g * h),[o,fb]]
let o be object of A; ::_thesis: ( <^o,fa^> <> {} implies for h being Morphism of o,fa holds F . [h,[o,fa]] = [(g * h),[o,fb]] )
assume A8: <^o,fa^> <> {} ; ::_thesis: for h being Morphism of o,fa holds F . [h,[o,fa]] = [(g * h),[o,fb]]
let h be Morphism of o,fa; ::_thesis: F . [h,[o,fa]] = [(g * h),[o,fb]]
[h,[o,fa]] in (Concretized A) -carrier_of fa by A8, Th43;
then consider c being object of A, k being Morphism of c,fa such that
<^c,fa^> <> {} and
A9: [h,[o,fa]] = [k,[c,fa]] and
A10: F . [h,[o,fa]] = [(g * k),[c,fb]] by A6;
[o,fa] = [c,fa] by A9, XTUPLE_0:1;
then o = c by XTUPLE_0:1;
hence F . [h,[o,fa]] = [(g * h),[o,fb]] by A9, A10, XTUPLE_0:1; ::_thesis: verum
end;
hence F in the Arrows of (Concretized A) . (a,b) by A7, Def12; ::_thesis: for c being object of A
for g being Morphism of c,a st <^c,a^> <> {} holds
F . [g,[c,a]] = [(f * g),[c,b]]
let c be object of A; ::_thesis: for g being Morphism of c,a st <^c,a^> <> {} holds
F . [g,[c,a]] = [(f * g),[c,b]]
let g be Morphism of c,a; ::_thesis: ( <^c,a^> <> {} implies F . [g,[c,a]] = [(f * g),[c,b]] )
assume <^c,a^> <> {} ; ::_thesis: F . [g,[c,a]] = [(f * g),[c,b]]
then [g,[c,a]] in (Concretized A) -carrier_of a by Th43;
then consider o being object of A, h being Morphism of o,a such that
<^o,a^> <> {} and
A11: [g,[c,a]] = [h,[o,a]] and
A12: F . [g,[c,a]] = [(f * h),[o,b]] by A6;
[c,a] = [o,a] by A11, XTUPLE_0:1;
then c = o by XTUPLE_0:1;
hence F . [g,[c,a]] = [(f * g),[c,b]] by A11, A12, XTUPLE_0:1; ::_thesis: verum
end;
theorem Th45: :: YELLOW18:45
for A being category
for a, b being object of A
for F1, F2 being Function st F1 in the Arrows of (Concretized A) . (a,b) & F2 in the Arrows of (Concretized A) . (a,b) & F1 . [(idm a),[a,a]] = F2 . [(idm a),[a,a]] holds
F1 = F2
proof
let A be category; ::_thesis: for a, b being object of A
for F1, F2 being Function st F1 in the Arrows of (Concretized A) . (a,b) & F2 in the Arrows of (Concretized A) . (a,b) & F1 . [(idm a),[a,a]] = F2 . [(idm a),[a,a]] holds
F1 = F2
let a, b be object of A; ::_thesis: for F1, F2 being Function st F1 in the Arrows of (Concretized A) . (a,b) & F2 in the Arrows of (Concretized A) . (a,b) & F1 . [(idm a),[a,a]] = F2 . [(idm a),[a,a]] holds
F1 = F2
set B = Concretized A;
let F1, F2 be Function; ::_thesis: ( F1 in the Arrows of (Concretized A) . (a,b) & F2 in the Arrows of (Concretized A) . (a,b) & F1 . [(idm a),[a,a]] = F2 . [(idm a),[a,a]] implies F1 = F2 )
assume that
A1: F1 in the Arrows of (Concretized A) . (a,b) and
A2: F2 in the Arrows of (Concretized A) . (a,b) and
A3: F1 . [(idm a),[a,a]] = F2 . [(idm a),[a,a]] ; ::_thesis: F1 = F2
A4: F1 in Funcs (((Concretized A) -carrier_of a),((Concretized A) -carrier_of b)) by A1, Def12;
A5: F2 in Funcs (((Concretized A) -carrier_of a),((Concretized A) -carrier_of b)) by A2, Def12;
A6: dom F1 = (Concretized A) -carrier_of a by A4, FUNCT_2:92;
A7: dom F2 = (Concretized A) -carrier_of a by A5, FUNCT_2:92;
consider fa, fb being object of A, f being Morphism of fa,fb such that
A8: fa = a and
A9: fb = b and
A10: <^fa,fb^> <> {} and
A11: for o being object of A st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds F1 . [h,[o,fa]] = [(f * h),[o,fb]] by A1, Def12;
consider ga, gb being object of A, g being Morphism of ga,gb such that
A12: ga = a and
A13: gb = b and
<^ga,gb^> <> {} and
A14: for o being object of A st <^o,ga^> <> {} holds
for h being Morphism of o,ga holds F2 . [h,[o,ga]] = [(g * h),[o,gb]] by A2, Def12;
reconsider f = f, g = g as Morphism of a,b by A8, A9, A12, A13;
A15: F1 . [(idm a),[a,a]] = [(f * (idm a)),[a,b]] by A8, A9, A11;
A16: f * (idm a) = f by A8, A9, A10, ALTCAT_1:def_17;
A17: g * (idm a) = g by A8, A9, A10, ALTCAT_1:def_17;
F2 . [(idm a),[a,a]] = [(g * (idm a)),[a,b]] by A12, A13, A14;
then A18: f = g by A3, A15, A16, A17, XTUPLE_0:1;
now__::_thesis:_for_x_being_set_st_x_in_(Concretized_A)_-carrier_of_a_holds_
F1_._x_=_F2_._x
let x be set ; ::_thesis: ( x in (Concretized A) -carrier_of a implies F1 . x = F2 . x )
assume x in (Concretized A) -carrier_of a ; ::_thesis: F1 . x = F2 . x
then consider bb being object of A, ff being Morphism of bb,a such that
A19: <^bb,a^> <> {} and
A20: x = [ff,[bb,a]] by Th43;
thus F1 . x = [(f * ff),[bb,b]] by A8, A9, A11, A19, A20
.= F2 . x by A12, A13, A14, A18, A19, A20 ; ::_thesis: verum
end;
hence F1 = F2 by A6, A7, FUNCT_1:2; ::_thesis: verum
end;
scheme :: YELLOW18:sch 23
NonUniqMSFunctionEx{ F1() -> set , F2() -> ManySortedSet of F1(), F3() -> ManySortedSet of F1(), P1[ set , set , set ] } :
ex F being ManySortedFunction of F2(),F3() st
for i, x being set st i in F1() & x in F2() . i holds
( (F . i) . x in F3() . i & P1[i,x,(F . i) . x] )
provided
A1: for i, x being set st i in F1() & x in F2() . i holds
ex y being set st
( y in F3() . i & P1[i,x,y] )
proof
defpred S1[ set , set ] means ex f being Function of (F2() . $1),(F3() . $1) st
( $2 = f & ( for x being set st x in F2() . $1 holds
( f . x in F3() . $1 & P1[$1,x,f . x] ) ) );
A2: for i being set st i in F1() holds
ex y being set st S1[i,y]
proof
let i be set ; ::_thesis: ( i in F1() implies ex y being set st S1[i,y] )
assume A3: i in F1() ; ::_thesis: ex y being set st S1[i,y]
defpred S2[ set , set ] means ( $2 in F3() . i & P1[i,$1,$2] );
A4: now__::_thesis:_for_x_being_set_st_x_in_F2()_._i_holds_
ex_y_being_set_st_
(_y_in_F3()_._i_&_S2[x,y]_)
let x be set ; ::_thesis: ( x in F2() . i implies ex y being set st
( y in F3() . i & S2[x,y] ) )
assume x in F2() . i ; ::_thesis: ex y being set st
( y in F3() . i & S2[x,y] )
then ex y being set st
( y in F3() . i & P1[i,x,y] ) by A1, A3;
hence ex y being set st
( y in F3() . i & S2[x,y] ) ; ::_thesis: verum
end;
consider f being Function such that
A5: ( dom f = F2() . i & rng f c= F3() . i ) and
A6: for x being set st x in F2() . i holds
S2[x,f . x] from FUNCT_1:sch_5(A4);
reconsider f = f as Function of (F2() . i),(F3() . i) by A5, FUNCT_2:2;
take f ; ::_thesis: S1[i,f]
take f ; ::_thesis: ( f = f & ( for x being set st x in F2() . i holds
( f . x in F3() . i & P1[i,x,f . x] ) ) )
thus ( f = f & ( for x being set st x in F2() . i holds
( f . x in F3() . i & P1[i,x,f . x] ) ) ) by A6; ::_thesis: verum
end;
consider F being Function such that
A7: dom F = F1() and
A8: for i being set st i in F1() holds
S1[i,F . i] from CLASSES1:sch_1(A2);
reconsider F = F as ManySortedSet of F1() by A7, PARTFUN1:def_2, RELAT_1:def_18;
now__::_thesis:_for_i_being_set_st_i_in_F1()_holds_
F_._i_is_Function_of_(F2()_._i),(F3()_._i)
let i be set ; ::_thesis: ( i in F1() implies F . i is Function of (F2() . i),(F3() . i) )
assume i in F1() ; ::_thesis: F . i is Function of (F2() . i),(F3() . i)
then ex f being Function of (F2() . i),(F3() . i) st
( F . i = f & ( for x being set st x in F2() . i holds
( f . x in F3() . i & P1[i,x,f . x] ) ) ) by A8;
hence F . i is Function of (F2() . i),(F3() . i) ; ::_thesis: verum
end;
then reconsider F = F as ManySortedFunction of F2(),F3() by PBOOLE:def_15;
take F ; ::_thesis: for i, x being set st i in F1() & x in F2() . i holds
( (F . i) . x in F3() . i & P1[i,x,(F . i) . x] )
let i, x be set ; ::_thesis: ( i in F1() & x in F2() . i implies ( (F . i) . x in F3() . i & P1[i,x,(F . i) . x] ) )
assume i in F1() ; ::_thesis: ( not x in F2() . i or ( (F . i) . x in F3() . i & P1[i,x,(F . i) . x] ) )
then ex f being Function of (F2() . i),(F3() . i) st
( F . i = f & ( for x being set st x in F2() . i holds
( f . x in F3() . i & P1[i,x,f . x] ) ) ) by A8;
hence ( not x in F2() . i or ( (F . i) . x in F3() . i & P1[i,x,(F . i) . x] ) ) ; ::_thesis: verum
end;
definition
let A be category;
set B = Concretized A;
func Concretization A -> strict covariant Functor of A, Concretized A means :Def13: :: YELLOW18:def 13
( ( for a being object of A holds it . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (it . f) . [(idm a),[a,a]] = [f,[a,b]] ) );
uniqueness
for b1, b2 being strict covariant Functor of A, Concretized A st ( for a being object of A holds b1 . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (b1 . f) . [(idm a),[a,a]] = [f,[a,b]] ) & ( for a being object of A holds b2 . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (b2 . f) . [(idm a),[a,a]] = [f,[a,b]] ) holds
b1 = b2
proof
let F, G be strict covariant Functor of A, Concretized A; ::_thesis: ( ( for a being object of A holds F . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (F . f) . [(idm a),[a,a]] = [f,[a,b]] ) & ( for a being object of A holds G . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (G . f) . [(idm a),[a,a]] = [f,[a,b]] ) implies F = G )
assume that
A1: for a being object of A holds F . a = a and
A2: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (F . f) . [(idm a),[a,a]] = [f,[a,b]] and
A3: for a being object of A holds G . a = a and
A4: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (G . f) . [(idm a),[a,a]] = [f,[a,b]] ; ::_thesis: F = G
A5: now__::_thesis:_for_a_being_object_of_A_holds_F_._a_=_G_._a
let a be object of A; ::_thesis: F . a = G . a
thus F . a = a by A1
.= G . a by A3 ; ::_thesis: verum
end;
now__::_thesis:_for_a,_b_being_object_of_A_st_<^a,b^>_<>_{}_holds_
for_f_being_Morphism_of_a,b_holds_F_._f_=_G_._f
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds F . f = G . f )
assume A6: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds F . f = G . f
let f be Morphism of a,b; ::_thesis: F . f = G . f
A7: (F . f) . [(idm a),[a,a]] = [f,[a,b]] by A2, A6;
A8: (G . f) . [(idm a),[a,a]] = [f,[a,b]] by A4, A6;
A9: <^(F . a),(F . b)^> <> {} by A6, FUNCTOR0:def_18;
A10: F . a = a by A1;
A11: F . b = b by A1;
A12: G . a = a by A3;
G . b = b by A3;
hence F . f = G . f by A7, A8, A9, A10, A11, A12, Th45; ::_thesis: verum
end;
hence F = G by A5, Th1; ::_thesis: verum
end;
existence
ex b1 being strict covariant Functor of A, Concretized A st
( ( for a being object of A holds b1 . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (b1 . f) . [(idm a),[a,a]] = [f,[a,b]] ) )
proof
deffunc H1( set ) -> set = $1;
A13: the carrier of (Concretized A) = the carrier of A by Def12;
A14: for a being object of A holds H1(a) is object of (Concretized A) by Def12;
reconsider AA = the Arrows of (Concretized A) as ManySortedSet of [: the carrier of A, the carrier of A:] by A13;
defpred S1[ set , set , set ] means ex a, b being object of A ex f being Morphism of a,b ex G being Function of ((Concretized A) -carrier_of a),((Concretized A) -carrier_of b) st
( $1 = [a,b] & $2 = f & $3 = G & ( for c being object of A
for g being Morphism of c,a st <^c,a^> <> {} holds
G . [g,[c,a]] = [(f * g),[c,b]] ) );
A15: for i, x being set st i in [: the carrier of A, the carrier of A:] & x in the Arrows of A . i holds
ex y being set st
( y in AA . i & S1[i,x,y] )
proof
let i, x be set ; ::_thesis: ( i in [: the carrier of A, the carrier of A:] & x in the Arrows of A . i implies ex y being set st
( y in AA . i & S1[i,x,y] ) )
assume i in [: the carrier of A, the carrier of A:] ; ::_thesis: ( not x in the Arrows of A . i or ex y being set st
( y in AA . i & S1[i,x,y] ) )
then consider a, b being set such that
A16: a in the carrier of A and
A17: b in the carrier of A and
A18: i = [a,b] by ZFMISC_1:def_2;
reconsider a = a, b = b as object of A by A16, A17;
assume A19: x in the Arrows of A . i ; ::_thesis: ex y being set st
( y in AA . i & S1[i,x,y] )
then reconsider f = x as Morphism of a,b by A18;
consider G being Function of ((Concretized A) -carrier_of a),((Concretized A) -carrier_of b) such that
A20: G in AA . (a,b) and
A21: for c being object of A
for g being Morphism of c,a st <^c,a^> <> {} holds
G . [g,[c,a]] = [(f * g),[c,b]] by A18, A19, Th44;
take G ; ::_thesis: ( G in AA . i & S1[i,x,G] )
thus ( G in AA . i & S1[i,x,G] ) by A18, A20, A21; ::_thesis: verum
end;
consider F being ManySortedFunction of the Arrows of A,AA such that
A22: for i, x being set st i in [: the carrier of A, the carrier of A:] & x in the Arrows of A . i holds
( (F . i) . x in AA . i & S1[i,x,(F . i) . x] ) from YELLOW18:sch_23(A15);
deffunc H2( set , set , set ) -> set = (F . [$1,$2]) . $3;
A23: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds H2(a,b,f) in the Arrows of (Concretized A) . (H1(a),H1(b))
proof
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds H2(a,b,f) in the Arrows of (Concretized A) . (H1(a),H1(b)) )
assume A24: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds H2(a,b,f) in the Arrows of (Concretized A) . (H1(a),H1(b))
let f be Morphism of a,b; ::_thesis: H2(a,b,f) in the Arrows of (Concretized A) . (H1(a),H1(b))
[a,b] in [: the carrier of A, the carrier of A:] by ZFMISC_1:def_2;
hence H2(a,b,f) in the Arrows of (Concretized A) . (H1(a),H1(b)) by A22, A24; ::_thesis: verum
end;
A25: for a, b, c being object of A st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c
for a9, b9, c9 being object of (Concretized A) st a9 = H1(a) & b9 = H1(b) & c9 = H1(c) holds
for f9 being Morphism of a9,b9
for g9 being Morphism of b9,c9 st f9 = H2(a,b,f) & g9 = H2(b,c,g) holds
H2(a,c,g * f) = g9 * f9
proof
let a, b, c be object of A; ::_thesis: ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b
for g being Morphism of b,c
for a9, b9, c9 being object of (Concretized A) st a9 = H1(a) & b9 = H1(b) & c9 = H1(c) holds
for f9 being Morphism of a9,b9
for g9 being Morphism of b9,c9 st f9 = H2(a,b,f) & g9 = H2(b,c,g) holds
H2(a,c,g * f) = g9 * f9 )
assume that
A26: <^a,b^> <> {} and
A27: <^b,c^> <> {} ; ::_thesis: for f being Morphism of a,b
for g being Morphism of b,c
for a9, b9, c9 being object of (Concretized A) st a9 = H1(a) & b9 = H1(b) & c9 = H1(c) holds
for f9 being Morphism of a9,b9
for g9 being Morphism of b9,c9 st f9 = H2(a,b,f) & g9 = H2(b,c,g) holds
H2(a,c,g * f) = g9 * f9
let f be Morphism of a,b; ::_thesis: for g being Morphism of b,c
for a9, b9, c9 being object of (Concretized A) st a9 = H1(a) & b9 = H1(b) & c9 = H1(c) holds
for f9 being Morphism of a9,b9
for g9 being Morphism of b9,c9 st f9 = H2(a,b,f) & g9 = H2(b,c,g) holds
H2(a,c,g * f) = g9 * f9
let g be Morphism of b,c; ::_thesis: for a9, b9, c9 being object of (Concretized A) st a9 = H1(a) & b9 = H1(b) & c9 = H1(c) holds
for f9 being Morphism of a9,b9
for g9 being Morphism of b9,c9 st f9 = H2(a,b,f) & g9 = H2(b,c,g) holds
H2(a,c,g * f) = g9 * f9
let a9, b9, c9 be object of (Concretized A); ::_thesis: ( a9 = H1(a) & b9 = H1(b) & c9 = H1(c) implies for f9 being Morphism of a9,b9
for g9 being Morphism of b9,c9 st f9 = H2(a,b,f) & g9 = H2(b,c,g) holds
H2(a,c,g * f) = g9 * f9 )
assume that
A28: a9 = a and
A29: b9 = b and
A30: c9 = c ; ::_thesis: for f9 being Morphism of a9,b9
for g9 being Morphism of b9,c9 st f9 = H2(a,b,f) & g9 = H2(b,c,g) holds
H2(a,c,g * f) = g9 * f9
let f9 be Morphism of a9,b9; ::_thesis: for g9 being Morphism of b9,c9 st f9 = H2(a,b,f) & g9 = H2(b,c,g) holds
H2(a,c,g * f) = g9 * f9
let g9 be Morphism of b9,c9; ::_thesis: ( f9 = H2(a,b,f) & g9 = H2(b,c,g) implies H2(a,c,g * f) = g9 * f9 )
assume that
A31: f9 = (F . [a,b]) . f and
A32: g9 = (F . [b,c]) . g ; ::_thesis: H2(a,c,g * f) = g9 * f9
A33: [a,b] in [: the carrier of A, the carrier of A:] by ZFMISC_1:def_2;
then consider a1, b1 being object of A, f1 being Morphism of a1,b1, G1 being Function of ((Concretized A) -carrier_of a1),((Concretized A) -carrier_of b1) such that
A34: [a,b] = [a1,b1] and
A35: f = f1 and
A36: (F . [a,b]) . f = G1 and
A37: for c being object of A
for g being Morphism of c,a1 st <^c,a1^> <> {} holds
G1 . [g,[c,a1]] = [(f1 * g),[c,b1]] by A22, A26;
A38: [b,c] in [: the carrier of A, the carrier of A:] by ZFMISC_1:def_2;
then consider b2, c2 being object of A, g2 being Morphism of b2,c2, G2 being Function of ((Concretized A) -carrier_of b2),((Concretized A) -carrier_of c2) such that
A39: [b,c] = [b2,c2] and
A40: g = g2 and
A41: (F . [b,c]) . g = G2 and
A42: for c being object of A
for g being Morphism of c,b2 st <^c,b2^> <> {} holds
G2 . [g,[c,b2]] = [(g2 * g),[c,c2]] by A22, A27;
A43: <^a,c^> <> {} by A26, A27, ALTCAT_1:def_2;
[a,c] in [: the carrier of A, the carrier of A:] by ZFMISC_1:def_2;
then consider a3, c3 being object of A, h3 being Morphism of a3,c3, G3 being Function of ((Concretized A) -carrier_of a3),((Concretized A) -carrier_of c3) such that
A44: [a,c] = [a3,c3] and
A45: g * f = h3 and
A46: (F . [a,c]) . (g * f) = G3 and
A47: for c being object of A
for g being Morphism of c,a3 st <^c,a3^> <> {} holds
G3 . [g,[c,a3]] = [(h3 * g),[c,c3]] by A22, A43;
A48: (F . [a,b]) . f in <^a9,b9^> by A22, A26, A28, A29, A33;
A49: (F . [b,c]) . g in <^b9,c9^> by A22, A27, A29, A30, A38;
A50: a = a1 by A34, XTUPLE_0:1;
A51: b = b1 by A34, XTUPLE_0:1;
A52: b = b2 by A39, XTUPLE_0:1;
A53: c = c2 by A39, XTUPLE_0:1;
A54: a = a3 by A44, XTUPLE_0:1;
A55: c = c3 by A44, XTUPLE_0:1;
reconsider G1 = G1 as Function of ((Concretized A) -carrier_of a),((Concretized A) -carrier_of b) by A34, A50, XTUPLE_0:1;
reconsider G2 = G2 as Function of ((Concretized A) -carrier_of b),((Concretized A) -carrier_of c) by A39, A52, XTUPLE_0:1;
reconsider G3 = G3 as Function of ((Concretized A) -carrier_of a),((Concretized A) -carrier_of c) by A44, A54, XTUPLE_0:1;
now__::_thesis:_for_x_being_Element_of_(Concretized_A)_-carrier_of_a_holds_G3_._x_=_(G2_*_G1)_._x
let x be Element of (Concretized A) -carrier_of a; ::_thesis: G3 . x = (G2 * G1) . x
consider bb being object of A, ff being Morphism of bb,a such that
A56: <^bb,a^> <> {} and
A57: x = [ff,[bb,a]] by Th43;
A58: <^bb,b^> <> {} by A26, A56, ALTCAT_1:def_2;
thus G3 . x = [((g * f) * ff),[bb,c]] by A45, A47, A54, A55, A56, A57
.= [(g * (f * ff)),[bb,c]] by A26, A27, A56, ALTCAT_1:21
.= G2 . [(f * ff),[bb,b]] by A40, A42, A52, A53, A58
.= G2 . (G1 . x) by A35, A37, A50, A51, A56, A57
.= (G2 * G1) . x by FUNCT_2:15 ; ::_thesis: verum
end;
then G3 = G2 * G1 by FUNCT_2:63;
hence H2(a,c,g * f) = g9 * f9 by A31, A32, A36, A41, A46, A48, A49, Th36; ::_thesis: verum
end;
A59: for a being object of A
for a9 being object of (Concretized A) st a9 = H1(a) holds
H2(a,a, idm a) = idm a9
proof
let a be object of A; ::_thesis: for a9 being object of (Concretized A) st a9 = H1(a) holds
H2(a,a, idm a) = idm a9
let a9 be object of (Concretized A); ::_thesis: ( a9 = H1(a) implies H2(a,a, idm a) = idm a9 )
assume A60: a9 = a ; ::_thesis: H2(a,a, idm a) = idm a9
[a,a] in [: the carrier of A, the carrier of A:] by ZFMISC_1:def_2;
then consider c, b being object of A, f being Morphism of c,b, G being Function of ((Concretized A) -carrier_of c),((Concretized A) -carrier_of b) such that
A61: [a,a] = [c,b] and
A62: idm a = f and
A63: (F . [a,a]) . (idm a) = G and
A64: for d being object of A
for g being Morphism of d,c st <^d,c^> <> {} holds
G . [g,[d,c]] = [(f * g),[d,b]] by A22;
A65: idm a9 = id (the_carrier_of a9) by Def10;
A66: a = c by A61, XTUPLE_0:1;
A67: a = b by A61, XTUPLE_0:1;
now__::_thesis:_for_x_being_Element_of_the_carrier_of_a9_holds_G_._x_=_(id_(the_carrier_of_a9))_._x
let x be Element of the_carrier_of a9; ::_thesis: G . x = (id (the_carrier_of a9)) . x
consider bb being object of A, ff being Morphism of bb,a such that
A68: <^bb,a^> <> {} and
A69: x = [ff,[bb,a]] by A60, Th43;
thus G . x = [((idm a) * ff),[bb,a]] by A62, A64, A66, A67, A68, A69
.= x by A68, A69, ALTCAT_1:20
.= (id (the_carrier_of a9)) . x by A60, FUNCT_1:18 ; ::_thesis: verum
end;
hence H2(a,a, idm a) = idm a9 by A60, A63, A65, A66, A67, FUNCT_2:63; ::_thesis: verum
end;
consider FF being strict covariant Functor of A, Concretized A such that
A70: for a being object of A holds FF . a = H1(a) and
A71: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds FF . f = H2(a,b,f) from YELLOW18:sch_8(A14, A23, A25, A59);
take FF ; ::_thesis: ( ( for a being object of A holds FF . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (FF . f) . [(idm a),[a,a]] = [f,[a,b]] ) )
thus for a being object of A holds FF . a = a by A70; ::_thesis: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (FF . f) . [(idm a),[a,a]] = [f,[a,b]]
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds (FF . f) . [(idm a),[a,a]] = [f,[a,b]] )
assume A72: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds (FF . f) . [(idm a),[a,a]] = [f,[a,b]]
let f be Morphism of a,b; ::_thesis: (FF . f) . [(idm a),[a,a]] = [f,[a,b]]
[a,b] in [: the carrier of A, the carrier of A:] by ZFMISC_1:def_2;
then consider a9, b9 being object of A, f9 being Morphism of a9,b9, G being Function of ((Concretized A) -carrier_of a9),((Concretized A) -carrier_of b9) such that
A73: [a,b] = [a9,b9] and
A74: f = f9 and
A75: (F . [a,b]) . f = G and
A76: for c being object of A
for g being Morphism of c,a9 st <^c,a9^> <> {} holds
G . [g,[c,a9]] = [(f9 * g),[c,b9]] by A22, A72;
A77: G = FF . f by A71, A72, A75;
A78: a = a9 by A73, XTUPLE_0:1;
b = b9 by A73, XTUPLE_0:1;
hence (FF . f) . [(idm a),[a,a]] = [(f * (idm a)),[a,b]] by A74, A76, A77, A78
.= [f,[a,b]] by A72, ALTCAT_1:def_17 ;
::_thesis: verum
end;
end;
:: deftheorem Def13 defines Concretization YELLOW18:def_13_:_
for A being category
for b2 being strict covariant Functor of A, Concretized A holds
( b2 = Concretization A iff ( ( for a being object of A holds b2 . a = a ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (b2 . f) . [(idm a),[a,a]] = [f,[a,b]] ) ) );
registration
let A be category;
cluster Concretization A -> strict covariant bijective ;
coherence
Concretization A is bijective
proof
set B = Concretized A;
set FF = Concretization A;
deffunc H1( set ) -> set = A;
A1: for a being object of A holds (Concretization A) . a = H1(a) by Def13;
deffunc H2( object of A, object of A, Morphism of A,c2) -> Element of <^((Concretization A) . A),((Concretization A) . c2)^> = (Concretization A) . c3;
A2: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (Concretization A) . f = H2(a,b,f) ;
A3: for a, b being object of A st H1(a) = H1(b) holds
a = b ;
A4: for a, b being object of A st <^a,b^> <> {} holds
for f, g being Morphism of a,b st H2(a,b,f) = H2(a,b,g) holds
f = g
proof
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f, g being Morphism of a,b st H2(a,b,f) = H2(a,b,g) holds
f = g )
assume A5: <^a,b^> <> {} ; ::_thesis: for f, g being Morphism of a,b st H2(a,b,f) = H2(a,b,g) holds
f = g
let f, g be Morphism of a,b; ::_thesis: ( H2(a,b,f) = H2(a,b,g) implies f = g )
A6: ((Concretization A) . f) . [(idm a),[a,a]] = [f,[a,b]] by A5, Def13;
((Concretization A) . g) . [(idm a),[a,a]] = [g,[a,b]] by A5, Def13;
hence ( H2(a,b,f) = H2(a,b,g) implies f = g ) by A6, XTUPLE_0:1; ::_thesis: verum
end;
A7: for a, b being object of (Concretized A) st <^a,b^> <> {} holds
for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st
( a = H1(c) & b = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) )
proof
let a, b be object of (Concretized A); ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st
( a = H1(c) & b = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) ) )
assume A8: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st
( a = H1(c) & b = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) )
reconsider c = a, d = b as object of A by Def12;
let f be Morphism of a,b; ::_thesis: ex c, d being object of A ex g being Morphism of c,d st
( a = H1(c) & b = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) )
take c ; ::_thesis: ex d being object of A ex g being Morphism of c,d st
( a = H1(c) & b = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) )
take d ; ::_thesis: ex g being Morphism of c,d st
( a = H1(c) & b = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) )
consider fa, fb being object of A, g being Morphism of fa,fb such that
A9: fa = c and
A10: fb = d and
A11: <^fa,fb^> <> {} and
A12: for o being object of A st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] by A8, Def12;
reconsider g = g as Morphism of c,d by A9, A10;
take g ; ::_thesis: ( a = H1(c) & b = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) )
A13: ((Concretization A) . g) . [(idm c),[c,c]] = [g,[c,d]] by A9, A10, A11, Def13;
g * (idm c) = g by A9, A10, A11, ALTCAT_1:def_17;
then A14: ((Concretization A) . g) . [(idm c),[c,c]] = f . [(idm c),[c,c]] by A9, A10, A12, A13;
A15: (Concretization A) . c = a by Def13;
(Concretization A) . d = b by Def13;
hence ( a = H1(c) & b = H1(d) & <^c,d^> <> {} & f = H2(c,d,g) ) by A8, A9, A10, A11, A14, A15, Th45; ::_thesis: verum
end;
thus Concretization A is bijective from YELLOW18:sch_10(A1, A2, A3, A4, A7); ::_thesis: verum
end;
end;
theorem :: YELLOW18:46
for A being category holds A, Concretized A are_isomorphic
proof
let A be category; ::_thesis: A, Concretized A are_isomorphic
take Concretization A ; :: according to FUNCTOR0:def_39 ::_thesis: ( Concretization A is bijective & Concretization A is covariant )
thus ( Concretization A is bijective & Concretization A is covariant ) ; ::_thesis: verum
end;