:: CAT_5 semantic presentation  Show TPTP formulae Show IDV graph for whole article:: Showing IDV graph ... (Click the Palm Trees again to close it)

definition
let D1, D2, D be non empty set ;
let x be Element of [:[:D1,D2:],D:];
:: original: `11
redefine func x `11 -> Element of D1;
coherence
x `11 is Element of D1
proof end;
:: original: `12
redefine func x `12 -> Element of D2;
coherence
x `12 is Element of D2
proof end;
end;

definition
let D1, D2 be non empty set ;
let x be Element of [:D1,D2:];
:: original: `2
redefine func x `2 -> Element of D2;
coherence
x `2 is Element of D2
proof end;
end;

theorem Th1: :: CAT_5:1  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C, D being CatStr st CatStr(# the Objects of C,the Morphisms of C,the Dom of C,the Cod of C,the Comp of C,the Id of C #) = CatStr(# the Objects of D,the Morphisms of D,the Dom of D,the Cod of D,the Comp of D,the Id of D #) & C is Category-like holds
D is Category-like
proof end;

definition
let IT be CatStr ;
attr IT is with_triple-like_morphisms means :Def1: :: CAT_5:def 1
for f being Morphism of IT ex x being set st f = [[(dom f),(cod f)],x];
end;

:: deftheorem Def1 defines with_triple-like_morphisms CAT_5:def 1 :
for IT being CatStr holds
( IT is with_triple-like_morphisms iff for f being Morphism of IT ex x being set st f = [[(dom f),(cod f)],x] );

registration
cluster strict with_triple-like_morphisms CatStr ;
existence
ex b1 being strict Category st b1 is with_triple-like_morphisms
proof end;
end;

theorem Th2: :: CAT_5:2  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being with_triple-like_morphisms CatStr
for f being Morphism of C holds
( dom f = f `11 & cod f = f `12 & f = [[(dom f),(cod f)],(f `2 )] )
proof end;

definition
let C be with_triple-like_morphisms CatStr ;
let f be Morphism of C;
:: original: `11
redefine func f `11 -> Object of C;
coherence
f `11 is Object of C
proof end;
:: original: `12
redefine func f `12 -> Object of C;
coherence
f `12 is Object of C
proof end;
end;

scheme :: CAT_5:sch 1
CatEx{ F1() -> non empty set , F2() -> non empty set , P1[ set , set , set ], F3( set , set ) -> set } :
ex C being strict with_triple-like_morphisms Category st
( the Objects of C = F1() & ( for a, b being Element of F1()
for f being Element of F2() st P1[a,b,f] holds
[[a,b],f] is Morphism of C ) & ( for m being Morphism of C ex a, b being Element of F1() ex f being Element of F2() st
( m = [[a,b],f] & P1[a,b,f] ) ) & ( for m1, m2 being Morphism of C
for a1, a2, a3 being Element of F1()
for f1, f2 being Element of F2() st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],F3(f2,f1)] ) )
provided
A1: for a, b, c being Element of F1()
for f, g being Element of F2() st P1[a,b,f] & P1[b,c,g] holds
( F3(g,f) in F2() & P1[a,c,F3(g,f)] ) and
A2: for a being Element of F1() ex f being Element of F2() st
( P1[a,a,f] & ( for b being Element of F1()
for g being Element of F2() holds
( ( P1[a,b,g] implies F3(g,f) = g ) & ( P1[b,a,g] implies F3(f,g) = g ) ) ) ) and
A3: for a, b, c, d being Element of F1()
for f, g, h being Element of F2() st P1[a,b,f] & P1[b,c,g] & P1[c,d,h] holds
F3(h,F3(g,f)) = F3(F3(h,g),f)
proof end;

