:: CAT_4 semantic presentation
definition
let c
1 be
Category;
let c
2, c
3 be
Object of c
1;
canceled;redefine pred c
2,c
3 are_isomorphic means :: CAT_4:def 2
(
Hom a
2,a
3 <> {} &
Hom a
3,a
2 <> {} & ex b
1 being
Morphism of a
2,a
3ex b
2 being
Morphism of a
3,a
2 st
( b
1 * b
2 = id a
3 & b
2 * b
1 = id a
2 ) );
compatibility
( c2,c3 are_isomorphic iff ( Hom c2,c3 <> {} & Hom c3,c2 <> {} & ex b1 being Morphism of c2,c3ex b2 being Morphism of c3,c2 st
( b1 * b2 = id c3 & b2 * b1 = id c2 ) ) )
by CAT_1:81;
end;
:: deftheorem Def1 CAT_4:def 1 :
canceled;
:: deftheorem Def2 defines are_isomorphic CAT_4:def 2 :
:: deftheorem Def3 defines with_finite_product CAT_4:def 3 :
theorem Th1: :: CAT_4:1
definition
attr a
1 is
strict;
struct ProdCatStr -> CatStr ;
aggr ProdCatStr(#
Objects,
Morphisms,
Dom,
Cod,
Comp,
Id,
TerminalObj,
CatProd,
Proj1,
Proj2 #)
-> ProdCatStr ;
sel TerminalObj c
1 -> Element of the
Objects of a
1;
sel CatProd c
1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Objects of a
1;
sel Proj1 c
1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Morphisms of a
1;
sel Proj2 c
1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Morphisms of a
1;
end;
:: deftheorem Def4 defines [1] CAT_4:def 4 :
:: deftheorem Def5 defines [x] CAT_4:def 5 :
:: deftheorem Def6 defines pr1 CAT_4:def 6 :
:: deftheorem Def7 defines pr2 CAT_4:def 7 :
definition
let c
1, c
2 be
set ;
func c1Cat c
1,c
2 -> strict ProdCatStr equals :: CAT_4:def 8
ProdCatStr(#
{a1},
{a2},
({a2} --> a1),
({a2} --> a1),
(a2,a2 .--> a2),
({a1} --> a2),
(Extract a1),
(a1,a1 :-> a1),
(a1,a1 :-> a2),
(a1,a1 :-> a2) #);
correctness
coherence
ProdCatStr(# {c1},{c2},({c2} --> c1),({c2} --> c1),(c2,c2 .--> c2),({c1} --> c2),(Extract c1),(c1,c1 :-> c1),(c1,c1 :-> c2),(c1,c1 :-> c2) #) is strict ProdCatStr ;
;
end;
:: deftheorem Def8 defines c1Cat CAT_4:def 8 :
for b
1, b
2 being
set holds
c1Cat b
1,b
2 = ProdCatStr(#
{b1},
{b2},
({b2} --> b1),
({b2} --> b1),
(b2,b2 .--> b2),
({b1} --> b2),
(Extract b1),
(b1,b1 :-> b1),
(b1,b1 :-> b2),
(b1,b1 :-> b2) #);
theorem Th2: :: CAT_4:2
for b
1, b
2 being
set holds
CatStr(# the
Objects of
(c1Cat b1,b2),the
Morphisms of
(c1Cat b1,b2),the
Dom of
(c1Cat b1,b2),the
Cod of
(c1Cat b1,b2),the
Comp of
(c1Cat b1,b2),the
Id of
(c1Cat b1,b2) #)
= 1Cat b
1,b
2 ;
Lemma2:
for b1, b2 being set holds c1Cat b1,b2 is Category-like
theorem Th3: :: CAT_4:3
theorem Th4: :: CAT_4:4
for b
1, b
2 being
set for b
3, b
4 being
Object of
(c1Cat b1,b2) holds b
3 = b
4
theorem Th5: :: CAT_4:5
theorem Th6: :: CAT_4:6
theorem Th7: :: CAT_4:7
theorem Th8: :: CAT_4:8
theorem Th9: :: CAT_4:9
theorem Th10: :: CAT_4:10
theorem Th11: :: CAT_4:11
:: deftheorem Def9 defines Cartesian CAT_4:def 9 :
theorem Th12: :: CAT_4:12
theorem Th13: :: CAT_4:13
theorem Th14: :: CAT_4:14
theorem Th15: :: CAT_4:15
:: deftheorem Def10 defines term CAT_4:def 10 :
theorem Th16: :: CAT_4:16
theorem Th17: :: CAT_4:17
theorem Th18: :: CAT_4:18
theorem Th19: :: CAT_4:19
theorem Th20: :: CAT_4:20
theorem Th21: :: CAT_4:21
theorem Th22: :: CAT_4:22
theorem Th23: :: CAT_4:23
theorem Th24: :: CAT_4:24
definition
let c
1 be
Cartesian_category;
let c
2, c
3, c
4 be
Object of c
1;
let c
5 be
Morphism of c
4,c
2;
let c
6 be
Morphism of c
4,c
3;
assume E20:
(
Hom c
4,c
2 <> {} &
Hom c
4,c
3 <> {} )
;
func <:c5,c6:> -> Morphism of a
4,a
2 [x] a
3 means :
Def11:
:: CAT_4:def 11
(
(pr1 a2,a3) * a
7 = a
5 &
(pr2 a2,a3) * a
7 = a
6 );
existence
ex b1 being Morphism of c4,c2 [x] c3 st
( (pr1 c2,c3) * b1 = c5 & (pr2 c2,c3) * b1 = c6 )
uniqueness
for b1, b2 being Morphism of c4,c2 [x] c3 holds
( (pr1 c2,c3) * b1 = c5 & (pr2 c2,c3) * b1 = c6 & (pr1 c2,c3) * b2 = c5 & (pr2 c2,c3) * b2 = c6 implies b1 = b2 )
end;
:: deftheorem Def11 defines <: CAT_4:def 11 :
for b
1 being
Cartesian_categoryfor b
2, b
3, b
4 being
Object of b
1for b
5 being
Morphism of b
4,b
2for b
6 being
Morphism of b
4,b
3 holds
(
Hom b
4,b
2 <> {} &
Hom b
4,b
3 <> {} implies for b
7 being
Morphism of b
4,b
2 [x] b
3 holds
( b
7 = <:b5,b6:> iff (
(pr1 b2,b3) * b
7 = b
5 &
(pr2 b2,b3) * b
7 = b
6 ) ) );
theorem Th25: :: CAT_4:25
theorem Th26: :: CAT_4:26
theorem Th27: :: CAT_4:27
for b
1 being
Cartesian_categoryfor b
2, b
3, b
4, b
5 being
Object of b
1for b
6 being
Morphism of b
2,b
3for b
7 being
Morphism of b
2,b
4for b
8 being
Morphism of b
5,b
2 holds
(
Hom b
2,b
3 <> {} &
Hom b
2,b
4 <> {} &
Hom b
5,b
2 <> {} implies
<:(b6 * b8),(b7 * b8):> = <:b6,b7:> * b
8 )
theorem Th28: :: CAT_4:28
for b
1 being
Cartesian_categoryfor b
2, b
3, b
4 being
Object of b
1for b
5, b
6 being
Morphism of b
2,b
3for b
7, b
8 being
Morphism of b
2,b
4 holds
(
Hom b
2,b
3 <> {} &
Hom b
2,b
4 <> {} &
<:b5,b7:> = <:b6,b8:> implies ( b
5 = b
6 & b
7 = b
8 ) )
theorem Th29: :: CAT_4:29
theorem Th30: :: CAT_4:30
definition
let c
1 be
Cartesian_category;
let c
2 be
Object of c
1;
func lambda c
2 -> Morphism of
([1] a1) [x] a
2,a
2 equals :: CAT_4:def 12
pr2 ([1] a1),a
2;
correctness
coherence
pr2 ([1] c1),c2 is Morphism of ([1] c1) [x] c2,c2;
;
func lambda' c
2 -> Morphism of a
2,
([1] a1) [x] a
2 equals :: CAT_4:def 13
<:(term a2),(id a2):>;
correctness
coherence
<:(term c2),(id c2):> is Morphism of c2,([1] c1) [x] c2;
;
func rho c
2 -> Morphism of a
2 [x] ([1] a1),a
2 equals :: CAT_4:def 14
pr1 a
2,
([1] a1);
correctness
coherence
pr1 c2,([1] c1) is Morphism of c2 [x] ([1] c1),c2;
;
func rho' c
2 -> Morphism of a
2,a
2 [x] ([1] a1) equals :: CAT_4:def 15
<:(id a2),(term a2):>;
correctness
coherence
<:(id c2),(term c2):> is Morphism of c2,c2 [x] ([1] c1);
;
end;
:: deftheorem Def12 defines lambda CAT_4:def 12 :
:: deftheorem Def13 defines lambda' CAT_4:def 13 :
:: deftheorem Def14 defines rho CAT_4:def 14 :
:: deftheorem Def15 defines rho' CAT_4:def 15 :
theorem Th31: :: CAT_4:31
theorem Th32: :: CAT_4:32
definition
let c
1 be
Cartesian_category;
let c
2, c
3 be
Object of c
1;
func Switch c
2,c
3 -> Morphism of a
2 [x] a
3,a
3 [x] a
2 equals :: CAT_4:def 16
<:(pr2 a2,a3),(pr1 a2,a3):>;
correctness
coherence
<:(pr2 c2,c3),(pr1 c2,c3):> is Morphism of c2 [x] c3,c3 [x] c2;
;
end;
:: deftheorem Def16 defines Switch CAT_4:def 16 :
theorem Th33: :: CAT_4:33
theorem Th34: :: CAT_4:34
theorem Th35: :: CAT_4:35
:: deftheorem Def17 defines Delta CAT_4:def 17 :
theorem Th36: :: CAT_4:36
theorem Th37: :: CAT_4:37
definition
let c
1 be
Cartesian_category;
let c
2, c
3, c
4 be
Object of c
1;
func Alpha c
2,c
3,c
4 -> Morphism of
(a2 [x] a3) [x] a
4,a
2 [x] (a3 [x] a4) equals :: CAT_4:def 18
<:((pr1 a2,a3) * (pr1 (a2 [x] a3),a4)),<:((pr2 a2,a3) * (pr1 (a2 [x] a3),a4)),(pr2 (a2 [x] a3),a4):>:>;
correctness
coherence
<:((pr1 c2,c3) * (pr1 (c2 [x] c3),c4)),<:((pr2 c2,c3) * (pr1 (c2 [x] c3),c4)),(pr2 (c2 [x] c3),c4):>:> is Morphism of (c2 [x] c3) [x] c4,c2 [x] (c3 [x] c4);
;
func Alpha' c
2,c
3,c
4 -> Morphism of a
2 [x] (a3 [x] a4),
(a2 [x] a3) [x] a
4 equals :: CAT_4:def 19
<:<:(pr1 a2,(a3 [x] a4)),((pr1 a3,a4) * (pr2 a2,(a3 [x] a4))):>,((pr2 a3,a4) * (pr2 a2,(a3 [x] a4))):>;
correctness
coherence
<:<:(pr1 c2,(c3 [x] c4)),((pr1 c3,c4) * (pr2 c2,(c3 [x] c4))):>,((pr2 c3,c4) * (pr2 c2,(c3 [x] c4))):> is Morphism of c2 [x] (c3 [x] c4),(c2 [x] c3) [x] c4;
;
end;
:: deftheorem Def18 defines Alpha CAT_4:def 18 :
for b
1 being
Cartesian_categoryfor b
2, b
3, b
4 being
Object of b
1 holds
Alpha b
2,b
3,b
4 = <:((pr1 b2,b3) * (pr1 (b2 [x] b3),b4)),<:((pr2 b2,b3) * (pr1 (b2 [x] b3),b4)),(pr2 (b2 [x] b3),b4):>:>;
:: deftheorem Def19 defines Alpha' CAT_4:def 19 :
for b
1 being
Cartesian_categoryfor b
2, b
3, b
4 being
Object of b
1 holds
Alpha' b
2,b
3,b
4 = <:<:(pr1 b2,(b3 [x] b4)),((pr1 b3,b4) * (pr2 b2,(b3 [x] b4))):>,((pr2 b3,b4) * (pr2 b2,(b3 [x] b4))):>;
theorem Th38: :: CAT_4:38
theorem Th39: :: CAT_4:39
for b
1 being
Cartesian_categoryfor b
2, b
3, b
4 being
Object of b
1 holds
(
(Alpha b2,b3,b4) * (Alpha' b2,b3,b4) = id (b2 [x] (b3 [x] b4)) &
(Alpha' b2,b3,b4) * (Alpha b2,b3,b4) = id ((b2 [x] b3) [x] b4) )
theorem Th40: :: CAT_4:40
definition
let c
1 be
Cartesian_category;
let c
2, c
3, c
4, c
5 be
Object of c
1;
let c
6 be
Morphism of c
2,c
3;
let c
7 be
Morphism of c
4,c
5;
func c
6 [x] c
7 -> Morphism of a
2 [x] a
4,a
3 [x] a
5 equals :: CAT_4:def 20
<:(a6 * (pr1 a2,a4)),(a7 * (pr2 a2,a4)):>;
correctness
coherence
<:(c6 * (pr1 c2,c4)),(c7 * (pr2 c2,c4)):> is Morphism of c2 [x] c4,c3 [x] c5;
;
end;
:: deftheorem Def20 defines [x] CAT_4:def 20 :
theorem Th41: :: CAT_4:41
theorem Th42: :: CAT_4:42
theorem Th43: :: CAT_4:43
for b
1 being
Cartesian_categoryfor b
2, b
3, b
4, b
5, b
6 being
Object of b
1for b
7 being
Morphism of b
2,b
3for b
8 being
Morphism of b
4,b
5for b
9 being
Morphism of b
6,b
2for b
10 being
Morphism of b
6,b
4 holds
(
Hom b
2,b
3 <> {} &
Hom b
4,b
5 <> {} &
Hom b
6,b
2 <> {} &
Hom b
6,b
4 <> {} implies
(b7 [x] b8) * <:b9,b10:> = <:(b7 * b9),(b8 * b10):> )
theorem Th44: :: CAT_4:44
theorem Th45: :: CAT_4:45
for b
1 being
Cartesian_categoryfor b
2, b
3, b
4, b
5, b
6, b
7 being
Object of b
1for b
8 being
Morphism of b
2,b
3for b
9 being
Morphism of b
4,b
5for b
10 being
Morphism of b
6,b
2for b
11 being
Morphism of b
7,b
4 holds
(
Hom b
2,b
3 <> {} &
Hom b
4,b
5 <> {} &
Hom b
6,b
2 <> {} &
Hom b
7,b
4 <> {} implies
(b8 [x] b9) * (b10 [x] b11) = (b8 * b10) [x] (b9 * b11) )
:: deftheorem Def21 defines with_finite_coproduct CAT_4:def 21 :
theorem Th46: :: CAT_4:46
definition
attr a
1 is
strict;
struct CoprodCatStr -> CatStr ;
aggr CoprodCatStr(#
Objects,
Morphisms,
Dom,
Cod,
Comp,
Id,
Initial,
Coproduct,
Incl1,
Incl2 #)
-> CoprodCatStr ;
sel Initial c
1 -> Element of the
Objects of a
1;
sel Coproduct c
1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Objects of a
1;
sel Incl1 c
1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Morphisms of a
1;
sel Incl2 c
1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Morphisms of a
1;
end;
:: deftheorem Def22 defines [0] CAT_4:def 22 :
:: deftheorem Def23 defines + CAT_4:def 23 :
:: deftheorem Def24 defines in1 CAT_4:def 24 :
:: deftheorem Def25 defines in2 CAT_4:def 25 :
definition
let c
1, c
2 be
set ;
func c1Cat* c
1,c
2 -> strict CoprodCatStr equals :: CAT_4:def 26
CoprodCatStr(#
{a1},
{a2},
({a2} --> a1),
({a2} --> a1),
(a2,a2 .--> a2),
({a1} --> a2),
(Extract a1),
(a1,a1 :-> a1),
(a1,a1 :-> a2),
(a1,a1 :-> a2) #);
correctness
coherence
CoprodCatStr(# {c1},{c2},({c2} --> c1),({c2} --> c1),(c2,c2 .--> c2),({c1} --> c2),(Extract c1),(c1,c1 :-> c1),(c1,c1 :-> c2),(c1,c1 :-> c2) #) is strict CoprodCatStr ;
;
end;
:: deftheorem Def26 defines c1Cat* CAT_4:def 26 :
for b
1, b
2 being
set holds
c1Cat* b
1,b
2 = CoprodCatStr(#
{b1},
{b2},
({b2} --> b1),
({b2} --> b1),
(b2,b2 .--> b2),
({b1} --> b2),
(Extract b1),
(b1,b1 :-> b1),
(b1,b1 :-> b2),
(b1,b1 :-> b2) #);
theorem Th47: :: CAT_4:47
for b
1, b
2 being
set holds
CatStr(# the
Objects of
(c1Cat* b1,b2),the
Morphisms of
(c1Cat* b1,b2),the
Dom of
(c1Cat* b1,b2),the
Cod of
(c1Cat* b1,b2),the
Comp of
(c1Cat* b1,b2),the
Id of
(c1Cat* b1,b2) #)
= 1Cat b
1,b
2 ;
Lemma33:
for b1, b2 being set holds c1Cat* b1,b2 is Category-like
theorem Th48: :: CAT_4:48
theorem Th49: :: CAT_4:49
theorem Th50: :: CAT_4:50
theorem Th51: :: CAT_4:51
theorem Th52: :: CAT_4:52
theorem Th53: :: CAT_4:53
theorem Th54: :: CAT_4:54
theorem Th55: :: CAT_4:55
theorem Th56: :: CAT_4:56
:: deftheorem Def27 defines Cocartesian CAT_4:def 27 :
theorem Th57: :: CAT_4:57
theorem Th58: :: CAT_4:58
theorem Th59: :: CAT_4:59
:: deftheorem Def28 defines init CAT_4:def 28 :
theorem Th60: :: CAT_4:60
theorem Th61: :: CAT_4:61
theorem Th62: :: CAT_4:62
theorem Th63: :: CAT_4:63
theorem Th64: :: CAT_4:64
theorem Th65: :: CAT_4:65
theorem Th66: :: CAT_4:66
theorem Th67: :: CAT_4:67
theorem Th68: :: CAT_4:68
theorem Th69: :: CAT_4:69
definition
let c
1 be
Cocartesian_category;
let c
2, c
3, c
4 be
Object of c
1;
let c
5 be
Morphism of c
2,c
4;
let c
6 be
Morphism of c
3,c
4;
assume E51:
(
Hom c
2,c
4 <> {} &
Hom c
3,c
4 <> {} )
;
func [$c5,c6$] -> Morphism of a
2 + a
3,a
4 means :
Def29:
:: CAT_4:def 29
( a
7 * (in1 a2,a3) = a
5 & a
7 * (in2 a2,a3) = a
6 );
existence
ex b1 being Morphism of c2 + c3,c4 st
( b1 * (in1 c2,c3) = c5 & b1 * (in2 c2,c3) = c6 )
uniqueness
for b1, b2 being Morphism of c2 + c3,c4 holds
( b1 * (in1 c2,c3) = c5 & b1 * (in2 c2,c3) = c6 & b2 * (in1 c2,c3) = c5 & b2 * (in2 c2,c3) = c6 implies b1 = b2 )
end;
:: deftheorem Def29 defines [$ CAT_4:def 29 :
for b
1 being
Cocartesian_categoryfor b
2, b
3, b
4 being
Object of b
1for b
5 being
Morphism of b
2,b
4for b
6 being
Morphism of b
3,b
4 holds
(
Hom b
2,b
4 <> {} &
Hom b
3,b
4 <> {} implies for b
7 being
Morphism of b
2 + b
3,b
4 holds
( b
7 = [$b5,b6$] iff ( b
7 * (in1 b2,b3) = b
5 & b
7 * (in2 b2,b3) = b
6 ) ) );
theorem Th70: :: CAT_4:70
theorem Th71: :: CAT_4:71
theorem Th72: :: CAT_4:72
for b
1 being
Cocartesian_categoryfor b
2, b
3, b
4, b
5 being
Object of b
1for b
6 being
Morphism of b
2,b
3for b
7 being
Morphism of b
4,b
3for b
8 being
Morphism of b
3,b
5 holds
(
Hom b
2,b
3 <> {} &
Hom b
4,b
3 <> {} &
Hom b
3,b
5 <> {} implies
[$(b8 * b6),(b8 * b7)$] = b
8 * [$b6,b7$] )
theorem Th73: :: CAT_4:73
for b
1 being
Cocartesian_categoryfor b
2, b
3, b
4 being
Object of b
1for b
5, b
6 being
Morphism of b
2,b
3for b
7, b
8 being
Morphism of b
4,b
3 holds
(
Hom b
2,b
3 <> {} &
Hom b
4,b
3 <> {} &
[$b5,b7$] = [$b6,b8$] implies ( b
5 = b
6 & b
7 = b
8 ) )
theorem Th74: :: CAT_4:74
theorem Th75: :: CAT_4:75
theorem Th76: :: CAT_4:76
theorem Th77: :: CAT_4:77
:: deftheorem Def30 defines nabla CAT_4:def 30 :
definition
let c
1 be
Cocartesian_category;
let c
2, c
3, c
4, c
5 be
Object of c
1;
let c
6 be
Morphism of c
2,c
4;
let c
7 be
Morphism of c
3,c
5;
func c
6 + c
7 -> Morphism of a
2 + a
3,a
4 + a
5 equals :: CAT_4:def 31
[$((in1 a4,a5) * a6),((in2 a4,a5) * a7)$];
correctness
coherence
[$((in1 c4,c5) * c6),((in2 c4,c5) * c7)$] is Morphism of c2 + c3,c4 + c5;
;
end;
:: deftheorem Def31 defines + CAT_4:def 31 :
theorem Th78: :: CAT_4:78
theorem Th79: :: CAT_4:79
theorem Th80: :: CAT_4:80
for b
1 being
Cocartesian_categoryfor b
2, b
3, b
4, b
5, b
6 being
Object of b
1for b
7 being
Morphism of b
2,b
3for b
8 being
Morphism of b
4,b
5for b
9 being
Morphism of b
3,b
6for b
10 being
Morphism of b
5,b
6 holds
(
Hom b
2,b
3 <> {} &
Hom b
4,b
5 <> {} &
Hom b
3,b
6 <> {} &
Hom b
5,b
6 <> {} implies
[$b9,b10$] * (b7 + b8) = [$(b9 * b7),(b10 * b8)$] )
theorem Th81: :: CAT_4:81
theorem Th82: :: CAT_4:82
for b
1 being
Cocartesian_categoryfor b
2, b
3, b
4, b
5, b
6, b
7 being
Object of b
1for b
8 being
Morphism of b
2,b
3for b
9 being
Morphism of b
4,b
5for b
10 being
Morphism of b
3,b
6for b
11 being
Morphism of b
5,b
7 holds
(
Hom b
2,b
3 <> {} &
Hom b
4,b
5 <> {} &
Hom b
3,b
6 <> {} &
Hom b
5,b
7 <> {} implies
(b10 + b11) * (b8 + b9) = (b10 * b8) + (b11 * b9) )