:: ISOCAT_2 semantic presentation
theorem Th1: :: ISOCAT_2:1
theorem Th2: :: ISOCAT_2:2
theorem Th3: :: ISOCAT_2:3
theorem Th4: :: ISOCAT_2:4
theorem Th5: :: ISOCAT_2:5
theorem Th6: :: ISOCAT_2:6
theorem Th7: :: ISOCAT_2:7
theorem Th8: :: ISOCAT_2:8
theorem Th9: :: ISOCAT_2:9
definition
let c
1, c
2 be
Category;
let c
3 be
Object of c
1;
func c
3 |-> c
2 -> Functor of
Functors a
1,a
2,a
2 means :
Def1:
:: ISOCAT_2:def 1
for b
1, b
2 being
Functor of a
1,a
2for b
3 being
natural_transformation of b
1,b
2 holds
( b
1 is_naturally_transformable_to b
2 implies a
4 . [[b1,b2],b3] = b
3 . a
3 );
existence
ex b1 being Functor of Functors c1,c2,c2 st
for b2, b3 being Functor of c1,c2
for b4 being natural_transformation of b2,b3 holds
( b2 is_naturally_transformable_to b3 implies b1 . [[b2,b3],b4] = b4 . c3 )
uniqueness
for b1, b2 being Functor of Functors c1,c2,c2 holds
( ( for b3, b4 being Functor of c1,c2
for b5 being natural_transformation of b3,b4 holds
( b3 is_naturally_transformable_to b4 implies b1 . [[b3,b4],b5] = b5 . c3 ) ) & ( for b3, b4 being Functor of c1,c2
for b5 being natural_transformation of b3,b4 holds
( b3 is_naturally_transformable_to b4 implies b2 . [[b3,b4],b5] = b5 . c3 ) ) implies b1 = b2 )
end;
:: deftheorem Def1 defines |-> ISOCAT_2:def 1 :
Lemma11:
for b1, b2 being set holds
( the Objects of (1Cat b1,b2) = {b1} & the Morphisms of (1Cat b1,b2) = {b2} )
theorem Th10: :: ISOCAT_2:10
canceled;
theorem Th11: :: ISOCAT_2:11
theorem Th12: :: ISOCAT_2:12
theorem Th13: :: ISOCAT_2:13
theorem Th14: :: ISOCAT_2:14
for b
1, b
2 being
Categoryfor b
3, b
4 being
Object of b
1for b
5, b
6 being
Object of b
2 holds
(
Hom [b3,b5],
[b4,b6] <> {} implies for b
7 being
Morphism of b
1for b
8 being
Morphism of b
2 holds
(
[b7,b8] is
Morphism of
[b3,b5],
[b4,b6] iff ( b
7 is
Morphism of b
3,b
4 & b
8 is
Morphism of b
5,b
6 ) ) )
theorem Th15: :: ISOCAT_2:15
:: deftheorem Def2 defines curry ISOCAT_2:def 2 :
theorem Th16: :: ISOCAT_2:16
theorem Th17: :: ISOCAT_2:17
:: deftheorem Def3 defines ?- ISOCAT_2:def 3 :
theorem Th18: :: ISOCAT_2:18
theorem Th19: :: ISOCAT_2:19
theorem Th20: :: ISOCAT_2:20
theorem Th21: :: ISOCAT_2:21
definition
let c
1, c
2, c
3 be
Category;
let c
4 be
Functor of
[:c1,c2:],c
3;
func export c
4 -> Functor of a
1,
Functors a
2,a
3 means :
Def4:
:: ISOCAT_2:def 4
for b
1 being
Morphism of a
1 holds a
5 . b
1 = [[(a4 ?- (dom b1)),(a4 ?- (cod b1))],(a4 ?- b1)];
existence
ex b1 being Functor of c1, Functors c2,c3 st
for b2 being Morphism of c1 holds b1 . b2 = [[(c4 ?- (dom b2)),(c4 ?- (cod b2))],(c4 ?- b2)]
uniqueness
for b1, b2 being Functor of c1, Functors c2,c3 holds
( ( for b3 being Morphism of c1 holds b1 . b3 = [[(c4 ?- (dom b3)),(c4 ?- (cod b3))],(c4 ?- b3)] ) & ( for b3 being Morphism of c1 holds b2 . b3 = [[(c4 ?- (dom b3)),(c4 ?- (cod b3))],(c4 ?- b3)] ) implies b1 = b2 )
end;
:: deftheorem Def4 defines export ISOCAT_2:def 4 :
Lemma23:
for b1, b2 being Category
for b3, b4 being Functor of b1,b2 holds
( b3 is_transformable_to b4 implies for b5 being transformation of b3,b4
for b6 being Object of b1 holds b5 . b6 in Hom (b3 . b6),(b4 . b6) )
theorem Th22: :: ISOCAT_2:22
canceled;
theorem Th23: :: ISOCAT_2:23
canceled;
theorem Th24: :: ISOCAT_2:24
theorem Th25: :: ISOCAT_2:25
theorem Th26: :: ISOCAT_2:26
theorem Th27: :: ISOCAT_2:27
for b
1, b
2, b
3 being
Categoryfor b
4, b
5 being
Functor of
[:b1,b2:],b
3 holds
( b
4 is_naturally_transformable_to b
5 implies for b
6 being
natural_transformation of b
4,b
5 holds
(
export b
4 is_naturally_transformable_to export b
5 & ex b
7 being
natural_transformation of
export b
4,
export b
5 st
for b
8 being
Function of
[:the Objects of b1,the Objects of b2:],the
Morphisms of b
3 holds
( b
6 = b
8 implies for b
9 being
Object of b
1 holds b
7 . b
9 = [[((export b4) . b9),((export b5) . b9)],((curry b8) . b9)] ) ) )
definition
let c
1, c
2, c
3 be
Category;
let c
4, c
5 be
Functor of
[:c1,c2:],c
3;
assume E28:
c
4 is_naturally_transformable_to c
5
;
let c
6 be
natural_transformation of c
4,c
5;
func export c
6 -> natural_transformation of
export a
4,
export a
5 means :
Def5:
:: ISOCAT_2:def 5
for b
1 being
Function of
[:the Objects of a1,the Objects of a2:],the
Morphisms of a
3 holds
( a
6 = b
1 implies for b
2 being
Object of a
1 holds a
7 . b
2 = [[((export a4) . b2),((export a5) . b2)],((curry b1) . b2)] );
existence
ex b1 being natural_transformation of export c4, export c5 st
for b2 being Function of [:the Objects of c1,the Objects of c2:],the Morphisms of c3 holds
( c6 = b2 implies for b3 being Object of c1 holds b1 . b3 = [[((export c4) . b3),((export c5) . b3)],((curry b2) . b3)] )
by E28, Th27;
uniqueness
for b1, b2 being natural_transformation of export c4, export c5 holds
( ( for b3 being Function of [:the Objects of c1,the Objects of c2:],the Morphisms of c3 holds
( c6 = b3 implies for b4 being Object of c1 holds b1 . b4 = [[((export c4) . b4),((export c5) . b4)],((curry b3) . b4)] ) ) & ( for b3 being Function of [:the Objects of c1,the Objects of c2:],the Morphisms of c3 holds
( c6 = b3 implies for b4 being Object of c1 holds b2 . b4 = [[((export c4) . b4),((export c5) . b4)],((curry b3) . b4)] ) ) implies b1 = b2 )
end;
:: deftheorem Def5 defines export ISOCAT_2:def 5 :
for b
1, b
2, b
3 being
Categoryfor b
4, b
5 being
Functor of
[:b1,b2:],b
3 holds
( b
4 is_naturally_transformable_to b
5 implies for b
6 being
natural_transformation of b
4,b
5for b
7 being
natural_transformation of
export b
4,
export b
5 holds
( b
7 = export b
6 iff for b
8 being
Function of
[:the Objects of b1,the Objects of b2:],the
Morphisms of b
3 holds
( b
6 = b
8 implies for b
9 being
Object of b
1 holds b
7 . b
9 = [[((export b4) . b9),((export b5) . b9)],((curry b8) . b9)] ) ) );
theorem Th28: :: ISOCAT_2:28
theorem Th29: :: ISOCAT_2:29
theorem Th30: :: ISOCAT_2:30
theorem Th31: :: ISOCAT_2:31
theorem Th32: :: ISOCAT_2:32
definition
let c
1, c
2, c
3 be
Category;
func export c
1,c
2,c
3 -> Functor of
Functors [:a1,a2:],a
3,
Functors a
1,
(Functors a2,a3) means :
Def6:
:: ISOCAT_2:def 6
for b
1, b
2 being
Functor of
[:a1,a2:],a
3 holds
( b
1 is_naturally_transformable_to b
2 implies for b
3 being
natural_transformation of b
1,b
2 holds a
4 . [[b1,b2],b3] = [[(export b1),(export b2)],(export b3)] );
existence
ex b1 being Functor of Functors [:c1,c2:],c3, Functors c1,(Functors c2,c3) st
for b2, b3 being Functor of [:c1,c2:],c3 holds
( b2 is_naturally_transformable_to b3 implies for b4 being natural_transformation of b2,b3 holds b1 . [[b2,b3],b4] = [[(export b2),(export b3)],(export b4)] )
uniqueness
for b1, b2 being Functor of Functors [:c1,c2:],c3, Functors c1,(Functors c2,c3) holds
( ( for b3, b4 being Functor of [:c1,c2:],c3 holds
( b3 is_naturally_transformable_to b4 implies for b5 being natural_transformation of b3,b4 holds b1 . [[b3,b4],b5] = [[(export b3),(export b4)],(export b5)] ) ) & ( for b3, b4 being Functor of [:c1,c2:],c3 holds
( b3 is_naturally_transformable_to b4 implies for b5 being natural_transformation of b3,b4 holds b2 . [[b3,b4],b5] = [[(export b3),(export b4)],(export b5)] ) ) implies b1 = b2 )
end;
:: deftheorem Def6 defines export ISOCAT_2:def 6 :
for b
1, b
2, b
3 being
Categoryfor b
4 being
Functor of
Functors [:b1,b2:],b
3,
Functors b
1,
(Functors b2,b3) holds
( b
4 = export b
1,b
2,b
3 iff for b
5, b
6 being
Functor of
[:b1,b2:],b
3 holds
( b
5 is_naturally_transformable_to b
6 implies for b
7 being
natural_transformation of b
5,b
6 holds b
4 . [[b5,b6],b7] = [[(export b5),(export b6)],(export b7)] ) );
theorem Th33: :: ISOCAT_2:33
theorem Th34: :: ISOCAT_2:34
theorem Th35: :: ISOCAT_2:35
definition
let c
1, c
2 be
Category;
redefine func pr1 as
pr1 c
1,c
2 -> Functor of
[:a1,a2:],a
1;
coherence
pr1 c1,c2 is Functor of [:c1,c2:],c1
;
redefine func pr2 as
pr2 c
1,c
2 -> Functor of
[:a1,a2:],a
2;
coherence
pr2 c1,c2 is Functor of [:c1,c2:],c2
;
end;
definition
let c
1, c
2, c
3 be
Category;
let c
4 be
Functor of c
1,c
2;
let c
5 be
Functor of c
1,c
3;
redefine func <: as
<:c4,c5:> -> Functor of a
1,
[:a2,a3:];
coherence
<:c4,c5:> is Functor of c1,[:c2,c3:]
end;
definition
let c
1, c
2, c
3 be
Category;
let c
4 be
Functor of c
1,
[:c2,c3:];
func Pr1 c
4 -> Functor of a
1,a
2 equals :: ISOCAT_2:def 7
(pr1 a2,a3) * a
4;
correctness
coherence
(pr1 c2,c3) * c4 is Functor of c1,c2;
;
func Pr2 c
4 -> Functor of a
1,a
3 equals :: ISOCAT_2:def 8
(pr2 a2,a3) * a
4;
correctness
coherence
(pr2 c2,c3) * c4 is Functor of c1,c3;
;
end;
:: deftheorem Def7 defines Pr1 ISOCAT_2:def 7 :
:: deftheorem Def8 defines Pr2 ISOCAT_2:def 8 :
theorem Th36: :: ISOCAT_2:36
theorem Th37: :: ISOCAT_2:37
definition
let c
1, c
2, c
3 be
Category;
let c
4, c
5 be
Functor of c
1,
[:c2,c3:];
let c
6 be
natural_transformation of c
4,c
5;
func Pr1 c
6 -> natural_transformation of
Pr1 a
4,
Pr1 a
5 equals :: ISOCAT_2:def 9
(pr1 a2,a3) * a
6;
coherence
(pr1 c2,c3) * c6 is natural_transformation of Pr1 c4, Pr1 c5
;
func Pr2 c
6 -> natural_transformation of
Pr2 a
4,
Pr2 a
5 equals :: ISOCAT_2:def 10
(pr2 a2,a3) * a
6;
coherence
(pr2 c2,c3) * c6 is natural_transformation of Pr2 c4, Pr2 c5
;
end;
:: deftheorem Def9 defines Pr1 ISOCAT_2:def 9 :
:: deftheorem Def10 defines Pr2 ISOCAT_2:def 10 :
theorem Th38: :: ISOCAT_2:38
theorem Th39: :: ISOCAT_2:39
theorem Th40: :: ISOCAT_2:40
theorem Th41: :: ISOCAT_2:41
Lemma43:
for b1, b2, b3 being Category
for b4, b5 being Functor of b1,b2
for b6, b7 being Functor of b1,b3 holds
( b4 is_transformable_to b5 & b6 is_transformable_to b7 implies for b8 being transformation of b4,b5
for b9 being transformation of b6,b7
for b10 being Object of b1 holds <:b8,b9:> . b10 = [(b8 . b10),(b9 . b10)] )
theorem Th42: :: ISOCAT_2:42
theorem Th43: :: ISOCAT_2:43
Lemma46:
for b1, b2, b3 being Category
for b4, b5 being Functor of b1,b2
for b6, b7 being Functor of b1,b3 holds
( b4 is_transformable_to b5 & b6 is_transformable_to b7 implies for b8 being transformation of b4,b5
for b9 being transformation of b6,b7
for b10 being Object of b1 holds <:b8,b9:> . b10 in Hom (<:b4,b6:> . b10),(<:b5,b7:> . b10) )
theorem Th44: :: ISOCAT_2:44
definition
let c
1, c
2, c
3 be
Category;
let c
4, c
5 be
Functor of c
1,c
2;
let c
6, c
7 be
Functor of c
1,c
3;
assume E48:
( c
4 is_transformable_to c
5 & c
6 is_transformable_to c
7 )
;
let c
8 be
transformation of c
4,c
5;
let c
9 be
transformation of c
6,c
7;
func <:c8,c9:> -> transformation of
<:a4,a6:>,
<:a5,a7:> equals :
Def11:
:: ISOCAT_2:def 11
<:a8,a9:>;
coherence
<:c8,c9:> is transformation of <:c4,c6:>,<:c5,c7:>
end;
:: deftheorem Def11 defines <: ISOCAT_2:def 11 :
for b
1, b
2, b
3 being
Categoryfor b
4, b
5 being
Functor of b
1,b
2for b
6, b
7 being
Functor of b
1,b
3 holds
( b
4 is_transformable_to b
5 & b
6 is_transformable_to b
7 implies for b
8 being
transformation of b
4,b
5for b
9 being
transformation of b
6,b
7 holds
<:b8,b9:> = <:b8,b9:> );
theorem Th45: :: ISOCAT_2:45
for b
1, b
2, b
3 being
Categoryfor b
4, b
5 being
Functor of b
1,b
2for b
6, b
7 being
Functor of b
1,b
3 holds
( b
4 is_transformable_to b
5 & b
6 is_transformable_to b
7 implies for b
8 being
transformation of b
4,b
5for b
9 being
transformation of b
6,b
7for b
10 being
Object of b
1 holds
<:b8,b9:> . b
10 = [(b8 . b10),(b9 . b10)] )
Lemma50:
for b1, b2, b3 being Category
for b4, b5 being Functor of b1,b2
for b6, b7 being Functor of b1,b3 holds
( b4 is_naturally_transformable_to b5 & b6 is_naturally_transformable_to b7 implies for b8 being natural_transformation of b4,b5
for b9 being natural_transformation of b6,b7
for b10, b11 being Object of b1 holds
( Hom b10,b11 <> {} implies for b12 being Morphism of b10,b11 holds (<:b8,b9:> . b11) * (<:b4,b6:> . b12) = (<:b5,b7:> . b12) * (<:b8,b9:> . b10) ) )
theorem Th46: :: ISOCAT_2:46
definition
let c
1, c
2, c
3 be
Category;
let c
4, c
5 be
Functor of c
1,c
2;
let c
6, c
7 be
Functor of c
1,c
3;
assume that E52:
c
4 is_naturally_transformable_to c
5
and E53:
c
6 is_naturally_transformable_to c
7
;
let c
8 be
natural_transformation of c
4,c
5;
let c
9 be
natural_transformation of c
6,c
7;
func <:c8,c9:> -> natural_transformation of
<:a4,a6:>,
<:a5,a7:> equals :
Def12:
:: ISOCAT_2:def 12
<:a8,a9:>;
coherence
<:c8,c9:> is natural_transformation of <:c4,c6:>,<:c5,c7:>
end;
:: deftheorem Def12 defines <: ISOCAT_2:def 12 :
for b
1, b
2, b
3 being
Categoryfor b
4, b
5 being
Functor of b
1,b
2for b
6, b
7 being
Functor of b
1,b
3 holds
( b
4 is_naturally_transformable_to b
5 & b
6 is_naturally_transformable_to b
7 implies for b
8 being
natural_transformation of b
4,b
5for b
9 being
natural_transformation of b
6,b
7 holds
<:b8,b9:> = <:b8,b9:> );
theorem Th47: :: ISOCAT_2:47
for b
1, b
2, b
3 being
Categoryfor b
4, b
5 being
Functor of b
1,b
2for b
6, b
7 being
Functor of b
1,b
3 holds
( b
4 is_naturally_transformable_to b
5 & b
6 is_naturally_transformable_to b
7 implies for b
8 being
natural_transformation of b
4,b
5for b
9 being
natural_transformation of b
6,b
7 holds
(
Pr1 <:b8,b9:> = b
8 &
Pr2 <:b8,b9:> = b
9 ) )
definition
let c
1, c
2, c
3 be
Category;
func distribute c
1,c
2,c
3 -> Functor of
Functors a
1,
[:a2,a3:],
[:(Functors a1,a2),(Functors a1,a3):] means :
Def13:
:: ISOCAT_2:def 13
for b
1, b
2 being
Functor of a
1,
[:a2,a3:] holds
( b
1 is_naturally_transformable_to b
2 implies for b
3 being
natural_transformation of b
1,b
2 holds a
4 . [[b1,b2],b3] = [[[(Pr1 b1),(Pr1 b2)],(Pr1 b3)],[[(Pr2 b1),(Pr2 b2)],(Pr2 b3)]] );
existence
ex b1 being Functor of Functors c1,[:c2,c3:],[:(Functors c1,c2),(Functors c1,c3):] st
for b2, b3 being Functor of c1,[:c2,c3:] holds
( b2 is_naturally_transformable_to b3 implies for b4 being natural_transformation of b2,b3 holds b1 . [[b2,b3],b4] = [[[(Pr1 b2),(Pr1 b3)],(Pr1 b4)],[[(Pr2 b2),(Pr2 b3)],(Pr2 b4)]] )
uniqueness
for b1, b2 being Functor of Functors c1,[:c2,c3:],[:(Functors c1,c2),(Functors c1,c3):] holds
( ( for b3, b4 being Functor of c1,[:c2,c3:] holds
( b3 is_naturally_transformable_to b4 implies for b5 being natural_transformation of b3,b4 holds b1 . [[b3,b4],b5] = [[[(Pr1 b3),(Pr1 b4)],(Pr1 b5)],[[(Pr2 b3),(Pr2 b4)],(Pr2 b5)]] ) ) & ( for b3, b4 being Functor of c1,[:c2,c3:] holds
( b3 is_naturally_transformable_to b4 implies for b5 being natural_transformation of b3,b4 holds b2 . [[b3,b4],b5] = [[[(Pr1 b3),(Pr1 b4)],(Pr1 b5)],[[(Pr2 b3),(Pr2 b4)],(Pr2 b5)]] ) ) implies b1 = b2 )
end;
:: deftheorem Def13 defines distribute ISOCAT_2:def 13 :
for b
1, b
2, b
3 being
Categoryfor b
4 being
Functor of
Functors b
1,
[:b2,b3:],
[:(Functors b1,b2),(Functors b1,b3):] holds
( b
4 = distribute b
1,b
2,b
3 iff for b
5, b
6 being
Functor of b
1,
[:b2,b3:] holds
( b
5 is_naturally_transformable_to b
6 implies for b
7 being
natural_transformation of b
5,b
6 holds b
4 . [[b5,b6],b7] = [[[(Pr1 b5),(Pr1 b6)],(Pr1 b7)],[[(Pr2 b5),(Pr2 b6)],(Pr2 b7)]] ) );
theorem Th48: :: ISOCAT_2:48
theorem Th49: :: ISOCAT_2:49