scheme :: CAT_5:sch 2
CatUniq{ F1() -> non empty set , F2() -> non empty set , P1[ set , set , set ], F3( set , set ) -> set } :
for C1, C2 being strict with_triple-like_morphisms Category st the Objects of C1 = F1() & ( for a, b being Element of F1()
for f being Element of F2() st P1[a,b,f] holds
[[a,b],f] is Morphism of C1 ) & ( for m being Morphism of C1 ex a, b being Element of F1() ex f being Element of F2() st
( m = [[a,b],f] & P1[a,b,f] ) ) & ( for m1, m2 being Morphism of C1
for a1, a2, a3 being Element of F1()
for f1, f2 being Element of F2() st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],F3(f2,f1)] ) & the Objects of C2 = F1() & ( for a, b being Element of F1()
for f being Element of F2() st P1[a,b,f] holds
[[a,b],f] is Morphism of C2 ) & ( for m being Morphism of C2 ex a, b being Element of F1() ex f being Element of F2() st
( m = [[a,b],f] & P1[a,b,f] ) ) & ( for m1, m2 being Morphism of C2
for a1, a2, a3 being Element of F1()
for f1, f2 being Element of F2() st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],F3(f2,f1)] ) holds
C1 = C2
provided
A1: for a being Element of F1() ex f being Element of F2() st
( P1[a,a,f] & ( for b being Element of F1()
for g being Element of F2() holds
( ( P1[a,b,g] implies F3(g,f) = g ) & ( P1[b,a,g] implies F3(f,g) = g ) ) ) )
proof end;

scheme :: CAT_5:sch 3
FunctorEx{ F1() -> Category, F2() -> Category, F3( set ) -> Object of F2(), F4( set ) -> set } :
ex F being Functor of F1(),F2() st
for f being Morphism of F1() holds F . f = F4(f)
provided
A1: for f being Morphism of F1() holds
( F4(f) is Morphism of F2() & ( for g being Morphism of F2() st g = F4(f) holds
( dom g = F3((dom f)) & cod g = F3((cod f)) ) ) ) and
A2: for a being Object of F1() holds F4((id a)) = id F3(a) and
A3: for f1, f2 being Morphism of F1()
for g1, g2 being Morphism of F2() st g1 = F4(f1) & g2 = F4(f2) & dom f2 = cod f1 holds
F4((f2 * f1)) = g2 * g1
proof end;

