begin
theorem
theorem Th2:
:: deftheorem Def1 defines Category-yielding INDEX_1:def 1 :
for IT being Function holds
( IT is Category-yielding iff for x being set st x in dom IT holds
IT . x is Category );
:: deftheorem Def2 defines Objs INDEX_1:def 2 :
for F being Category-yielding Function
for b2 being non-empty Function holds
( b2 = Objs F iff ( dom b2 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
b2 . x = the carrier of C ) ) );
:: deftheorem Def3 defines Mphs INDEX_1:def 3 :
for F being Category-yielding Function
for b2 being non-empty Function holds
( b2 = Mphs F iff ( dom b2 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
b2 . x = the carrier' of C ) ) );
theorem
begin
:: deftheorem Def4 defines ManySortedSet INDEX_1:def 4 :
for A, B being set
for b3 being set holds
( b3 is ManySortedSet of A,B iff ex f being ManySortedSet of A ex g being ManySortedSet of B st b3 = [f,g] );
:: deftheorem Def5 defines Category-yielding_on_first INDEX_1:def 5 :
for A, B being set
for IT being ManySortedSet of A,B holds
( IT is Category-yielding_on_first iff IT `1 is Category-yielding );
:: deftheorem Def6 defines Function-yielding_on_second INDEX_1:def 6 :
for A, B being set
for IT being ManySortedSet of A,B holds
( IT is Function-yielding_on_second iff IT `2 is Function-yielding );
:: deftheorem Def7 defines ManySortedFunctor INDEX_1:def 7 :
for A being non empty set
for F, G being ManySortedCategory of A
for b4 being ManySortedFunction of A holds
( b4 is ManySortedFunctor of F,G iff for a being Element of A holds b4 . a is Functor of F . a,G . a );
begin
:: deftheorem Def8 defines Indexing INDEX_1:def 8 :
for A, B being non empty set
for F, G being Function of B,A
for b5 being Category-yielding_on_first ManySortedSet of A,B holds
( b5 is Indexing of F,G iff b5 `2 is ManySortedFunctor of (b5 `1) * F,(b5 `1) * G );
theorem Th4:
theorem
Lm1:
now
let A,
B be non
empty set ;
for F, G being Function of B,A
for I being Indexing of F,G ex C being strict Categorial full Category st
( ( for a being Element of A holds (I `1) . a is Object of C ) & ( for b being Element of B holds [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of C ) )let F,
G be
Function of
B,
A;
for I being Indexing of F,G ex C being strict Categorial full Category st
( ( for a being Element of A holds (I `1) . a is Object of C ) & ( for b being Element of B holds [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of C ) )let I be
Indexing of
F,
G;
ex C being strict Categorial full Category st
( ( for a being Element of A holds (I `1) . a is Object of C ) & ( for b being Element of B holds [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of C ) )consider C being
strict Categorial full Category such that A1:
the
carrier of
C = rng (I `1)
by CAT_5:20;
take C =
C;
( ( for a being Element of A holds (I `1) . a is Object of C ) & ( for b being Element of B holds [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of C ) )A2:
dom (I `1) = A
by PARTFUN1:def 4;
hence
for
a being
Element of
A holds
(I `1) . a is
Object of
C
by A1, FUNCT_1:def 5;
for b being Element of B holds [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of Clet b be
Element of
B;
[[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of CA3:
(I `2) . b is
Functor of
(I `1) . (F . b),
(I `1) . (G . b)
by Th4;
(
(I `1) . (F . b) is
Object of
C &
(I `1) . (G . b) is
Object of
C )
by A2, A1, FUNCT_1:def 5;
hence
[[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is
Morphism of
C
by A3, CAT_5:def 8;
verum
end;
:: deftheorem Def9 defines TargetCat INDEX_1:def 9 :
for A, B being non empty set
for F, G being Function of B,A
for I being Indexing of F,G
for b6 being Categorial Category holds
( b6 is TargetCat of I iff ( ( for a being Element of A holds (I `1) . a is Object of b6 ) & ( for b being Element of B holds [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of b6 ) ) );
definition
let A,
B be non
empty set ;
let F,
G be
Function of
B,
A;
let c be
PartFunc of
[:B,B:],
B;
let i be
Function of
A,
B;
given C being
Category such that A1:
C = CatStr(#
A,
B,
F,
G,
c,
i #)
;
mode Indexing of
F,
G,
c,
i -> Indexing of
F,
G means :
Def10:
( ( for
a being
Element of
A holds
(it `2) . (i . a) = id ((it `1) . a) ) & ( for
m1,
m2 being
Element of
B st
F . m2 = G . m1 holds
(it `2) . (c . [m2,m1]) = ((it `2) . m2) * ((it `2) . m1) ) );
existence
ex b1 being Indexing of F,G st
( ( for a being Element of A holds (b1 `2) . (i . a) = id ((b1 `1) . a) ) & ( for m1, m2 being Element of B st F . m2 = G . m1 holds
(b1 `2) . (c . [m2,m1]) = ((b1 `2) . m2) * ((b1 `2) . m1) ) )
end;
:: deftheorem Def10 defines Indexing INDEX_1:def 10 :
for A, B being non empty set
for F, G being Function of B,A
for c being PartFunc of [:B,B:],B
for i being Function of A,B st ex C being Category st C = CatStr(# A,B,F,G,c,i #) holds
for b7 being Indexing of F,G holds
( b7 is Indexing of F,G,c,i iff ( ( for a being Element of A holds (b7 `2) . (i . a) = id ((b7 `1) . a) ) & ( for m1, m2 being Element of B st F . m2 = G . m1 holds
(b7 `2) . (c . [m2,m1]) = ((b7 `2) . m2) * ((b7 `2) . m1) ) ) );
theorem Th6:
theorem Th7:
theorem
theorem
theorem
definition
let C be
Category;
let I be
Indexing of
C;
let T be
TargetCat of
I;
func I -functor (
C,
T)
-> Functor of
C,
T means :
Def11:
for
f being
Morphism of
C holds
it . f = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)];
existence
ex b1 being Functor of C,T st
for f being Morphism of C holds b1 . f = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)]
uniqueness
for b1, b2 being Functor of C,T st ( for f being Morphism of C holds b1 . f = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)] ) & ( for f being Morphism of C holds b2 . f = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)] ) holds
b1 = b2
end;
:: deftheorem Def11 defines -functor INDEX_1:def 11 :
for C being Category
for I being Indexing of C
for T being TargetCat of I
for b4 being Functor of C,T holds
( b4 = I -functor (C,T) iff for f being Morphism of C holds b4 . f = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)] );
Lm2:
for C being Category
for I being Indexing of C
for T being TargetCat of I holds Obj (I -functor (C,T)) = I `1
theorem Th11:
theorem
theorem
:: deftheorem Def12 defines rng INDEX_1:def 12 :
for C being Category
for I being Indexing of C
for b3 being strict TargetCat of I holds
( b3 = rng I iff for T being TargetCat of I holds b3 = Image (I -functor (C,T)) );
theorem Th14:
:: deftheorem defines . INDEX_1:def 13 :
for C being Category
for I being Indexing of C
for m being Morphism of C holds I . m = (I `2) . m;
:: deftheorem defines . INDEX_1:def 14 :
for C being Category
for I being coIndexing of C
for m being Morphism of C holds I . m = (I `2) . m;
Lm3:
now
let C,
D be
Category;
for m being Morphism of C holds ([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . m is Functor of (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Source of C) . m,(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) . mset F = the
carrier of
C --> D;
set G = the
carrier' of
C --> (id D);
set H =
[( the carrier of C --> D),( the carrier' of C --> (id D))];
let m be
Morphism of
C;
([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . m is Functor of (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Source of C) . m,(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) . m
dom (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Source of C) = the
carrier' of
C
by PARTFUN1:def 4;
then A1:
(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Source of C) . m =
([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) . ( the Source of C . m)
by FUNCT_1:22
.=
( the carrier of C --> D) . ( the Source of C . m)
by MCART_1:7
.=
D
by FUNCOP_1:13
;
dom (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) = the
carrier' of
C
by PARTFUN1:def 4;
then A2:
(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) . m =
([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) . ( the Target of C . m)
by FUNCT_1:22
.=
( the carrier of C --> D) . ( the Target of C . m)
by MCART_1:7
.=
D
by FUNCOP_1:13
;
([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . m =
( the carrier' of C --> (id D)) . m
by MCART_1:7
.=
id D
by FUNCOP_1:13
;
hence
([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . m is
Functor of
(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Source of C) . m,
(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) . m
by A1, A2;
verum
end;
Lm4:
now
let C,
D be
Category;
for m being Morphism of C holds ([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . m is Functor of (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) . m,(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Source of C) . mset F = the
carrier of
C --> D;
set G = the
carrier' of
C --> (id D);
set H =
[( the carrier of C --> D),( the carrier' of C --> (id D))];
let m be
Morphism of
C;
([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . m is Functor of (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) . m,(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Source of C) . m
dom (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Source of C) = the
carrier' of
C
by PARTFUN1:def 4;
then A1:
(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Source of C) . m =
([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) . ( the Source of C . m)
by FUNCT_1:22
.=
( the carrier of C --> D) . ( the Source of C . m)
by MCART_1:7
.=
D
by FUNCOP_1:13
;
dom (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) = the
carrier' of
C
by PARTFUN1:def 4;
then A2:
(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) . m =
([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) . ( the Target of C . m)
by FUNCT_1:22
.=
( the carrier of C --> D) . ( the Target of C . m)
by MCART_1:7
.=
D
by FUNCOP_1:13
;
([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . m =
( the carrier' of C --> (id D)) . m
by MCART_1:7
.=
id D
by FUNCOP_1:13
;
hence
([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . m is
Functor of
(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) . m,
(([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Source of C) . m
by A1, A2;
verum
end;
theorem
begin
theorem Th16:
:: deftheorem defines -indexing_of INDEX_1:def 15 :
for C being Category
for D being Categorial Category
for F being Functor of C,D holds F -indexing_of C = [(Obj F),(pr2 F)];
theorem
theorem Th18:
theorem
theorem Th20:
theorem
begin
definition
let C,
D,
E be
Category;
let F be
Functor of
C,
D;
let I be
Indexing of
E;
assume A1:
Image F is
Subcategory of
E
;
func I * F -> Indexing of
C means :
Def16:
for
F9 being
Functor of
C,
E st
F9 = F holds
it = ((I -functor (E,(rng I))) * F9) -indexing_of C;
existence
ex b1 being Indexing of C st
for F9 being Functor of C,E st F9 = F holds
b1 = ((I -functor (E,(rng I))) * F9) -indexing_of C
uniqueness
for b1, b2 being Indexing of C st ( for F9 being Functor of C,E st F9 = F holds
b1 = ((I -functor (E,(rng I))) * F9) -indexing_of C ) & ( for F9 being Functor of C,E st F9 = F holds
b2 = ((I -functor (E,(rng I))) * F9) -indexing_of C ) holds
b1 = b2
end;
:: deftheorem Def16 defines * INDEX_1:def 16 :
for C, D, E being Category
for F being Functor of C,D
for I being Indexing of E st Image F is Subcategory of E holds
for b6 being Indexing of C holds
( b6 = I * F iff for F9 being Functor of C,E st F9 = F holds
b6 = ((I -functor (E,(rng I))) * F9) -indexing_of C );
theorem Th22:
theorem Th23:
theorem Th24:
theorem
theorem Th26:
definition
let C be
Category;
let I be
Indexing of
C;
let D be
Categorial Category;
assume A1:
D is
TargetCat of
I
;
let E be
Categorial Category;
let F be
Functor of
D,
E;
func F * I -> Indexing of
C means :
Def17:
for
T being
TargetCat of
I for
G being
Functor of
T,
E st
T = D &
G = F holds
it = (G * (I -functor (C,T))) -indexing_of C;
existence
ex b1 being Indexing of C st
for T being TargetCat of I
for G being Functor of T,E st T = D & G = F holds
b1 = (G * (I -functor (C,T))) -indexing_of C
uniqueness
for b1, b2 being Indexing of C st ( for T being TargetCat of I
for G being Functor of T,E st T = D & G = F holds
b1 = (G * (I -functor (C,T))) -indexing_of C ) & ( for T being TargetCat of I
for G being Functor of T,E st T = D & G = F holds
b2 = (G * (I -functor (C,T))) -indexing_of C ) holds
b1 = b2
end;
:: deftheorem Def17 defines * INDEX_1:def 17 :
for C being Category
for I being Indexing of C
for D being Categorial Category st D is TargetCat of I holds
for E being Categorial Category
for F being Functor of D,E
for b6 being Indexing of C holds
( b6 = F * I iff for T being TargetCat of I
for G being Functor of T,E st T = D & G = F holds
b6 = (G * (I -functor (C,T))) -indexing_of C );
theorem Th27:
theorem Th28:
theorem Th29:
theorem
theorem
:: deftheorem defines * INDEX_1:def 18 :
for C, D being Category
for I1 being Indexing of C
for I2 being Indexing of D holds I2 * I1 = I2 * (I1 -functor (C,(rng I1)));
theorem Th32:
theorem
theorem Th34:
theorem
theorem
theorem Th37:
theorem