:: CAT_4 semantic presentation
definition
let c1 be
Category;
let c2,
c3 be
Object of
c1;
canceled;redefine pred c2,
c3 are_isomorphic means :: CAT_4:def 2
(
Hom a2,
a3 <> {} &
Hom a3,
a2 <> {} & ex
b1 being
Morphism of
a2,
a3ex
b2 being
Morphism of
a3,
a2 st
(
b1 * b2 = id a3 &
b2 * b1 = id a2 ) );
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 a1 is
strict;
struct ProdCatStr -> CatStr ;
aggr ProdCatStr(#
Objects,
Morphisms,
Dom,
Cod,
Comp,
Id,
TerminalObj,
CatProd,
Proj1,
Proj2 #)
-> ProdCatStr ;
sel TerminalObj c1 -> Element of the
Objects of
a1;
sel CatProd c1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Objects of
a1;
sel Proj1 c1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Morphisms of
a1;
sel Proj2 c1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Morphisms of
a1;
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 c1,
c2 be
set ;
func c1Cat c1,
c2 -> 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
b1,
b2 being
set holds
c1Cat b1,
b2 = 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
b1,
b2 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 b1,
b2 ;
Lemma2:
for b1, b2 being set holds c1Cat b1,b2 is Category-like
theorem Th3: :: CAT_4:3
theorem Th4: :: CAT_4:4
for
b1,
b2 being
set for
b3,
b4 being
Object of
(c1Cat b1,b2) holds
b3 = b4
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 c1 be
Cartesian_category;
let c2,
c3,
c4 be
Object of
c1;
let c5 be
Morphism of
c4,
c2;
let c6 be
Morphism of
c4,
c3;
assume E20:
(
Hom c4,
c2 <> {} &
Hom c4,
c3 <> {} )
;
func <:c5,c6:> -> Morphism of
a4,
a2 [x] a3 means :
Def11:
:: CAT_4:def 11
(
(pr1 a2,a3) * a7 = a5 &
(pr2 a2,a3) * a7 = a6 );
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 st (pr1 c2,c3) * b1 = c5 & (pr2 c2,c3) * b1 = c6 & (pr1 c2,c3) * b2 = c5 & (pr2 c2,c3) * b2 = c6 holds
b1 = b2
end;
:: deftheorem Def11 defines <: CAT_4:def 11 :
for
b1 being
Cartesian_category for
b2,
b3,
b4 being
Object of
b1 for
b5 being
Morphism of
b4,
b2 for
b6 being
Morphism of
b4,
b3 st
Hom b4,
b2 <> {} &
Hom b4,
b3 <> {} holds
for
b7 being
Morphism of
b4,
b2 [x] b3 holds
(
b7 = <:b5,b6:> iff (
(pr1 b2,b3) * b7 = b5 &
(pr2 b2,b3) * b7 = b6 ) );
theorem Th25: :: CAT_4:25
theorem Th26: :: CAT_4:26
theorem Th27: :: CAT_4:27
for
b1 being
Cartesian_category for
b2,
b3,
b4,
b5 being
Object of
b1 for
b6 being
Morphism of
b2,
b3 for
b7 being
Morphism of
b2,
b4 for
b8 being
Morphism of
b5,
b2 st
Hom b2,
b3 <> {} &
Hom b2,
b4 <> {} &
Hom b5,
b2 <> {} holds
<:(b6 * b8),(b7 * b8):> = <:b6,b7:> * b8
theorem Th28: :: CAT_4:28
for
b1 being
Cartesian_category for
b2,
b3,
b4 being
Object of
b1 for
b5,
b6 being
Morphism of
b2,
b3 for
b7,
b8 being
Morphism of
b2,
b4 st
Hom b2,
b3 <> {} &
Hom b2,
b4 <> {} &
<:b5,b7:> = <:b6,b8:> holds
(
b5 = b6 &
b7 = b8 )
theorem Th29: :: CAT_4:29
theorem Th30: :: CAT_4:30
definition
let c1 be
Cartesian_category;
let c2 be
Object of
c1;
func lambda c2 -> Morphism of
([1] a1) [x] a2,
a2 equals :: CAT_4:def 12
pr2 ([1] a1),
a2;
correctness
coherence
pr2 ([1] c1),c2 is Morphism of ([1] c1) [x] c2,c2;
;
func lambda' c2 -> Morphism of
a2,
([1] a1) [x] a2 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 c2 -> Morphism of
a2 [x] ([1] a1),
a2 equals :: CAT_4:def 14
pr1 a2,
([1] a1);
correctness
coherence
pr1 c2,([1] c1) is Morphism of c2 [x] ([1] c1),c2;
;
func rho' c2 -> Morphism of
a2,
a2 [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 c1 be
Cartesian_category;
let c2,
c3 be
Object of
c1;
func Switch c2,
c3 -> Morphism of
a2 [x] a3,
a3 [x] a2 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 c1 be
Cartesian_category;
let c2,
c3,
c4 be
Object of
c1;
func Alpha c2,
c3,
c4 -> Morphism of
(a2 [x] a3) [x] a4,
a2 [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' c2,
c3,
c4 -> Morphism of
a2 [x] (a3 [x] a4),
(a2 [x] a3) [x] a4 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
b1 being
Cartesian_category for
b2,
b3,
b4 being
Object of
b1 holds
Alpha b2,
b3,
b4 = <:((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
b1 being
Cartesian_category for
b2,
b3,
b4 being
Object of
b1 holds
Alpha' b2,
b3,
b4 = <:<:(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
b1 being
Cartesian_category for
b2,
b3,
b4 being
Object of
b1 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 c1 be
Cartesian_category;
let c2,
c3,
c4,
c5 be
Object of
c1;
let c6 be
Morphism of
c2,
c3;
let c7 be
Morphism of
c4,
c5;
func c6 [x] c7 -> Morphism of
a2 [x] a4,
a3 [x] a5 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
b1 being
Cartesian_category for
b2,
b3,
b4,
b5,
b6 being
Object of
b1 for
b7 being
Morphism of
b2,
b3 for
b8 being
Morphism of
b4,
b5 for
b9 being
Morphism of
b6,
b2 for
b10 being
Morphism of
b6,
b4 st
Hom b2,
b3 <> {} &
Hom b4,
b5 <> {} &
Hom b6,
b2 <> {} &
Hom b6,
b4 <> {} holds
(b7 [x] b8) * <:b9,b10:> = <:(b7 * b9),(b8 * b10):>
theorem Th44: :: CAT_4:44
theorem Th45: :: CAT_4:45
for
b1 being
Cartesian_category for
b2,
b3,
b4,
b5,
b6,
b7 being
Object of
b1 for
b8 being
Morphism of
b2,
b3 for
b9 being
Morphism of
b4,
b5 for
b10 being
Morphism of
b6,
b2 for
b11 being
Morphism of
b7,
b4 st
Hom b2,
b3 <> {} &
Hom b4,
b5 <> {} &
Hom b6,
b2 <> {} &
Hom b7,
b4 <> {} holds
(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 a1 is
strict;
struct CoprodCatStr -> CatStr ;
aggr CoprodCatStr(#
Objects,
Morphisms,
Dom,
Cod,
Comp,
Id,
Initial,
Coproduct,
Incl1,
Incl2 #)
-> CoprodCatStr ;
sel Initial c1 -> Element of the
Objects of
a1;
sel Coproduct c1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Objects of
a1;
sel Incl1 c1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Morphisms of
a1;
sel Incl2 c1 -> Function of
[:the Objects of a1,the Objects of a1:],the
Morphisms of
a1;
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 c1,
c2 be
set ;
func c1Cat* c1,
c2 -> 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
b1,
b2 being
set holds
c1Cat* b1,
b2 = 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
b1,
b2 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 b1,
b2 ;
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 c1 be
Cocartesian_category;
let c2,
c3,
c4 be
Object of
c1;
let c5 be
Morphism of
c2,
c4;
let c6 be
Morphism of
c3,
c4;
assume E51:
(
Hom c2,
c4 <> {} &
Hom c3,
c4 <> {} )
;
func [$c5,c6$] -> Morphism of
a2 + a3,
a4 means :
Def29:
:: CAT_4:def 29
(
a7 * (in1 a2,a3) = a5 &
a7 * (in2 a2,a3) = a6 );
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 st b1 * (in1 c2,c3) = c5 & b1 * (in2 c2,c3) = c6 & b2 * (in1 c2,c3) = c5 & b2 * (in2 c2,c3) = c6 holds
b1 = b2
end;
:: deftheorem Def29 defines [$ CAT_4:def 29 :
for
b1 being
Cocartesian_category for
b2,
b3,
b4 being
Object of
b1 for
b5 being
Morphism of
b2,
b4 for
b6 being
Morphism of
b3,
b4 st
Hom b2,
b4 <> {} &
Hom b3,
b4 <> {} holds
for
b7 being
Morphism of
b2 + b3,
b4 holds
(
b7 = [$b5,b6$] iff (
b7 * (in1 b2,b3) = b5 &
b7 * (in2 b2,b3) = b6 ) );
theorem Th70: :: CAT_4:70
theorem Th71: :: CAT_4:71
theorem Th72: :: CAT_4:72
for
b1 being
Cocartesian_category for
b2,
b3,
b4,
b5 being
Object of
b1 for
b6 being
Morphism of
b2,
b3 for
b7 being
Morphism of
b4,
b3 for
b8 being
Morphism of
b3,
b5 st
Hom b2,
b3 <> {} &
Hom b4,
b3 <> {} &
Hom b3,
b5 <> {} holds
[$(b8 * b6),(b8 * b7)$] = b8 * [$b6,b7$]
theorem Th73: :: CAT_4:73
for
b1 being
Cocartesian_category for
b2,
b3,
b4 being
Object of
b1 for
b5,
b6 being
Morphism of
b2,
b3 for
b7,
b8 being
Morphism of
b4,
b3 st
Hom b2,
b3 <> {} &
Hom b4,
b3 <> {} &
[$b5,b7$] = [$b6,b8$] holds
(
b5 = b6 &
b7 = b8 )
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 c1 be
Cocartesian_category;
let c2,
c3,
c4,
c5 be
Object of
c1;
let c6 be
Morphism of
c2,
c4;
let c7 be
Morphism of
c3,
c5;
func c6 + c7 -> Morphism of
a2 + a3,
a4 + a5 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
b1 being
Cocartesian_category for
b2,
b3,
b4,
b5,
b6 being
Object of
b1 for
b7 being
Morphism of
b2,
b3 for
b8 being
Morphism of
b4,
b5 for
b9 being
Morphism of
b3,
b6 for
b10 being
Morphism of
b5,
b6 st
Hom b2,
b3 <> {} &
Hom b4,
b5 <> {} &
Hom b3,
b6 <> {} &
Hom b5,
b6 <> {} holds
[$b9,b10$] * (b7 + b8) = [$(b9 * b7),(b10 * b8)$]
theorem Th81: :: CAT_4:81
theorem Th82: :: CAT_4:82
for
b1 being
Cocartesian_category for
b2,
b3,
b4,
b5,
b6,
b7 being
Object of
b1 for
b8 being
Morphism of
b2,
b3 for
b9 being
Morphism of
b4,
b5 for
b10 being
Morphism of
b3,
b6 for
b11 being
Morphism of
b5,
b7 st
Hom b2,
b3 <> {} &
Hom b4,
b5 <> {} &
Hom b3,
b6 <> {} &
Hom b5,
b7 <> {} holds
(b10 + b11) * (b8 + b9) = (b10 * b8) + (b11 * b9)