theorem Th3: :: CAT_5:3  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C1 being Category
for C2 being Subcategory of C1 st C1 is Subcategory of C2 holds
CatStr(# the Objects of C1,the Morphisms of C1,the Dom of C1,the Cod of C1,the Comp of C1,the Id of C1 #) = CatStr(# the Objects of C2,the Morphisms of C2,the Dom of C2,the Cod of C2,the Comp of C2,the Id of C2 #)
proof end;

theorem Th4: :: CAT_5:4  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for D being Subcategory of C
for E being Subcategory of D holds E is Subcategory of C
proof end;

definition
let C1, C2 be Category;
given C being Category such that A1: ( C1 is Subcategory of C & C2 is Subcategory of C ) ;
given o1 being Object of C1 such that A2: o1 is Object of C2 ;
func C1 /\ C2 -> strict Category means :Def2: :: CAT_5:def 2
( the Objects of it = the Objects of C1 /\ the Objects of C2 & the Morphisms of it = the Morphisms of C1 /\ the Morphisms of C2 & the Dom of it = the Dom of C1 | the Morphisms of C2 & the Cod of it = the Cod of C1 | the Morphisms of C2 & the Comp of it = the Comp of C1 || the Morphisms of C2 & the Id of it = the Id of C1 | the Objects of C2 );
existence
ex b1 being strict Category st
( the Objects of b1 = the Objects of C1 /\ the Objects of C2 & the Morphisms of b1 = the Morphisms of C1 /\ the Morphisms of C2 & the Dom of b1 = the Dom of C1 | the Morphisms of C2 & the Cod of b1 = the Cod of C1 | the Morphisms of C2 & the Comp of b1 = the Comp of C1 || the Morphisms of C2 & the Id of b1 = the Id of C1 | the Objects of C2 )
proof end;
uniqueness
for b1, b2 being strict Category st the Objects of b1 = the Objects of C1 /\ the Objects of C2 & the Morphisms of b1 = the Morphisms of C1 /\ the Morphisms of C2 & the Dom of b1 = the Dom of C1 | the Morphisms of C2 & the Cod of b1 = the Cod of C1 | the Morphisms of C2 & the Comp of b1 = the Comp of C1 || the Morphisms of C2 & the Id of b1 = the Id of C1 | the Objects of C2 & the Objects of b2 = the Objects of C1 /\ the Objects of C2 & the Morphisms of b2 = the Morphisms of C1 /\ the Morphisms of C2 & the Dom of b2 = the Dom of C1 | the Morphisms of C2 & the Cod of b2 = the Cod of C1 | the Morphisms of C2 & the Comp of b2 = the Comp of C1 || the Morphisms of C2 & the Id of b2 = the Id of C1 | the Objects of C2 holds
b1 = b2
;
end;

:: deftheorem Def2 defines /\ CAT_5:def 2 :
for C1, C2 being Category st ex C being Category st
( C1 is Subcategory of C & C2 is Subcategory of C ) & ex o1 being Object of C1 st o1 is Object of C2 holds
for b3 being strict Category holds
( b3 = C1 /\ C2 iff ( the Objects of b3 = the Objects of C1 /\ the Objects of C2 & the Morphisms of b3 = the Morphisms of C1 /\ the Morphisms of C2 & the Dom of b3 = the Dom of C1 | the Morphisms of C2 & the Cod of b3 = the Cod of C1 | the Morphisms of C2 & the Comp of b3 = the Comp of C1 || the Morphisms of C2 & the Id of b3 = the Id of C1 | the Objects of C2 ) );

theorem Th5: :: CAT_5:5  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for C1, C2 being Subcategory of C st the Objects of C1 meets the Objects of C2 holds
C1 /\ C2 = C2 /\ C1
proof end;

theorem Th6: :: CAT_5:6  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for C1, C2 being Subcategory of C st the Objects of C1 meets the Objects of C2 holds
( C1 /\ C2 is Subcategory of C1 & C1 /\ C2 is Subcategory of C2 )
proof end;

definition
let C, D be Category;
let F be Functor of C,D;
func Image F -> strict Subcategory of D means :Def3: :: CAT_5:def 3
( the Objects of it = rng (Obj F) & rng F c= the Morphisms of it & ( for E being Subcategory of D st the Objects of E = rng (Obj F) & rng F c= the Morphisms of E holds
it is Subcategory of E ) );
existence
ex b1 being strict Subcategory of D st
( the Objects of b1 = rng (Obj F) & rng F c= the Morphisms of b1 & ( for E being Subcategory of D st the Objects of E = rng (Obj F) & rng F c= the Morphisms of E holds
b1 is Subcategory of E ) )
proof end;
uniqueness
for b1, b2 being strict Subcategory of D st the Objects of b1 = rng (Obj F) & rng F c= the Morphisms of b1 & ( for E being Subcategory of D st the Objects of E = rng (Obj F) & rng F c= the Morphisms of E holds
b1 is Subcategory of E ) & the Objects of b2 = rng (Obj F) & rng F c= the Morphisms of b2 & ( for E being Subcategory of D st the Objects of E = rng (Obj F) & rng F c= the Morphisms of E holds
b2 is Subcategory of E ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines Image CAT_5:def 3 :
for C, D being Category
for F being Functor of C,D
for b4 being strict Subcategory of D holds
( b4 = Image F iff ( the Objects of b4 = rng (Obj F) & rng F c= the Morphisms of b4 & ( for E being Subcategory of D st the Objects of E = rng (Obj F) & rng F c= the Morphisms of E holds
b4 is Subcategory of E ) ) );

theorem Th7: :: CAT_5:7  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C, D being Category
for E being Subcategory of D
for F being Functor of C,D st rng F c= the Morphisms of E holds
F is Functor of C,E
proof end;

theorem :: CAT_5:8  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C, D being Category
for F being Functor of C,D holds F is Functor of C, Image F
proof end;

theorem Th9: :: CAT_5:9  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C, D being Category
for E being Subcategory of D
for F being Functor of C,E
for G being Functor of C,D st F = G holds
Image F = Image G
proof end;

definition
let IT be set ;
attr IT is categorial means :Def4: :: CAT_5:def 4
for x being set st x in IT holds
x is Category;
end;

:: deftheorem Def4 defines categorial CAT_5:def 4 :
for IT being set holds
( IT is categorial iff for x being set st x in IT holds
x is Category );

definition
let X be non empty set ;
redefine attr X is categorial means :Def5: :: CAT_5:def 5
for x being Element of X holds x is Category;
compatibility
( X is categorial iff for x being Element of X holds x is Category )
proof end;
end;

:: deftheorem Def5 defines categorial CAT_5:def 5 :
for X being non empty set holds
( X is categorial iff for x being Element of X holds x is Category );

registration
cluster non empty categorial set ;
existence
ex b1 being non empty set st b1 is categorial
proof end;
end;

definition
let X be non empty categorial set ;
:: original: Element
redefine mode Element of X -> Category;
coherence
for b1 being Element of X holds b1 is Category
by Def4;
end;

definition
let C be Category;
attr C is Categorial means :Def6: :: CAT_5:def 6
( the Objects of C is categorial & ( for a being Object of C
for A being Category st a = A holds
id a = [[A,A],(id A)] ) & ( for m being Morphism of C
for A, B being Category st A = dom m & B = cod m holds
ex F being Functor of A,B st m = [[A,B],F] ) & ( for m1, m2 being Morphism of C
for A, B, C being Category
for F being Functor of A,B
for G being Functor of B,C st m1 = [[A,B],F] & m2 = [[B,C],G] holds
m2 * m1 = [[A,C],(G * F)] ) );
end;

:: deftheorem Def6 defines Categorial CAT_5:def 6 :
for C being Category holds
( C is Categorial iff ( the Objects of C is categorial & ( for a being Object of C
for A being Category st a = A holds
id a = [[A,A],(id A)] ) & ( for m being Morphism of C
for A, B being Category st A = dom m & B = cod m holds
ex F being Functor of A,B st m = [[A,B],F] ) & ( for m1, m2 being Morphism of C
for A, B, C being Category
for F being Functor of A,B
for G being Functor of B,C st m1 = [[A,B],F] & m2 = [[B,C],G] holds
m2 * m1 = [[A,C],(G * F)] ) ) );

registration
cluster Categorial -> with_triple-like_morphisms CatStr ;
coherence
for b1 being Category st b1 is Categorial holds
b1 is with_triple-like_morphisms
proof end;
end;

theorem Th10: :: CAT_5:10  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C, D being Category st CatStr(# the Objects of C,the Morphisms of C,the Dom of C,the Cod of C,the Comp of C,the Id of C #) = CatStr(# the Objects of D,the Morphisms of D,the Dom of D,the Cod of D,the Comp of D,the Id of D #) & C is Categorial holds
D is Categorial
proof end;

theorem Th11: :: CAT_5:11  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category holds 1Cat C,[[C,C],(id C)] is Categorial
proof end;

registration
cluster strict with_triple-like_morphisms Categorial CatStr ;
existence
ex b1 being strict Category st b1 is Categorial
proof end;
end;

theorem Th12: :: CAT_5:12  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Categorial Category
for a being Object of C holds a is Category
proof end;

theorem Th13: :: CAT_5:13  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Categorial Category
for f being Morphism of C holds
( dom f = f `11 & cod f = f `12 )
proof end;

definition
let C be Categorial Category;
let m be Morphism of C;
:: original: `11
redefine func m `11 -> Category;
coherence
m `11 is Category
proof end;
:: original: `12
redefine func m `12 -> Category;
coherence
m `12 is Category
proof end;
end;

theorem Th14: :: CAT_5:14  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C1, C2 being Categorial Category st the Objects of C1 = the Objects of C2 & the Morphisms of C1 = the Morphisms of C2 holds
CatStr(# the Objects of C1,the Morphisms of C1,the Dom of C1,the Cod of C1,the Comp of C1,the Id of C1 #) = CatStr(# the Objects of C2,the Morphisms of C2,the Dom of C2,the Cod of C2,the Comp of C2,the Id of C2 #)
proof end;

registration
let C be Categorial Category;
cluster -> Categorial Subcategory of C;
coherence
for b1 being Subcategory of C holds b1 is Categorial
proof end;
end;

theorem Th15: :: CAT_5:15  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C, D being Categorial Category st the Morphisms of C c= the Morphisms of D holds
C is Subcategory of D
proof end;

definition
let a be set ;
assume A1: a is Category ;
func cat a -> Category equals :Def7: :: CAT_5:def 7
a;
correctness
coherence
a is Category
;
by A1;
end;

:: deftheorem Def7 defines cat CAT_5:def 7 :
for a being set st a is Category holds
cat a = a;

theorem Th16: :: CAT_5:16  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Categorial Category
for c being Object of C holds cat c = c
proof end;

definition
let C be Categorial Category;
let m be Morphism of C;
:: original: `2
redefine func m `2 -> Functor of cat (dom m), cat (cod m);
coherence
m `2 is Functor of cat (dom m), cat (cod m)
proof end;
end;

theorem Th17: :: CAT_5:17  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for X being non empty categorial set
for Y being non empty set st ( for A, B, C being Element of X
for F being Functor of A,B
for G being Functor of B,C st F in Y & G in Y holds
G * F in Y ) & ( for A being Element of X holds id A in Y ) holds
ex C being strict Categorial Category st
( the Objects of C = X & ( for A, B being Element of X
for F being Functor of A,B holds
( [[A,B],F] is Morphism of C iff F in Y ) ) )
proof end;

theorem Th18: :: CAT_5:18  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for X being non empty categorial set
for Y being non empty set
for C1, C2 being strict Categorial Category st the Objects of C1 = X & ( for A, B being Element of X
for F being Functor of A,B holds
( [[A,B],F] is Morphism of C1 iff F in Y ) ) & the Objects of C2 = X & ( for A, B being Element of X
for F being Functor of A,B holds
( [[A,B],F] is Morphism of C2 iff F in Y ) ) holds
C1 = C2
proof end;

definition
let IT be Categorial Category;
attr IT is full means :Def8: :: CAT_5:def 8
for a, b being Category st a is Object of IT & b is Object of IT holds
for F being Functor of a,b holds [[a,b],F] is Morphism of IT;
end;

:: deftheorem Def8 defines full CAT_5:def 8 :
for IT being Categorial Category holds
( IT is full iff for a, b being Category st a is Object of IT & b is Object of IT holds
for F being Functor of a,b holds [[a,b],F] is Morphism of IT );

registration
cluster strict with_triple-like_morphisms Categorial full CatStr ;
existence
ex b1 being strict Categorial Category st b1 is full
proof end;
end;

theorem :: CAT_5:19  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C1, C2 being Categorial full Category st the Objects of C1 = the Objects of C2 holds
CatStr(# the Objects of C1,the Morphisms of C1,the Dom of C1,the Cod of C1,the Comp of C1,the Id of C1 #) = CatStr(# the Objects of C2,the Morphisms of C2,the Dom of C2,the Cod of C2,the Comp of C2,the Id of C2 #)
proof end;

theorem Th20: :: CAT_5:20  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for A being non empty categorial set ex C being strict Categorial full Category st the Objects of C = A
proof end;

theorem Th21: :: CAT_5:21  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Categorial Category
for D being Categorial full Category st the Objects of C c= the Objects of D holds
C is Subcategory of D
proof end;

theorem :: CAT_5:22  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for D1, D2 being Categorial Category
for F1 being Functor of C,D1
for F2 being Functor of C,D2 st F1 = F2 holds
Image F1 = Image F2
proof end;

definition
let C be Category;
let o be Object of C;
func Hom o -> Subset of the Morphisms of C equals :: CAT_5:def 9
the Cod of C " {o};
coherence
the Cod of C " {o} is Subset of the Morphisms of C
;
func o Hom -> Subset of the Morphisms of C equals :: CAT_5:def 10
the Dom of C " {o};
coherence
the Dom of C " {o} is Subset of the Morphisms of C
;
end;

:: deftheorem defines Hom CAT_5:def 9 :
for C being Category
for o being Object of C holds Hom o = the Cod of C " {o};

:: deftheorem defines Hom CAT_5:def 10 :
for C being Category
for o being Object of C holds o Hom = the Dom of C " {o};

registration
let C be Category;
let o be Object of C;
cluster Hom o -> non empty ;
coherence
not Hom o is empty
proof end;
cluster o Hom -> non empty ;
coherence
not o Hom is empty
proof end;
end;

theorem Th23: :: CAT_5:23  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for a being Object of C
for f being Morphism of C holds
( f in Hom a iff cod f = a )
proof end;

theorem Th24: :: CAT_5:24  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for a being Object of C
for f being Morphism of C holds
( f in a Hom iff dom f = a )
proof end;

theorem :: CAT_5:25  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for a, b being Object of C holds Hom a,b = (a Hom ) /\ (Hom b)
proof end;

theorem :: CAT_5:26  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for f being Morphism of C holds
( f in (dom f) Hom & f in Hom (cod f) ) by Th23, Th24;

theorem Th27: :: CAT_5:27  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for f being Morphism of C
for g being Element of Hom (dom f) holds f * g in Hom (cod f)
proof end;

theorem Th28: :: CAT_5:28  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for f being Morphism of C
for g being Element of (cod f) Hom holds g * f in (dom f) Hom
proof end;

definition
let C be Category;
let o be Object of C;
set A = Hom o;
set B = the Morphisms of C;
defpred S1[ Element of Hom o, Element of Hom o, Element of the Morphisms of C] means ( dom $2 = cod $3 & $1 = $2 * $3 );
deffunc H1( Morphism of C, Morphism of C) -> Element of the Morphisms of C = $1 * $2;
A1: for a, b, c being Element of Hom o
for f, g being Element of the Morphisms of C st S1[a,b,f] & S1[b,c,g] holds
( H1(g,f) in the Morphisms of C & S1[a,c,H1(g,f)] )
proof end;
A3: for a being Element of Hom o ex f being Element of the Morphisms of C st
( S1[a,a,f] & ( for b being Element of Hom o
for g being Element of the Morphisms of C holds
( ( S1[a,b,g] implies H1(g,f) = g ) & ( S1[b,a,g] implies H1(f,g) = g ) ) ) )
proof end;
A4: for a, b, c, d being Element of Hom o
for f, g, h being Element of the Morphisms of C st S1[a,b,f] & S1[b,c,g] & S1[c,d,h] holds
H1(h,H1(g,f)) = H1(H1(h,g),f)
proof end;
func C -SliceCat o -> strict with_triple-like_morphisms Category means :Def11: :: CAT_5:def 11
( the Objects of it = Hom o & ( for a, b being Element of Hom o
for f being Morphism of C st dom b = cod f & a = b * f holds
[[a,b],f] is Morphism of it ) & ( for m being Morphism of it ex a, b being Element of Hom o ex f being Morphism of C st
( m = [[a,b],f] & dom b = cod f & a = b * f ) ) & ( for m1, m2 being Morphism of it
for a1, a2, a3 being Element of Hom o
for f1, f2 being Morphism of C st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],(f2 * f1)] ) );
existence
ex b1 being strict with_triple-like_morphisms Category st
( the Objects of b1 = Hom o & ( for a, b being Element of Hom o
for f being Morphism of C st dom b = cod f & a = b * f holds
[[a,b],f] is Morphism of b1 ) & ( for m being Morphism of b1 ex a, b being Element of Hom o ex f being Morphism of C st
( m = [[a,b],f] & dom b = cod f & a = b * f ) ) & ( for m1, m2 being Morphism of b1
for a1, a2, a3 being Element of Hom o
for f1, f2 being Morphism of C st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],(f2 * f1)] ) )
proof end;
uniqueness
for b1, b2 being strict with_triple-like_morphisms Category st the Objects of b1 = Hom o & ( for a, b being Element of Hom o
for f being Morphism of C st dom b = cod f & a = b * f holds
[[a,b],f] is Morphism of b1 ) & ( for m being Morphism of b1 ex a, b being Element of Hom o ex f being Morphism of C st
( m = [[a,b],f] & dom b = cod f & a = b * f ) ) & ( for m1, m2 being Morphism of b1
for a1, a2, a3 being Element of Hom o
for f1, f2 being Morphism of C st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],(f2 * f1)] ) & the Objects of b2 = Hom o & ( for a, b being Element of Hom o
for f being Morphism of C st dom b = cod f & a = b * f holds
[[a,b],f] is Morphism of b2 ) & ( for m being Morphism of b2 ex a, b being Element of Hom o ex f being Morphism of C st
( m = [[a,b],f] & dom b = cod f & a = b * f ) ) & ( for m1, m2 being Morphism of b2
for a1, a2, a3 being Element of Hom o
for f1, f2 being Morphism of C st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],(f2 * f1)] ) holds
b1 = b2
proof end;
set X = o Hom ;
defpred S2[ Element of o Hom , Element of o Hom , Element of the Morphisms of C] means ( dom $3 = cod $1 & $2 = $3 * $1 );
A5: for a, b, c being Element of o Hom
for f, g being Element of the Morphisms of C st S2[a,b,f] & S2[b,c,g] holds
( H1(g,f) in the Morphisms of C & S2[a,c,H1(g,f)] )
proof end;
A7: for a being Element of o Hom ex f being Element of the Morphisms of C st
( S2[a,a,f] & ( for b being Element of o Hom
for g being Element of the Morphisms of C holds
( ( S2[a,b,g] implies H1(g,f) = g ) & ( S2[b,a,g] implies H1(f,g) = g ) ) ) )
proof end;
A8: for a, b, c, d being Element of o Hom
for f, g, h being Element of the Morphisms of C st S2[a,b,f] & S2[b,c,g] & S2[c,d,h] holds
H1(h,H1(g,f)) = H1(H1(h,g),f)
proof end;
func o -SliceCat C -> strict with_triple-like_morphisms Category means :Def12: :: CAT_5:def 12
( the Objects of it = o Hom & ( for a, b being Element of o Hom
for f being Morphism of C st dom f = cod a & f * a = b holds
[[a,b],f] is Morphism of it ) & ( for m being Morphism of it ex a, b being Element of o Hom ex f being Morphism of C st
( m = [[a,b],f] & dom f = cod a & f * a = b ) ) & ( for m1, m2 being Morphism of it
for a1, a2, a3 being Element of o Hom
for f1, f2 being Morphism of C st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],(f2 * f1)] ) );
existence
ex b1 being strict with_triple-like_morphisms Category st
( the Objects of b1 = o Hom & ( for a, b being Element of o Hom
for f being Morphism of C st dom f = cod a & f * a = b holds
[[a,b],f] is Morphism of b1 ) & ( for m being Morphism of b1 ex a, b being Element of o Hom ex f being Morphism of C st
( m = [[a,b],f] & dom f = cod a & f * a = b ) ) & ( for m1, m2 being Morphism of b1
for a1, a2, a3 being Element of o Hom
for f1, f2 being Morphism of C st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],(f2 * f1)] ) )
proof end;
uniqueness
for b1, b2 being strict with_triple-like_morphisms Category st the Objects of b1 = o Hom & ( for a, b being Element of o Hom
for f being Morphism of C st dom f = cod a & f * a = b holds
[[a,b],f] is Morphism of b1 ) & ( for m being Morphism of b1 ex a, b being Element of o Hom ex f being Morphism of C st
( m = [[a,b],f] & dom f = cod a & f * a = b ) ) & ( for m1, m2 being Morphism of b1
for a1, a2, a3 being Element of o Hom
for f1, f2 being Morphism of C st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],(f2 * f1)] ) & the Objects of b2 = o Hom & ( for a, b being Element of o Hom
for f being Morphism of C st dom f = cod a & f * a = b holds
[[a,b],f] is Morphism of b2 ) & ( for m being Morphism of b2 ex a, b being Element of o Hom ex f being Morphism of C st
( m = [[a,b],f] & dom f = cod a & f * a = b ) ) & ( for m1, m2 being Morphism of b2
for a1, a2, a3 being Element of o Hom
for f1, f2 being Morphism of C st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],(f2 * f1)] ) holds
b1 = b2
proof end;
end;

:: deftheorem Def11 defines -SliceCat CAT_5:def 11 :
for C being Category
for o being Object of C
for b3 being strict with_triple-like_morphisms Category holds
( b3 = C -SliceCat o iff ( the Objects of b3 = Hom o & ( for a, b being Element of Hom o
for f being Morphism of C st dom b = cod f & a = b * f holds
[[a,b],f] is Morphism of b3 ) & ( for m being Morphism of b3 ex a, b being Element of Hom o ex f being Morphism of C st
( m = [[a,b],f] & dom b = cod f & a = b * f ) ) & ( for m1, m2 being Morphism of b3
for a1, a2, a3 being Element of Hom o
for f1, f2 being Morphism of C st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],(f2 * f1)] ) ) );

:: deftheorem Def12 defines -SliceCat CAT_5:def 12 :
for C being Category
for o being Object of C
for b3 being strict with_triple-like_morphisms Category holds
( b3 = o -SliceCat C iff ( the Objects of b3 = o Hom & ( for a, b being Element of o Hom
for f being Morphism of C st dom f = cod a & f * a = b holds
[[a,b],f] is Morphism of b3 ) & ( for m being Morphism of b3 ex a, b being Element of o Hom ex f being Morphism of C st
( m = [[a,b],f] & dom f = cod a & f * a = b ) ) & ( for m1, m2 being Morphism of b3
for a1, a2, a3 being Element of o Hom
for f1, f2 being Morphism of C st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],(f2 * f1)] ) ) );

definition
let C be Category;
let o be Object of C;
let m be Morphism of (C -SliceCat o);
:: original: `2
redefine func m `2 -> Morphism of C;
coherence
m `2 is Morphism of C
proof end;
:: original: `11
redefine func m `11 -> Element of Hom o;
coherence
m `11 is Element of Hom o
proof end;
:: original: `12
redefine func m `12 -> Element of Hom o;
coherence
m `12 is Element of Hom o
proof end;
end;

theorem Th29: :: CAT_5:29  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for a being Object of C
for m being Morphism of (C -SliceCat a) holds
( m = [[(m `11 ),(m `12 )],(m `2 )] & dom (m `12 ) = cod (m `2 ) & m `11 = (m `12 ) * (m `2 ) & dom m = m `11 & cod m = m `12 )
proof end;

theorem Th30: :: CAT_5:30  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for o being Object of C
for f being Element of Hom o
for a being Object of (C -SliceCat o) st a = f holds
id a = [[a,a],(id (dom f))]
proof end;

definition
let C be Category;
let o be Object of C;
let m be Morphism of (o -SliceCat C);
:: original: `2
redefine func m `2 -> Morphism of C;
coherence
m `2 is Morphism of C
proof end;
:: original: `11
redefine func m `11 -> Element of o Hom ;
coherence
m `11 is Element of o Hom
proof end;
:: original: `12
redefine func m `12 -> Element of o Hom ;
coherence
m `12 is Element of o Hom
proof end;
end;

theorem Th31: :: CAT_5:31  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for a being Object of C
for m being Morphism of (a -SliceCat C) holds
( m = [[(m `11 ),(m `12 )],(m `2 )] & dom (m `2 ) = cod (m `11 ) & (m `2 ) * (m `11 ) = m `12 & dom m = m `11 & cod m = m `12 )
proof end;

theorem Th32: :: CAT_5:32  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for o being Object of C
for f being Element of o Hom
for a being Object of (o -SliceCat C) st a = f holds
id a = [[a,a],(id (cod f))]
proof end;

definition
let C be Category;
let f be Morphism of C;
func SliceFunctor f -> Functor of C -SliceCat (dom f),C -SliceCat (cod f) means :Def13: :: CAT_5:def 13
for m being Morphism of (C -SliceCat (dom f)) holds it . m = [[(f * (m `11 )),(f * (m `12 ))],(m `2 )];
existence
ex b1 being Functor of C -SliceCat (dom f),C -SliceCat (cod f) st
for m being Morphism of (C -SliceCat (dom f)) holds b1 . m = [[(f * (m `11 )),(f * (m `12 ))],(m `2 )]
proof end;
uniqueness
for b1, b2 being Functor of C -SliceCat (dom f),C -SliceCat (cod f) st ( for m being Morphism of (C -SliceCat (dom f)) holds b1 . m = [[(f * (m `11 )),(f * (m `12 ))],(m `2 )] ) & ( for m being Morphism of (C -SliceCat (dom f)) holds b2 . m = [[(f * (m `11 )),(f * (m `12 ))],(m `2 )] ) holds
b1 = b2
proof end;
func SliceContraFunctor f -> Functor of (cod f) -SliceCat C,(dom f) -SliceCat C means :Def14: :: CAT_5:def 14
for m being Morphism of ((cod f) -SliceCat C) holds it . m = [[((m `11 ) * f),((m `12 ) * f)],(m `2 )];
existence
ex b1 being Functor of (cod f) -SliceCat C,(dom f) -SliceCat C st
for m being Morphism of ((cod f) -SliceCat C) holds b1 . m = [[((m `11 ) * f),((m `12 ) * f)],(m `2 )]
proof end;
uniqueness
for b1, b2 being Functor of (cod f) -SliceCat C,(dom f) -SliceCat C st ( for m being Morphism of ((cod f) -SliceCat C) holds b1 . m = [[((m `11 ) * f),((m `12 ) * f)],(m `2 )] ) & ( for m being Morphism of ((cod f) -SliceCat C) holds b2 . m = [[((m `11 ) * f),((m `12 ) * f)],(m `2 )] ) holds
b1 = b2
proof end;
end;

:: deftheorem Def13 defines SliceFunctor CAT_5:def 13 :
for C being Category
for f being Morphism of C
for b3 being Functor of C -SliceCat (dom f),C -SliceCat (cod f) holds
( b3 = SliceFunctor f iff for m being Morphism of (C -SliceCat (dom f)) holds b3 . m = [[(f * (m `11 )),(f * (m `12 ))],(m `2 )] );

:: deftheorem Def14 defines SliceContraFunctor CAT_5:def 14 :
for C being Category
for f being Morphism of C
for b3 being Functor of (cod f) -SliceCat C,(dom f) -SliceCat C holds
( b3 = SliceContraFunctor f iff for m being Morphism of ((cod f) -SliceCat C) holds b3 . m = [[((m `11 ) * f),((m `12 ) * f)],(m `2 )] );

theorem :: CAT_5:33  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for f, g being Morphism of C st dom g = cod f holds
SliceFunctor (g * f) = (SliceFunctor g) * (SliceFunctor f)
proof end;

theorem :: CAT_5:34  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for C being Category
for f, g being Morphism of C st dom g = cod f holds
SliceContraFunctor (g * f) = (SliceContraFunctor f) * (SliceContraFunctor g)
proof end;