:: INDEX_1 semantic presentation
begin
registration
let A be non empty set ;
cluster non empty Relation-like V9() A -defined Function-like total for set ;
existence
not for b1 being ManySortedSet of A holds b1 is V9()
proof
take the V8() ManySortedSet of A ; ::_thesis: the V8() ManySortedSet of A is V9()
take the Element of A ; :: according to PBOOLE:def_12 ::_thesis: ( the Element of A in A & not the V8() ManySortedSet of A . the Element of A is empty )
thus ( the Element of A in A & not the V8() ManySortedSet of A . the Element of A is empty ) ; ::_thesis: verum
end;
end;
definition
let C be Categorial Category;
let f be Morphism of C;
:: original: `2
redefine funcf `2 -> Functor of f `11 ,f `12 ;
coherence
f `2 is Functor of f `11 ,f `12
proof
A1: dom f = f `11 by CAT_5:2;
( f `11 = cat (f `11) & f `12 = cat (f `12) ) by CAT_5:def_7;
hence f `2 is Functor of f `11 ,f `12 by A1, CAT_5:2; ::_thesis: verum
end;
end;
theorem :: INDEX_1:1
for C being Categorial Category
for f, g being Morphism of C st dom g = cod f holds
g (*) f = [[(dom f),(cod g)],((g `2) * (f `2))]
proof
let C be Categorial Category; ::_thesis: for f, g being Morphism of C st dom g = cod f holds
g (*) f = [[(dom f),(cod g)],((g `2) * (f `2))]
let f, g be Morphism of C; ::_thesis: ( dom g = cod f implies g (*) f = [[(dom f),(cod g)],((g `2) * (f `2))] )
A1: g `11 = dom g by CAT_5:13;
A2: f `11 = dom f by CAT_5:13;
assume A3: dom g = cod f ; ::_thesis: g (*) f = [[(dom f),(cod g)],((g `2) * (f `2))]
then consider ff being Functor of f `11 ,g `11 such that
A4: f = [[(dom f),(cod f)],ff] by A1, A2, CAT_5:def_6;
A5: g `12 = cod g by CAT_5:13;
then consider gg being Functor of g `11 ,g `12 such that
A6: g = [[(dom g),(cod g)],gg] by A1, CAT_5:def_6;
thus g (*) f = [[(dom f),(cod g)],(gg * ff)] by A3, A1, A5, A2, A6, A4, CAT_5:def_6
.= [[(dom f),(cod g)],(gg * (f `2))] by A4, MCART_1:7
.= [[(dom f),(cod g)],((g `2) * (f `2))] by A6, MCART_1:7 ; ::_thesis: verum
end;
theorem Th2: :: INDEX_1:2
for C being Category
for D, E being Categorial Category
for F being Functor of C,D
for G being Functor of C,E st F = G holds
Obj F = Obj G
proof
let C be Category; ::_thesis: for D, E being Categorial Category
for F being Functor of C,D
for G being Functor of C,E st F = G holds
Obj F = Obj G
let D, E be Categorial Category; ::_thesis: for F being Functor of C,D
for G being Functor of C,E st F = G holds
Obj F = Obj G
let F be Functor of C,D; ::_thesis: for G being Functor of C,E st F = G holds
Obj F = Obj G
let G be Functor of C,E; ::_thesis: ( F = G implies Obj F = Obj G )
assume A1: F = G ; ::_thesis: Obj F = Obj G
A2: now__::_thesis:_for_x_being_set_st_x_in_the_carrier_of_C_holds_
(Obj_F)_._x_=_(Obj_G)_._x
let x be set ; ::_thesis: ( x in the carrier of C implies (Obj F) . x = (Obj G) . x )
assume x in the carrier of C ; ::_thesis: (Obj F) . x = (Obj G) . x
then reconsider a = x as Object of C ;
A3: a = dom (id a) ;
hence (Obj F) . x = dom (F . (id a)) by CAT_1:69
.= (F . (id a)) `11 by CAT_5:13
.= dom (G . (id a)) by A1, CAT_5:13
.= (Obj G) . x by A3, CAT_1:69 ;
::_thesis: verum
end;
( dom (Obj F) = the carrier of C & dom (Obj G) = the carrier of C ) by FUNCT_2:def_1;
hence Obj F = Obj G by A2, FUNCT_1:2; ::_thesis: verum
end;
definition
let IT be Function;
attrIT is Category-yielding means :Def1: :: INDEX_1:def 1
for x being set st x in dom IT holds
IT . x is Category;
end;
:: 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 );
registration
cluster Relation-like Function-like Category-yielding for set ;
existence
ex b1 being Function st b1 is Category-yielding
proof
take f = {} --> (1Cat ({},1)); ::_thesis: f is Category-yielding
let x be set ; :: according to INDEX_1:def_1 ::_thesis: ( x in dom f implies f . x is Category )
assume x in dom f ; ::_thesis: f . x is Category
hence f . x is Category ; ::_thesis: verum
end;
end;
registration
let X be set ;
cluster Relation-like X -defined Function-like total Category-yielding for set ;
existence
ex b1 being ManySortedSet of X st b1 is Category-yielding
proof
take f = X --> (1Cat ({},1)); ::_thesis: f is Category-yielding
let x be set ; :: according to INDEX_1:def_1 ::_thesis: ( x in dom f implies f . x is Category )
assume x in dom f ; ::_thesis: f . x is Category
then x in X by FUNCOP_1:13;
hence f . x is Category by FUNCOP_1:7; ::_thesis: verum
end;
end;
definition
let A be set ;
mode ManySortedCategory of A is Category-yielding ManySortedSet of A;
end;
definition
let C be Category;
mode ManySortedCategory of C is ManySortedCategory of the carrier of C;
end;
registration
let X be set ;
let x be Category;
clusterX --> x -> Category-yielding ;
coherence
X --> x is Category-yielding
proof
let a be set ; :: according to INDEX_1:def_1 ::_thesis: ( a in dom (X --> x) implies (X --> x) . a is Category )
assume a in dom (X --> x) ; ::_thesis: (X --> x) . a is Category
then a in X by FUNCOP_1:13;
hence (X --> x) . a is Category by FUNCOP_1:7; ::_thesis: verum
end;
end;
registration
let X be non empty set ;
cluster Relation-like X -defined Function-like total -> non empty for set ;
coherence
for b1 being ManySortedSet of X holds not b1 is empty ;
end;
registration
let f be Category-yielding Function;
cluster proj2 f -> categorial ;
coherence
rng f is categorial
proof
let x be set ; :: according to CAT_5:def_4 ::_thesis: ( not x in rng f or x is CatStr )
assume x in rng f ; ::_thesis: x is CatStr
then ex y being set st
( y in dom f & x = f . y ) by FUNCT_1:def_3;
hence x is CatStr by Def1; ::_thesis: verum
end;
end;
definition
let X be non empty set ;
let f be ManySortedCategory of X;
let x be Element of X;
:: original: .
redefine funcf . x -> Category;
coherence
f . x is Category
proof
dom f = X by PARTFUN1:def_2;
hence f . x is Category by Def1; ::_thesis: verum
end;
end;
registration
let f be Function;
let g be Category-yielding Function;
clusterf * g -> Category-yielding ;
coherence
g * f is Category-yielding
proof
let x be set ; :: according to INDEX_1:def_1 ::_thesis: ( x in dom (g * f) implies (g * f) . x is Category )
assume x in dom (g * f) ; ::_thesis: (g * f) . x is Category
then ( (g * f) . x = g . (f . x) & f . x in dom g ) by FUNCT_1:11, FUNCT_1:12;
hence (g * f) . x is Category by Def1; ::_thesis: verum
end;
end;
definition
let F be Category-yielding Function;
func Objs F -> non-empty Function means :Def2: :: INDEX_1:def 2
( dom it = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
it . x = the carrier of C ) );
existence
ex b1 being non-empty Function st
( dom b1 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
b1 . x = the carrier of C ) )
proof
defpred S1[ set , set ] means for C being Category st C = F . $1 holds
$2 = the carrier of C;
A1: now__::_thesis:_for_x_being_set_st_x_in_dom_F_holds_
ex_y_being_set_st_S1[x,y]
let x be set ; ::_thesis: ( x in dom F implies ex y being set st S1[x,y] )
assume x in dom F ; ::_thesis: ex y being set st S1[x,y]
then reconsider C = F . x as Category by Def1;
reconsider y = the carrier of C as set ;
take y = y; ::_thesis: S1[x,y]
thus S1[x,y] ; ::_thesis: verum
end;
consider f being Function such that
A2: ( dom f = dom F & ( for x being set st x in dom F holds
S1[x,f . x] ) ) from CLASSES1:sch_1(A1);
f is non-empty
proof
let x be set ; :: according to FUNCT_1:def_9 ::_thesis: ( not x in proj1 f or not f . x is empty )
assume A3: x in dom f ; ::_thesis: not f . x is empty
then reconsider C = F . x as Category by A2, Def1;
f . x = the carrier of C by A2, A3;
hence not f . x is empty ; ::_thesis: verum
end;
hence ex b1 being non-empty Function st
( dom b1 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
b1 . x = the carrier of C ) ) by A2; ::_thesis: verum
end;
uniqueness
for b1, b2 being non-empty Function st dom b1 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
b1 . x = the carrier of C ) & 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 ) holds
b1 = b2
proof
let f1, f2 be non-empty Function; ::_thesis: ( dom f1 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
f1 . x = the carrier of C ) & dom f2 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
f2 . x = the carrier of C ) implies f1 = f2 )
assume that
A4: dom f1 = dom F and
A5: for x being set st x in dom F holds
for C being Category st C = F . x holds
f1 . x = the carrier of C and
A6: dom f2 = dom F and
A7: for x being set st x in dom F holds
for C being Category st C = F . x holds
f2 . x = the carrier of C ; ::_thesis: f1 = f2
now__::_thesis:_for_x_being_set_st_x_in_dom_F_holds_
f1_._x_=_f2_._x
let x be set ; ::_thesis: ( x in dom F implies f1 . x = f2 . x )
assume A8: x in dom F ; ::_thesis: f1 . x = f2 . x
then reconsider C = F . x as Category by Def1;
thus f1 . x = the carrier of C by A5, A8
.= f2 . x by A7, A8 ; ::_thesis: verum
end;
hence f1 = f2 by A4, A6, FUNCT_1:2; ::_thesis: verum
end;
func Mphs F -> non-empty Function means :Def3: :: INDEX_1:def 3
( dom it = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
it . x = the carrier' of C ) );
existence
ex b1 being non-empty Function st
( dom b1 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
b1 . x = the carrier' of C ) )
proof
defpred S1[ set , set ] means for C being Category st C = F . $1 holds
$2 = the carrier' of C;
A9: now__::_thesis:_for_x_being_set_st_x_in_dom_F_holds_
ex_y_being_set_st_S1[x,y]
let x be set ; ::_thesis: ( x in dom F implies ex y being set st S1[x,y] )
assume x in dom F ; ::_thesis: ex y being set st S1[x,y]
then reconsider C = F . x as Category by Def1;
reconsider y = the carrier' of C as set ;
take y = y; ::_thesis: S1[x,y]
thus S1[x,y] ; ::_thesis: verum
end;
consider f being Function such that
A10: ( dom f = dom F & ( for x being set st x in dom F holds
S1[x,f . x] ) ) from CLASSES1:sch_1(A9);
f is non-empty
proof
let x be set ; :: according to FUNCT_1:def_9 ::_thesis: ( not x in proj1 f or not f . x is empty )
assume A11: x in dom f ; ::_thesis: not f . x is empty
then reconsider C = F . x as Category by A10, Def1;
f . x = the carrier' of C by A10, A11;
hence not f . x is empty ; ::_thesis: verum
end;
hence ex b1 being non-empty Function st
( dom b1 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
b1 . x = the carrier' of C ) ) by A10; ::_thesis: verum
end;
uniqueness
for b1, b2 being non-empty Function st dom b1 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
b1 . x = the carrier' of C ) & 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 ) holds
b1 = b2
proof
let f1, f2 be non-empty Function; ::_thesis: ( dom f1 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
f1 . x = the carrier' of C ) & dom f2 = dom F & ( for x being set st x in dom F holds
for C being Category st C = F . x holds
f2 . x = the carrier' of C ) implies f1 = f2 )
assume that
A12: dom f1 = dom F and
A13: for x being set st x in dom F holds
for C being Category st C = F . x holds
f1 . x = the carrier' of C and
A14: dom f2 = dom F and
A15: for x being set st x in dom F holds
for C being Category st C = F . x holds
f2 . x = the carrier' of C ; ::_thesis: f1 = f2
now__::_thesis:_for_x_being_set_st_x_in_dom_F_holds_
f1_._x_=_f2_._x
let x be set ; ::_thesis: ( x in dom F implies f1 . x = f2 . x )
assume A16: x in dom F ; ::_thesis: f1 . x = f2 . x
then reconsider C = F . x as Category by Def1;
thus f1 . x = the carrier' of C by A13, A16
.= f2 . x by A15, A16 ; ::_thesis: verum
end;
hence f1 = f2 by A12, A14, FUNCT_1:2; ::_thesis: verum
end;
end;
:: 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 ) ) );
registration
let A be non empty set ;
let F be ManySortedCategory of A;
cluster Objs F -> non-empty A -defined ;
coherence
Objs F is A -defined
proof
dom (Objs F) = dom F by Def2
.= A by PARTFUN1:def_2 ;
hence Objs F is A -defined by RELAT_1:def_18; ::_thesis: verum
end;
cluster Mphs F -> non-empty A -defined ;
coherence
Mphs F is A -defined
proof
dom (Mphs F) = dom F by Def3
.= A by PARTFUN1:def_2 ;
hence Mphs F is A -defined by RELAT_1:def_18; ::_thesis: verum
end;
end;
registration
let A be non empty set ;
let F be ManySortedCategory of A;
cluster Objs F -> non-empty total ;
coherence
Objs F is total
proof
dom (Objs F) = dom F by Def2
.= A by PARTFUN1:def_2 ;
hence Objs F is total by PARTFUN1:def_2; ::_thesis: verum
end;
cluster Mphs F -> non-empty total ;
coherence
Mphs F is total
proof
dom (Mphs F) = dom F by Def3
.= A by PARTFUN1:def_2 ;
hence Mphs F is total by PARTFUN1:def_2; ::_thesis: verum
end;
end;
theorem :: INDEX_1:3
for X being set
for C being Category holds
( Objs (X --> C) = X --> the carrier of C & Mphs (X --> C) = X --> the carrier' of C )
proof
let X be set ; ::_thesis: for C being Category holds
( Objs (X --> C) = X --> the carrier of C & Mphs (X --> C) = X --> the carrier' of C )
let C be Category; ::_thesis: ( Objs (X --> C) = X --> the carrier of C & Mphs (X --> C) = X --> the carrier' of C )
A1: dom (X --> C) = X by FUNCOP_1:13;
A2: dom (Objs (X --> C)) = dom (X --> C) by Def2;
now__::_thesis:_for_a_being_set_st_a_in_dom_(Objs_(X_-->_C))_holds_
(Objs_(X_-->_C))_._a_=_the_carrier_of_C
let a be set ; ::_thesis: ( a in dom (Objs (X --> C)) implies (Objs (X --> C)) . a = the carrier of C )
assume A3: a in dom (Objs (X --> C)) ; ::_thesis: (Objs (X --> C)) . a = the carrier of C
then (X --> C) . a = C by A2, A1, FUNCOP_1:7;
hence (Objs (X --> C)) . a = the carrier of C by A2, A3, Def2; ::_thesis: verum
end;
hence Objs (X --> C) = X --> the carrier of C by A2, A1, FUNCOP_1:11; ::_thesis: Mphs (X --> C) = X --> the carrier' of C
A4: dom (Mphs (X --> C)) = dom (X --> C) by Def3;
now__::_thesis:_for_a_being_set_st_a_in_dom_(Mphs_(X_-->_C))_holds_
(Mphs_(X_-->_C))_._a_=_the_carrier'_of_C
let a be set ; ::_thesis: ( a in dom (Mphs (X --> C)) implies (Mphs (X --> C)) . a = the carrier' of C )
assume A5: a in dom (Mphs (X --> C)) ; ::_thesis: (Mphs (X --> C)) . a = the carrier' of C
then (X --> C) . a = C by A4, A1, FUNCOP_1:7;
hence (Mphs (X --> C)) . a = the carrier' of C by A4, A5, Def3; ::_thesis: verum
end;
hence Mphs (X --> C) = X --> the carrier' of C by A4, A1, FUNCOP_1:11; ::_thesis: verum
end;
begin
definition
let A, B be set ;
mode ManySortedSet of A,B -> set means :Def4: :: INDEX_1:def 4
ex f being ManySortedSet of A ex g being ManySortedSet of B st it = [f,g];
existence
ex b1 being set ex f being ManySortedSet of A ex g being ManySortedSet of B st b1 = [f,g]
proof
set f = the ManySortedSet of A;
set g = the ManySortedSet of B;
take [ the ManySortedSet of A, the ManySortedSet of B] ; ::_thesis: ex f being ManySortedSet of A ex g being ManySortedSet of B st [ the ManySortedSet of A, the ManySortedSet of B] = [f,g]
take the ManySortedSet of A ; ::_thesis: ex g being ManySortedSet of B st [ the ManySortedSet of A, the ManySortedSet of B] = [ the ManySortedSet of A,g]
take the ManySortedSet of B ; ::_thesis: [ the ManySortedSet of A, the ManySortedSet of B] = [ the ManySortedSet of A, the ManySortedSet of B]
thus [ the ManySortedSet of A, the ManySortedSet of B] = [ the ManySortedSet of A, the ManySortedSet of B] ; ::_thesis: verum
end;
end;
:: 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] );
definition
let A, B be set ;
let f be ManySortedSet of A;
let g be ManySortedSet of B;
:: original: [
redefine func[f,g] -> ManySortedSet of A,B;
coherence
[f,g] is ManySortedSet of A,B
proof
take f ; :: according to INDEX_1:def_4 ::_thesis: ex g being ManySortedSet of B st [f,g] = [f,g]
take g ; ::_thesis: [f,g] = [f,g]
thus [f,g] = [f,g] ; ::_thesis: verum
end;
end;
registration
let A, B be set ;
let X be ManySortedSet of A,B;
clusterX `1 -> Relation-like Function-like ;
coherence
( X `1 is Function-like & X `1 is Relation-like )
proof
ex f being ManySortedSet of A ex g being ManySortedSet of B st X = [f,g] by Def4;
hence ( X `1 is Function-like & X `1 is Relation-like ) by MCART_1:7; ::_thesis: verum
end;
clusterX `2 -> Relation-like Function-like ;
coherence
( X `2 is Function-like & X `2 is Relation-like )
proof
ex f being ManySortedSet of A ex g being ManySortedSet of B st X = [f,g] by Def4;
hence ( X `2 is Function-like & X `2 is Relation-like ) by MCART_1:7; ::_thesis: verum
end;
end;
registration
let A, B be set ;
let X be ManySortedSet of A,B;
clusterX `1 -> A -defined ;
coherence
X `1 is A -defined
proof
ex f being ManySortedSet of A ex g being ManySortedSet of B st X = [f,g] by Def4;
hence X `1 is A -defined by MCART_1:7; ::_thesis: verum
end;
clusterX `2 -> B -defined ;
coherence
X `2 is B -defined
proof
ex f being ManySortedSet of A ex g being ManySortedSet of B st X = [f,g] by Def4;
hence X `2 is B -defined by MCART_1:7; ::_thesis: verum
end;
end;
registration
let A, B be set ;
let X be ManySortedSet of A,B;
clusterX `1 -> A -defined total for A -defined Function;
coherence
for b1 being A -defined Function st b1 = X `1 holds
b1 is total
proof
ex f being ManySortedSet of A ex g being ManySortedSet of B st X = [f,g] by Def4;
hence for b1 being A -defined Function st b1 = X `1 holds
b1 is total by MCART_1:7; ::_thesis: verum
end;
clusterX `2 -> B -defined total for B -defined Function;
coherence
for b1 being B -defined Function st b1 = X `2 holds
b1 is total
proof
ex f being ManySortedSet of A ex g being ManySortedSet of B st X = [f,g] by Def4;
hence for b1 being B -defined Function st b1 = X `2 holds
b1 is total by MCART_1:7; ::_thesis: verum
end;
end;
definition
let A, B be set ;
let IT be ManySortedSet of A,B;
attrIT is Category-yielding_on_first means :Def5: :: INDEX_1:def 5
IT `1 is Category-yielding ;
attrIT is Function-yielding_on_second means :Def6: :: INDEX_1:def 6
IT `2 is Function-yielding ;
end;
:: 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 );
registration
let A, B be set ;
cluster Category-yielding_on_first Function-yielding_on_second for ManySortedSet of A,B;
existence
ex b1 being ManySortedSet of A,B st
( b1 is Category-yielding_on_first & b1 is Function-yielding_on_second )
proof
set g = the ManySortedFunction of B;
set f = the ManySortedCategory of A;
reconsider X = [ the ManySortedCategory of A, the ManySortedFunction of B] as ManySortedSet of A,B ;
take X ; ::_thesis: ( X is Category-yielding_on_first & X is Function-yielding_on_second )
thus ( X `1 is Category-yielding & X `2 is Function-yielding ) by MCART_1:7; :: according to INDEX_1:def_5,INDEX_1:def_6 ::_thesis: verum
end;
end;
registration
let A, B be set ;
let X be Category-yielding_on_first ManySortedSet of A,B;
clusterX `1 -> Category-yielding ;
coherence
X `1 is Category-yielding by Def5;
end;
registration
let A, B be set ;
let X be Function-yielding_on_second ManySortedSet of A,B;
clusterX `2 -> Function-yielding ;
coherence
X `2 is Function-yielding by Def6;
end;
registration
let f be Function-yielding Function;
cluster proj2 f -> functional ;
coherence
rng f is functional
proof
let x be set ; :: according to FUNCT_1:def_13 ::_thesis: ( not x in rng f or x is set )
assume x in rng f ; ::_thesis: x is set
then ex y being set st
( y in dom f & x = f . y ) by FUNCT_1:def_3;
hence x is set ; ::_thesis: verum
end;
end;
definition
let A, B be set ;
let f be ManySortedCategory of A;
let g be ManySortedFunction of B;
:: original: [
redefine func[f,g] -> Category-yielding_on_first Function-yielding_on_second ManySortedSet of A,B;
coherence
[f,g] is Category-yielding_on_first Function-yielding_on_second ManySortedSet of A,B
proof
( [f,g] `1 = f & [f,g] `2 = g ) ;
hence [f,g] is Category-yielding_on_first Function-yielding_on_second ManySortedSet of A,B by Def5, Def6; ::_thesis: verum
end;
end;
definition
let A be non empty set ;
let F, G be ManySortedCategory of A;
mode ManySortedFunctor of F,G -> ManySortedFunction of A means :Def7: :: INDEX_1:def 7
for a being Element of A holds it . a is Functor of F . a,G . a;
existence
ex b1 being ManySortedFunction of A st
for a being Element of A holds b1 . a is Functor of F . a,G . a
proof
defpred S1[ set , set ] means ex a9 being Element of A ex t being Functor of F . a9,G . a9 st
( $1 = a9 & $2 = t );
A1: now__::_thesis:_for_a_being_set_st_a_in_A_holds_
ex_f9_being_set_st_S1[a,f9]
let a be set ; ::_thesis: ( a in A implies ex f9 being set st S1[a,f9] )
assume a in A ; ::_thesis: ex f9 being set st S1[a,f9]
then reconsider a9 = a as Element of A ;
set f = the Functor of F . a9,G . a9;
reconsider f9 = the Functor of F . a9,G . a9 as set ;
take f9 = f9; ::_thesis: S1[a,f9]
thus S1[a,f9] ; ::_thesis: verum
end;
consider f being Function such that
A2: ( dom f = A & ( for a being set st a in A holds
S1[a,f . a] ) ) from CLASSES1:sch_1(A1);
f is Function-yielding
proof
let a be set ; :: according to FUNCOP_1:def_6 ::_thesis: ( not a in proj1 f or f . a is set )
assume a in dom f ; ::_thesis: f . a is set
then ex a9 being Element of A ex t being Functor of F . a9,G . a9 st
( a = a9 & f . a = t ) by A2;
hence f . a is set ; ::_thesis: verum
end;
then reconsider f = f as ManySortedFunction of A by A2, PARTFUN1:def_2, RELAT_1:def_18;
take f ; ::_thesis: for a being Element of A holds f . a is Functor of F . a,G . a
let a be Element of A; ::_thesis: f . a is Functor of F . a,G . a
ex a9 being Element of A ex t being Functor of F . a9,G . a9 st
( a = a9 & f . a = t ) by A2;
hence f . a is Functor of F . a,G . a ; ::_thesis: verum
end;
end;
:: 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 );
scheme :: INDEX_1:sch 1
LambdaMSFr{ F1() -> non empty set , F2() -> ManySortedCategory of F1(), F3() -> ManySortedCategory of F1(), F4( set ) -> set } :
ex F being ManySortedFunctor of F2(),F3() st
for a being Element of F1() holds F . a = F4(a)
provided
A1: for a being Element of F1() holds F4(a) is Functor of F2() . a,F3() . a
proof
consider f being ManySortedSet of F1() such that
A2: for a being set st a in F1() holds
f . a = F4(a) from PBOOLE:sch_4();
f is Function-yielding
proof
let a be set ; :: according to FUNCOP_1:def_6 ::_thesis: ( not a in proj1 f or f . a is set )
assume a in dom f ; ::_thesis: f . a is set
then reconsider a = a as Element of F1() by PARTFUN1:def_2;
f . a = F4(a) by A2;
hence f . a is set by A1; ::_thesis: verum
end;
then reconsider f = f as ManySortedFunction of F1() ;
f is ManySortedFunctor of F2(),F3()
proof
let a be Element of F1(); :: according to INDEX_1:def_7 ::_thesis: f . a is Functor of F2() . a,F3() . a
f . a = F4(a) by A2;
hence f . a is Functor of F2() . a,F3() . a by A1; ::_thesis: verum
end;
then reconsider f = f as ManySortedFunctor of F2(),F3() ;
take f ; ::_thesis: for a being Element of F1() holds f . a = F4(a)
thus for a being Element of F1() holds f . a = F4(a) by A2; ::_thesis: verum
end;
definition
let A be non empty set ;
let F, G be ManySortedCategory of A;
let f be ManySortedFunctor of F,G;
let a be Element of A;
:: original: .
redefine funcf . a -> Functor of F . a,G . a;
coherence
f . a is Functor of F . a,G . a by Def7;
end;
begin
definition
let A, B be non empty set ;
let F, G be Function of B,A;
mode Indexing of F,G -> Category-yielding_on_first ManySortedSet of A,B means :Def8: :: INDEX_1:def 8
it `2 is ManySortedFunctor of (it `1) * F,(it `1) * G;
existence
ex b1 being Category-yielding_on_first ManySortedSet of A,B st b1 `2 is ManySortedFunctor of (b1 `1) * F,(b1 `1) * G
proof
set g = the ManySortedCategory of A;
set f = the ManySortedFunctor of the ManySortedCategory of A * F, the ManySortedCategory of A * G;
take I = [ the ManySortedCategory of A, the ManySortedFunctor of the ManySortedCategory of A * F, the ManySortedCategory of A * G]; ::_thesis: I `2 is ManySortedFunctor of (I `1) * F,(I `1) * G
I `1 = the ManySortedCategory of A by MCART_1:7;
hence I `2 is ManySortedFunctor of (I `1) * F,(I `1) * G by MCART_1:7; ::_thesis: verum
end;
end;
:: 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: :: INDEX_1:4
for A, B being non empty set
for F, G being Function of B,A
for I being Indexing of F,G
for m being Element of B holds (I `2) . m is Functor of (I `1) . (F . m),(I `1) . (G . m)
proof
let A, B be non empty set ; ::_thesis: for F, G being Function of B,A
for I being Indexing of F,G
for m being Element of B holds (I `2) . m is Functor of (I `1) . (F . m),(I `1) . (G . m)
let F, G be Function of B,A; ::_thesis: for I being Indexing of F,G
for m being Element of B holds (I `2) . m is Functor of (I `1) . (F . m),(I `1) . (G . m)
let I be Indexing of F,G; ::_thesis: for m being Element of B holds (I `2) . m is Functor of (I `1) . (F . m),(I `1) . (G . m)
reconsider H = I `2 as ManySortedFunctor of (I `1) * F,(I `1) * G by Def8;
let m be Element of B; ::_thesis: (I `2) . m is Functor of (I `1) . (F . m),(I `1) . (G . m)
dom ((I `1) * F) = B by PARTFUN1:def_2;
then A1: ((I `1) * F) . m = (I `1) . (F . m) by FUNCT_1:12;
( H . m is Functor of ((I `1) * F) . m,((I `1) * G) . m & dom ((I `1) * G) = B ) by PARTFUN1:def_2;
hence (I `2) . m is Functor of (I `1) . (F . m),(I `1) . (G . m) by A1, FUNCT_1:12; ::_thesis: verum
end;
theorem :: INDEX_1:5
for C being Category
for I being Indexing of the Source of C, the Target of C
for m being Morphism of C holds (I `2) . m is Functor of (I `1) . (dom m),(I `1) . (cod m) by Th4;
definition
let A, B be non empty set ;
let F, G be Function of B,A;
let I be Indexing of F,G;
:: original: `2
redefine funcI `2 -> ManySortedFunctor of (I `1) * F,(I `1) * G;
coherence
I `2 is ManySortedFunctor of (I `1) * F,(I `1) * G by Def8;
end;
Lm1: now__::_thesis:_for_A,_B_being_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 A, B be non empty set ; ::_thesis: 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; ::_thesis: 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; ::_thesis: 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; ::_thesis: ( ( 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_2;
hence for a being Element of A holds (I `1) . a is Object of C by A1, FUNCT_1:def_3; ::_thesis: for b being Element of B holds [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of C
let b be Element of B; ::_thesis: [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of C
A3: (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_3;
hence [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of C by A3, CAT_5:def_8; ::_thesis: verum
end;
definition
let A, B be non empty set ;
let F, G be Function of B,A;
let I be Indexing of F,G;
mode TargetCat of I -> Categorial Category means :Def9: :: INDEX_1:def 9
( ( for a being Element of A holds (I `1) . a is Object of it ) & ( for b being Element of B holds [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of it ) );
existence
ex b1 being Categorial Category st
( ( for a being Element of A holds (I `1) . a is Object of b1 ) & ( for b being Element of B holds [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of b1 ) )
proof
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 ) ) by Lm1;
hence ex b1 being Categorial Category st
( ( for a being Element of A holds (I `1) . a is Object of b1 ) & ( for b being Element of B holds [[((I `1) . (F . b)),((I `1) . (G . b))],((I `2) . b)] is Morphism of b1 ) ) ; ::_thesis: verum
end;
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 ) ) );
registration
let A, B be non empty set ;
let F, G be Function of B,A;
let I be Indexing of F,G;
cluster non empty non void V52() strict Category-like V65() V66() V67() with_identities with_triple-like_morphisms Categorial full for TargetCat of I;
existence
ex b1 being TargetCat of I st
( b1 is full & b1 is strict )
proof
consider C being strict Categorial full Category such that
A1: ( ( 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 ) ) by Lm1;
C is TargetCat of I by A1, Def9;
hence ex b1 being TargetCat of I st
( b1 is full & b1 is strict ) ; ::_thesis: verum
end;
end;
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 #) ;
mode Indexing of F,G,c,i -> Indexing of F,G means :Def10: :: INDEX_1:def 10
( ( 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) ) )
proof
set I2 = B --> (id C);
set I1 = A --> C;
A2: [(A --> C),(B --> (id C))] `1 = A --> C ;
A3: [(A --> C),(B --> (id C))] `2 = B --> (id C) ;
B --> (id C) is ManySortedFunctor of (A --> C) * F,(A --> C) * G
proof
let a be Element of B; :: according to INDEX_1:def_7 ::_thesis: (B --> (id C)) . a is Functor of ((A --> C) * F) . a,((A --> C) * G) . a
( (A --> C) . (F . a) = C & dom ((A --> C) * F) = B ) by FUNCOP_1:7, PARTFUN1:def_2;
then A4: ( (B --> (id C)) . a = id C & ((A --> C) * F) . a = C ) by FUNCOP_1:7, FUNCT_1:12;
( (A --> C) . (G . a) = C & dom ((A --> C) * G) = B ) by FUNCOP_1:7, PARTFUN1:def_2;
hence (B --> (id C)) . a is Functor of ((A --> C) * F) . a,((A --> C) * G) . a by A4, FUNCT_1:12; ::_thesis: verum
end;
then reconsider I = [(A --> C),(B --> (id C))] as Indexing of F,G by A2, A3, Def8;
take I ; ::_thesis: ( ( for a being Element of A holds (I `2) . (i . a) = id ((I `1) . a) ) & ( for m1, m2 being Element of B st F . m2 = G . m1 holds
(I `2) . (c . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1) ) )
hereby ::_thesis: for m1, m2 being Element of B st F . m2 = G . m1 holds
(I `2) . (c . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1)
let a be Element of A; ::_thesis: (I `2) . (i . a) = id ((I `1) . a)
thus (I `2) . (i . a) = id C by A3, FUNCOP_1:7
.= id ((I `1) . a) by A2, FUNCOP_1:7 ; ::_thesis: verum
end;
let m1, m2 be Element of B; ::_thesis: ( F . m2 = G . m1 implies (I `2) . (c . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1) )
reconsider mm1 = m1, mm2 = m2 as Morphism of C by A1;
assume F . m2 = G . m1 ; ::_thesis: (I `2) . (c . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1)
then cod mm1 = dom mm2 by A1;
then [m2,m1] in dom c by A1, CAT_1:def_6;
then A5: (I `2) . (c . [m2,m1]) = id C by A3, FUNCOP_1:7, PARTFUN1:4;
( (I `2) . m1 = id C & (I `2) . m2 = id C ) by A3, FUNCOP_1:7;
hence (I `2) . (c . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1) by A5, FUNCT_2:17; ::_thesis: verum
end;
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 #) 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) ) ) );
definition
let C be Category;
mode Indexing of C is Indexing of the Source of C, the Target of C, the Comp of C, IdMap C;
mode coIndexing of C is Indexing of the Target of C, the Source of C, ~ the Comp of C, IdMap C;
end;
theorem Th6: :: INDEX_1:6
for C being Category
for I being Indexing of the Source of C, the Target of C holds
( I is Indexing of C iff ( ( for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ) & ( for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1) ) ) )
proof
let C be Category; ::_thesis: for I being Indexing of the Source of C, the Target of C holds
( I is Indexing of C iff ( ( for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ) & ( for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1) ) ) )
reconsider D = CatStr(# the carrier of C, the carrier' of C, the Source of C, the Target of C, the Comp of C #) as Category by CAT_5:1;
let I be Indexing of the Source of C, the Target of C; ::_thesis: ( I is Indexing of C iff ( ( for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ) & ( for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1) ) ) )
A1: D = CatStr(# the carrier of C, the carrier' of C, the Source of C, the Target of C, the Comp of C #) ;
hereby ::_thesis: ( ( for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ) & ( for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1) ) implies I is Indexing of C )
assume A2: I is Indexing of C ; ::_thesis: ( ( for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ) & ( for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1) ) )
thus for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ::_thesis: for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1)
proof
let a be Object of C; ::_thesis: (I `2) . (id a) = id ((I `1) . a)
id a = (IdMap C) . a by ISOCAT_1:def_12;
hence (I `2) . (id a) = id ((I `1) . a) by A1, Def10, A2; ::_thesis: verum
end;
let m1, m2 be Morphism of C; ::_thesis: ( dom m2 = cod m1 implies (I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1) )
assume A3: dom m2 = cod m1 ; ::_thesis: (I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1)
then (I `2) . ( the Comp of C . (m2,m1)) = ((I `2) . m2) * ((I `2) . m1) by A1, A2, Def10;
hence (I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1) by A3, CAT_1:16; ::_thesis: verum
end;
assume that
A4: for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) and
A5: for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1) ; ::_thesis: I is Indexing of C
thus ex D being Category st D = CatStr(# the carrier of C, the carrier' of C, the Source of C, the Target of C, the Comp of C #) by A1; :: according to INDEX_1:def_10 ::_thesis: ( ( for a being Element of the carrier of C holds (I `2) . ((IdMap C) . a) = id ((I `1) . a) ) & ( for m1, m2 being Element of the carrier' of C st the Source of C . m2 = the Target of C . m1 holds
(I `2) . ( the Comp of C . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1) ) )
hereby ::_thesis: for m1, m2 being Element of the carrier' of C st the Source of C . m2 = the Target of C . m1 holds
(I `2) . ( the Comp of C . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1)
let a be Object of C; ::_thesis: (I `2) . ((IdMap C) . a) = id ((I `1) . a)
id a = (IdMap C) . a by ISOCAT_1:def_12;
hence (I `2) . ((IdMap C) . a) = (I `2) . (id a)
.= id ((I `1) . a) by A4 ;
::_thesis: verum
end;
let m1, m2 be Morphism of C; ::_thesis: ( the Source of C . m2 = the Target of C . m1 implies (I `2) . ( the Comp of C . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1) )
assume the Source of C . m2 = the Target of C . m1 ; ::_thesis: (I `2) . ( the Comp of C . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1)
then A6: dom m2 = cod m1 ;
then A7: (I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1) by A5;
thus (I `2) . ( the Comp of C . [m2,m1]) = (I `2) . ( the Comp of C . (m2,m1))
.= ((I `2) . m2) * ((I `2) . m1) by A6, A7, CAT_1:16 ; ::_thesis: verum
end;
theorem Th7: :: INDEX_1:7
for C being Category
for I being Indexing of the Target of C, the Source of C holds
( I is coIndexing of C iff ( ( for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ) & ( for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m1) * ((I `2) . m2) ) ) )
proof
let C be Category; ::_thesis: for I being Indexing of the Target of C, the Source of C holds
( I is coIndexing of C iff ( ( for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ) & ( for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m1) * ((I `2) . m2) ) ) )
let I be Indexing of the Target of C, the Source of C; ::_thesis: ( I is coIndexing of C iff ( ( for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ) & ( for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m1) * ((I `2) . m2) ) ) )
A1: C opp = CatStr(# the carrier of C, the carrier' of C, the Target of C, the Source of C,(~ the Comp of C) #) ;
hereby ::_thesis: ( ( for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ) & ( for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m1) * ((I `2) . m2) ) implies I is coIndexing of C )
assume A2: I is coIndexing of C ; ::_thesis: ( ( for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ) & ( for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m1) * ((I `2) . m2) ) )
thus for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) ::_thesis: for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m1) * ((I `2) . m2)
proof
let a be Object of C; ::_thesis: (I `2) . (id a) = id ((I `1) . a)
id a = (IdMap C) . a by ISOCAT_1:def_12;
hence (I `2) . (id a) = id ((I `1) . a) by A1, Def10, A2; ::_thesis: verum
end;
let m1, m2 be Morphism of C; ::_thesis: ( dom m2 = cod m1 implies (I `2) . (m2 (*) m1) = ((I `2) . m1) * ((I `2) . m2) )
assume A3: dom m2 = cod m1 ; ::_thesis: (I `2) . (m2 (*) m1) = ((I `2) . m1) * ((I `2) . m2)
then A4: [m2,m1] in dom the Comp of C by CAT_1:15;
(I `2) . ((~ the Comp of C) . (m1,m2)) = ((I `2) . m1) * ((I `2) . m2) by A1, A2, A3, Def10;
then (I `2) . ( the Comp of C . (m2,m1)) = ((I `2) . m1) * ((I `2) . m2) by A4, FUNCT_4:def_2;
hence (I `2) . (m2 (*) m1) = ((I `2) . m1) * ((I `2) . m2) by A3, CAT_1:16; ::_thesis: verum
end;
assume that
A5: for a being Object of C holds (I `2) . (id a) = id ((I `1) . a) and
A6: for m1, m2 being Morphism of C st dom m2 = cod m1 holds
(I `2) . (m2 (*) m1) = ((I `2) . m1) * ((I `2) . m2) ; ::_thesis: I is coIndexing of C
thus ex D being Category st D = CatStr(# the carrier of C, the carrier' of C, the Target of C, the Source of C,(~ the Comp of C) #) by A1; :: according to INDEX_1:def_10 ::_thesis: ( ( for a being Element of the carrier of C holds (I `2) . ((IdMap C) . a) = id ((I `1) . a) ) & ( for m1, m2 being Element of the carrier' of C st the Target of C . m2 = the Source of C . m1 holds
(I `2) . ((~ the Comp of C) . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1) ) )
hereby ::_thesis: for m1, m2 being Element of the carrier' of C st the Target of C . m2 = the Source of C . m1 holds
(I `2) . ((~ the Comp of C) . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1)
let a be Object of C; ::_thesis: (I `2) . ((IdMap C) . a) = id ((I `1) . a)
id a = (IdMap C) . a by ISOCAT_1:def_12;
hence (I `2) . ((IdMap C) . a) = (I `2) . (id a)
.= id ((I `1) . a) by A5 ;
::_thesis: verum
end;
let m1, m2 be Morphism of C; ::_thesis: ( the Target of C . m2 = the Source of C . m1 implies (I `2) . ((~ the Comp of C) . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1) )
assume the Target of C . m2 = the Source of C . m1 ; ::_thesis: (I `2) . ((~ the Comp of C) . [m2,m1]) = ((I `2) . m2) * ((I `2) . m1)
then A7: dom m1 = cod m2 ;
then (I `2) . (m1 (*) m2) = ((I `2) . m2) * ((I `2) . m1) by A6;
then A8: (I `2) . ( the Comp of C . (m1,m2)) = ((I `2) . m2) * ((I `2) . m1) by A7, CAT_1:16;
A9: [m1,m2] in dom the Comp of C by A7, CAT_1:15;
thus (I `2) . ((~ the Comp of C) . [m2,m1]) = (I `2) . ((~ the Comp of C) . (m2,m1))
.= ((I `2) . m2) * ((I `2) . m1) by A8, A9, FUNCT_4:def_2 ; ::_thesis: verum
end;
Lm2: for C being Category holds IdMap C = IdMap (C opp)
proof
let C be Category; ::_thesis: IdMap C = IdMap (C opp)
thus the carrier of C = the carrier of (C opp) ; :: according to FUNCT_2:def_7 ::_thesis: for b1 being Element of the carrier of C holds (IdMap C) . b1 = (IdMap (C opp)) . b1
let o be Element of the carrier of C; ::_thesis: (IdMap C) . o = (IdMap (C opp)) . o
thus (IdMap C) . o = id o by ISOCAT_1:def_12
.= id (o opp) by OPPCAT_1:71
.= (IdMap (C opp)) . (o opp) by ISOCAT_1:def_12
.= (IdMap (C opp)) . o ; ::_thesis: verum
end;
theorem :: INDEX_1:8
for C being Category
for x being set holds
( x is coIndexing of C iff x is Indexing of (C opp) )
proof
let C be Category; ::_thesis: for x being set holds
( x is coIndexing of C iff x is Indexing of (C opp) )
let x be set ; ::_thesis: ( x is coIndexing of C iff x is Indexing of (C opp) )
A1: IdMap C = IdMap (C opp) by Lm2;
thus ( x is coIndexing of C iff x is Indexing of (C opp) ) by A1; ::_thesis: verum
end;
theorem :: INDEX_1:9
for C being Category
for I being Indexing of C
for c1, c2 being Object of C st not Hom (c1,c2) is empty holds
for m being Morphism of c1,c2 holds (I `2) . m is Functor of (I `1) . c1,(I `1) . c2
proof
let C be Category; ::_thesis: for I being Indexing of C
for c1, c2 being Object of C st not Hom (c1,c2) is empty holds
for m being Morphism of c1,c2 holds (I `2) . m is Functor of (I `1) . c1,(I `1) . c2
let I be Indexing of C; ::_thesis: for c1, c2 being Object of C st not Hom (c1,c2) is empty holds
for m being Morphism of c1,c2 holds (I `2) . m is Functor of (I `1) . c1,(I `1) . c2
let c1, c2 be Object of C; ::_thesis: ( not Hom (c1,c2) is empty implies for m being Morphism of c1,c2 holds (I `2) . m is Functor of (I `1) . c1,(I `1) . c2 )
assume A1: not Hom (c1,c2) is empty ; ::_thesis: for m being Morphism of c1,c2 holds (I `2) . m is Functor of (I `1) . c1,(I `1) . c2
let m be Morphism of c1,c2; ::_thesis: (I `2) . m is Functor of (I `1) . c1,(I `1) . c2
dom ((I `1) * the Source of C) = the carrier' of C by PARTFUN1:def_2;
then A2: ( dom ((I `1) * the Target of C) = the carrier' of C & ((I `1) * the Source of C) . m = (I `1) . ( the Source of C . m) ) by FUNCT_1:12, PARTFUN1:def_2;
( dom m = c1 & cod m = c2 ) by A1, CAT_1:5;
hence (I `2) . m is Functor of (I `1) . c1,(I `1) . c2 by A2, FUNCT_1:12; ::_thesis: verum
end;
theorem :: INDEX_1:10
for C being Category
for I being coIndexing of C
for c1, c2 being Object of C st not Hom (c1,c2) is empty holds
for m being Morphism of c1,c2 holds (I `2) . m is Functor of (I `1) . c2,(I `1) . c1
proof
let C be Category; ::_thesis: for I being coIndexing of C
for c1, c2 being Object of C st not Hom (c1,c2) is empty holds
for m being Morphism of c1,c2 holds (I `2) . m is Functor of (I `1) . c2,(I `1) . c1
let I be coIndexing of C; ::_thesis: for c1, c2 being Object of C st not Hom (c1,c2) is empty holds
for m being Morphism of c1,c2 holds (I `2) . m is Functor of (I `1) . c2,(I `1) . c1
let c1, c2 be Object of C; ::_thesis: ( not Hom (c1,c2) is empty implies for m being Morphism of c1,c2 holds (I `2) . m is Functor of (I `1) . c2,(I `1) . c1 )
assume A1: not Hom (c1,c2) is empty ; ::_thesis: for m being Morphism of c1,c2 holds (I `2) . m is Functor of (I `1) . c2,(I `1) . c1
let m be Morphism of c1,c2; ::_thesis: (I `2) . m is Functor of (I `1) . c2,(I `1) . c1
dom ((I `1) * the Source of C) = the carrier' of C by PARTFUN1:def_2;
then A2: ( dom ((I `1) * the Target of C) = the carrier' of C & ((I `1) * the Source of C) . m = (I `1) . ( the Source of C . m) ) by FUNCT_1:12, PARTFUN1:def_2;
( dom m = c1 & cod m = c2 ) by A1, CAT_1:5;
hence (I `2) . m is Functor of (I `1) . c2,(I `1) . c1 by A2, FUNCT_1:12; ::_thesis: verum
end;
definition
let C be Category;
let I be Indexing of C;
let T be TargetCat of I;
funcI -functor (C,T) -> Functor of C,T means :Def11: :: INDEX_1:def 11
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)]
proof
A1: rng (I `1) c= the carrier of T
proof
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng (I `1) or x in the carrier of T )
assume x in rng (I `1) ; ::_thesis: x in the carrier of T
then consider a being set such that
A2: a in dom (I `1) and
A3: x = (I `1) . a by FUNCT_1:def_3;
reconsider a = a as Object of C by A2, PARTFUN1:def_2;
(I `1) . a is Object of T by Def9;
hence x in the carrier of T by A3; ::_thesis: verum
end;
dom (I `1) = the carrier of C by PARTFUN1:def_2;
then reconsider I1 = I `1 as Function of the carrier of C, the carrier of T by A1, FUNCT_2:def_1, RELSET_1:4;
deffunc H1( Object of C) -> Element of the carrier of T = I1 . $1;
deffunc H2( Morphism of C) -> set = [[((I `1) . (dom $1)),((I `1) . (cod $1))],((I `2) . $1)];
A4: now__::_thesis:_for_f_being_Morphism_of_C_holds_
(_H2(f)_is_Morphism_of_T_&_(_for_g_being_Morphism_of_T_st_g_=_H2(f)_holds_
(_dom_g_=_H1(_dom_f)_&_cod_g_=_H1(_cod_f)_)_)_)
let f be Morphism of C; ::_thesis: ( H2(f) is Morphism of T & ( for g being Morphism of T st g = H2(f) holds
( dom g = H1( dom f) & cod g = H1( cod f) ) ) )
thus H2(f) is Morphism of T by Def9; ::_thesis: for g being Morphism of T st g = H2(f) holds
( dom g = H1( dom f) & cod g = H1( cod f) )
let g be Morphism of T; ::_thesis: ( g = H2(f) implies ( dom g = H1( dom f) & cod g = H1( cod f) ) )
assume A5: g = H2(f) ; ::_thesis: ( dom g = H1( dom f) & cod g = H1( cod f) )
hence dom g = H2(f) `11 by CAT_5:13
.= H1( dom f) by MCART_1:85 ;
::_thesis: cod g = H1( cod f)
thus cod g = H2(f) `12 by A5, CAT_5:13
.= H1( cod f) by MCART_1:85 ; ::_thesis: verum
end;
A6: now__::_thesis:_for_f1,_f2_being_Morphism_of_C
for_g1,_g2_being_Morphism_of_T_st_g1_=_H2(f1)_&_g2_=_H2(f2)_&_dom_f2_=_cod_f1_holds_
H2(f2_(*)_f1)_=_g2_(*)_g1
let f1, f2 be Morphism of C; ::_thesis: for g1, g2 being Morphism of T st g1 = H2(f1) & g2 = H2(f2) & dom f2 = cod f1 holds
H2(f2 (*) f1) = g2 (*) g1
let g1, g2 be Morphism of T; ::_thesis: ( g1 = H2(f1) & g2 = H2(f2) & dom f2 = cod f1 implies H2(f2 (*) f1) = g2 (*) g1 )
assume that
A7: ( g1 = H2(f1) & g2 = H2(f2) ) and
A8: dom f2 = cod f1 ; ::_thesis: H2(f2 (*) f1) = g2 (*) g1
A9: ( dom (f2 (*) f1) = dom f1 & cod (f2 (*) f1) = cod f2 ) by A8, CAT_1:17;
A10: ( (I `2) . f1 is Functor of (I `1) . (dom f1),(I `1) . (cod f1) & (I `2) . f2 is Functor of (I `1) . (dom f2),(I `1) . (cod f2) ) by Th4;
(I `2) . (f2 (*) f1) = ((I `2) . f2) * ((I `2) . f1) by A8, Th6;
hence H2(f2 (*) f1) = g2 (*) g1 by A7, A8, A10, A9, CAT_5:def_6; ::_thesis: verum
end;
A11: now__::_thesis:_for_a_being_Object_of_C_holds_H2(_id_a)_=_id_H1(a)
let a be Object of C; ::_thesis: H2( id a) = id H1(a)
thus H2( id a) = [[(I1 . a),(I1 . a)],(id ((I `1) . a))] by Th6
.= id H1(a) by CAT_5:def_6 ; ::_thesis: verum
end;
thus ex F being Functor of C,T st
for f being Morphism of C holds F . f = H2(f) from CAT_5:sch_3(A4, A11, A6); ::_thesis: verum
end;
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
proof
let F1, F2 be Functor of C,T; ::_thesis: ( ( for f being Morphism of C holds F1 . f = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)] ) & ( for f being Morphism of C holds F2 . f = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)] ) implies F1 = F2 )
assume that
A12: for f being Morphism of C holds F1 . f = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)] and
A13: for f being Morphism of C holds F2 . f = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)] ; ::_thesis: F1 = F2
now__::_thesis:_for_f_being_Morphism_of_C_holds_F1_._f_=_F2_._f
let f be Morphism of C; ::_thesis: F1 . f = F2 . f
thus F1 . f = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)] by A12
.= F2 . f by A13 ; ::_thesis: verum
end;
hence F1 = F2 by FUNCT_2:63; ::_thesis: verum
end;
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)] );
Lm3: for C being Category
for I being Indexing of C
for T being TargetCat of I holds Obj (I -functor (C,T)) = I `1
proof
let C be Category; ::_thesis: for I being Indexing of C
for T being TargetCat of I holds Obj (I -functor (C,T)) = I `1
let I be Indexing of C; ::_thesis: for T being TargetCat of I holds Obj (I -functor (C,T)) = I `1
let T be TargetCat of I; ::_thesis: Obj (I -functor (C,T)) = I `1
A1: now__::_thesis:_for_x_being_set_st_x_in_the_carrier_of_C_holds_
(Obj_(I_-functor_(C,T)))_._x_=_(I_`1)_._x
let x be set ; ::_thesis: ( x in the carrier of C implies (Obj (I -functor (C,T))) . x = (I `1) . x )
assume x in the carrier of C ; ::_thesis: (Obj (I -functor (C,T))) . x = (I `1) . x
then reconsider a = x as Object of C ;
A2: ( dom (id a) = a & cod (id a) = a ) ;
(Obj (I -functor (C,T))) . a = dom (id ((Obj (I -functor (C,T))) . a))
.= dom ((I -functor (C,T)) . (id a)) by CAT_1:68
.= ((I -functor (C,T)) . (id a)) `11 by CAT_5:2
.= [[((I `1) . a),((I `1) . a)],((I `2) . (id a))] `11 by A2, Def11 ;
hence (Obj (I -functor (C,T))) . x = (I `1) . x by MCART_1:85; ::_thesis: verum
end;
( dom (Obj (I -functor (C,T))) = the carrier of C & dom (I `1) = the carrier of C ) by FUNCT_2:def_1, PARTFUN1:def_2;
hence Obj (I -functor (C,T)) = I `1 by A1, FUNCT_1:2; ::_thesis: verum
end;
theorem Th11: :: INDEX_1:11
for C being Category
for I being Indexing of C
for T1, T2 being TargetCat of I holds
( I -functor (C,T1) = I -functor (C,T2) & Obj (I -functor (C,T1)) = Obj (I -functor (C,T2)) )
proof
let C be Category; ::_thesis: for I being Indexing of C
for T1, T2 being TargetCat of I holds
( I -functor (C,T1) = I -functor (C,T2) & Obj (I -functor (C,T1)) = Obj (I -functor (C,T2)) )
let I be Indexing of C; ::_thesis: for T1, T2 being TargetCat of I holds
( I -functor (C,T1) = I -functor (C,T2) & Obj (I -functor (C,T1)) = Obj (I -functor (C,T2)) )
let T1, T2 be TargetCat of I; ::_thesis: ( I -functor (C,T1) = I -functor (C,T2) & Obj (I -functor (C,T1)) = Obj (I -functor (C,T2)) )
A1: now__::_thesis:_for_x_being_set_st_x_in_the_carrier'_of_C_holds_
(I_-functor_(C,T1))_._x_=_(I_-functor_(C,T2))_._x
let x be set ; ::_thesis: ( x in the carrier' of C implies (I -functor (C,T1)) . x = (I -functor (C,T2)) . x )
assume x in the carrier' of C ; ::_thesis: (I -functor (C,T1)) . x = (I -functor (C,T2)) . x
then reconsider f = x as Morphism of C ;
thus (I -functor (C,T1)) . x = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)] by Def11
.= (I -functor (C,T2)) . x by Def11 ; ::_thesis: verum
end;
( dom (I -functor (C,T1)) = the carrier' of C & dom (I -functor (C,T2)) = the carrier' of C ) by FUNCT_2:def_1;
hence I -functor (C,T1) = I -functor (C,T2) by A1, FUNCT_1:2; ::_thesis: Obj (I -functor (C,T1)) = Obj (I -functor (C,T2))
A2: now__::_thesis:_for_x_being_set_st_x_in_the_carrier_of_C_holds_
(Obj_(I_-functor_(C,T1)))_._x_=_(Obj_(I_-functor_(C,T2)))_._x
let x be set ; ::_thesis: ( x in the carrier of C implies (Obj (I -functor (C,T1))) . x = (Obj (I -functor (C,T2))) . x )
assume x in the carrier of C ; ::_thesis: (Obj (I -functor (C,T1))) . x = (Obj (I -functor (C,T2))) . x
then reconsider a = x as Object of C ;
thus (Obj (I -functor (C,T1))) . x = (I `1) . a by Lm3
.= (Obj (I -functor (C,T2))) . x by Lm3 ; ::_thesis: verum
end;
( dom (Obj (I -functor (C,T1))) = the carrier of C & dom (Obj (I -functor (C,T2))) = the carrier of C ) by FUNCT_2:def_1;
hence Obj (I -functor (C,T1)) = Obj (I -functor (C,T2)) by A2, FUNCT_1:2; ::_thesis: verum
end;
theorem :: INDEX_1:12
for C being Category
for I being Indexing of C
for T being TargetCat of I holds Obj (I -functor (C,T)) = I `1 by Lm3;
theorem :: INDEX_1:13
for C being Category
for I being Indexing of C
for T being TargetCat of I
for x being Object of C holds (I -functor (C,T)) . x = (I `1) . x by Lm3;
definition
let C be Category;
let I be Indexing of C;
func rng I -> strict TargetCat of I means :Def12: :: INDEX_1:def 12
for T being TargetCat of I holds it = Image (I -functor (C,T));
uniqueness
for b1, b2 being strict TargetCat of I st ( for T being TargetCat of I holds b1 = Image (I -functor (C,T)) ) & ( for T being TargetCat of I holds b2 = Image (I -functor (C,T)) ) holds
b1 = b2
proof
set T = the TargetCat of I;
let T1, T2 be strict TargetCat of I; ::_thesis: ( ( for T being TargetCat of I holds T1 = Image (I -functor (C,T)) ) & ( for T being TargetCat of I holds T2 = Image (I -functor (C,T)) ) implies T1 = T2 )
assume that
A1: for T being TargetCat of I holds T1 = Image (I -functor (C,T)) and
A2: for T being TargetCat of I holds T2 = Image (I -functor (C,T)) ; ::_thesis: T1 = T2
thus T1 = Image (I -functor (C, the TargetCat of I)) by A1
.= T2 by A2 ; ::_thesis: verum
end;
existence
ex b1 being strict TargetCat of I st
for T being TargetCat of I holds b1 = Image (I -functor (C,T))
proof
set S = the TargetCat of I;
reconsider T = Image (I -functor (C, the TargetCat of I)) as strict Subcategory of the TargetCat of I ;
reconsider F = I -functor (C, the TargetCat of I) as Functor of C,T by CAT_5:8;
T is TargetCat of I
proof
the carrier of T = rng (Obj (I -functor (C, the TargetCat of I))) by CAT_5:def_3;
then A3: the carrier of T = rng (I `1) by Lm3;
dom (I `1) = the carrier of C by PARTFUN1:def_2;
hence for a being Object of C holds (I `1) . a is Object of T by A3, FUNCT_1:def_3; :: according to INDEX_1:def_9 ::_thesis: for b being Element of the carrier' of C holds [[((I `1) . ( the Source of C . b)),((I `1) . ( the Target of C . b))],((I `2) . b)] is Morphism of T
let b be Morphism of C; ::_thesis: [[((I `1) . ( the Source of C . b)),((I `1) . ( the Target of C . b))],((I `2) . b)] is Morphism of T
F . b = [[((I `1) . (dom b)),((I `1) . (cod b))],((I `2) . b)] by Def11;
hence [[((I `1) . ( the Source of C . b)),((I `1) . ( the Target of C . b))],((I `2) . b)] is Morphism of T ; ::_thesis: verum
end;
then reconsider T = T as strict TargetCat of I ;
take T ; ::_thesis: for T being TargetCat of I holds T = Image (I -functor (C,T))
let T9 be TargetCat of I; ::_thesis: T = Image (I -functor (C,T9))
thus T = Image (I -functor (C,T9)) by Th11, CAT_5:22; ::_thesis: verum
end;
end;
:: 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: :: INDEX_1:14
for C being Category
for I being Indexing of C
for D being Categorial Category holds
( rng I is Subcategory of D iff D is TargetCat of I )
proof
let C be Category; ::_thesis: for I being Indexing of C
for D being Categorial Category holds
( rng I is Subcategory of D iff D is TargetCat of I )
let I be Indexing of C; ::_thesis: for D being Categorial Category holds
( rng I is Subcategory of D iff D is TargetCat of I )
let D be Categorial Category; ::_thesis: ( rng I is Subcategory of D iff D is TargetCat of I )
hereby ::_thesis: ( D is TargetCat of I implies rng I is Subcategory of D )
assume A1: rng I is Subcategory of D ; ::_thesis: D is TargetCat of I
thus D is TargetCat of I ::_thesis: verum
proof
hereby :: according to INDEX_1:def_9 ::_thesis: for b being Element of the carrier' of C holds [[((I `1) . ( the Source of C . b)),((I `1) . ( the Target of C . b))],((I `2) . b)] is Morphism of D
let a be Object of C; ::_thesis: (I `1) . a is Object of D
(I `1) . a is Object of (rng I) by Def9;
hence (I `1) . a is Object of D by A1, CAT_2:6; ::_thesis: verum
end;
let b be Morphism of C; ::_thesis: [[((I `1) . ( the Source of C . b)),((I `1) . ( the Target of C . b))],((I `2) . b)] is Morphism of D
[[((I `1) . ( the Source of C . b)),((I `1) . ( the Target of C . b))],((I `2) . b)] is Morphism of (rng I) by Def9;
hence [[((I `1) . ( the Source of C . b)),((I `1) . ( the Target of C . b))],((I `2) . b)] is Morphism of D by A1, CAT_2:8; ::_thesis: verum
end;
end;
assume D is TargetCat of I ; ::_thesis: rng I is Subcategory of D
then reconsider T = D as TargetCat of I ;
rng I = Image (I -functor (C,T)) by Def12;
hence rng I is Subcategory of D ; ::_thesis: verum
end;
definition
let C be Category;
let I be Indexing of C;
let m be Morphism of C;
funcI . m -> Functor of (I `1) . (dom m),(I `1) . (cod m) equals :: INDEX_1:def 13
(I `2) . m;
coherence
(I `2) . m is Functor of (I `1) . (dom m),(I `1) . (cod m)
proof
dom ((I `1) * the Source of C) = the carrier' of C by PARTFUN1:def_2;
then ( dom ((I `1) * the Target of C) = the carrier' of C & ((I `1) * the Source of C) . m = (I `1) . ( the Source of C . m) ) by FUNCT_1:12, PARTFUN1:def_2;
hence (I `2) . m is Functor of (I `1) . (dom m),(I `1) . (cod m) by FUNCT_1:12; ::_thesis: verum
end;
end;
:: 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;
definition
let C be Category;
let I be coIndexing of C;
let m be Morphism of C;
funcI . m -> Functor of (I `1) . (cod m),(I `1) . (dom m) equals :: INDEX_1:def 14
(I `2) . m;
coherence
(I `2) . m is Functor of (I `1) . (cod m),(I `1) . (dom m)
proof
dom ((I `1) * the Source of C) = the carrier' of C by PARTFUN1:def_2;
then ( dom ((I `1) * the Target of C) = the carrier' of C & ((I `1) * the Source of C) . m = (I `1) . ( the Source of C . m) ) by FUNCT_1:12, PARTFUN1:def_2;
hence (I `2) . m is Functor of (I `1) . (cod m),(I `1) . (dom m) by FUNCT_1:12; ::_thesis: verum
end;
end;
:: 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;
Lm4: now__::_thesis:_for_C,_D_being_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)_._m
let C, D be Category; ::_thesis: 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) . m
set 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; ::_thesis: ([( 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_2;
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:12
.= ( the carrier of C --> D) . ( the Source of C . m)
.= D by FUNCOP_1:7 ;
dom (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) = the carrier' of C by PARTFUN1:def_2;
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:12
.= ( the carrier of C --> D) . ( the Target of C . m)
.= D by FUNCOP_1:7 ;
([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . m = ( the carrier' of C --> (id D)) . m
.= id D by FUNCOP_1:7 ;
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; ::_thesis: verum
end;
Lm5: now__::_thesis:_for_C,_D_being_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)_._m
let C, D be Category; ::_thesis: 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) . m
set 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; ::_thesis: ([( 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_2;
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:12
.= ( the carrier of C --> D) . ( the Source of C . m)
.= D by FUNCOP_1:7 ;
dom (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C) = the carrier' of C by PARTFUN1:def_2;
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:12
.= ( the carrier of C --> D) . ( the Target of C . m)
.= D by FUNCOP_1:7 ;
([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . m = ( the carrier' of C --> (id D)) . m
.= id D by FUNCOP_1:7 ;
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; ::_thesis: verum
end;
theorem :: INDEX_1:15
for C, D being Category holds
( [( the carrier of C --> D),( the carrier' of C --> (id D))] is Indexing of C & [( the carrier of C --> D),( the carrier' of C --> (id D))] is coIndexing of C )
proof
let C, D be Category; ::_thesis: ( [( the carrier of C --> D),( the carrier' of C --> (id D))] is Indexing of C & [( the carrier of C --> D),( the carrier' of C --> (id D))] is coIndexing of C )
set H = [( the carrier of C --> D),( the carrier' of C --> (id D))];
set I = [( the carrier of C --> D),( the carrier' of C --> (id D))];
A1: [( the carrier of C --> D),( the carrier' of C --> (id D))] `2 = the carrier' of C --> (id D) ;
A2: now__::_thesis:_for_a_being_Object_of_C_holds_([(_the_carrier_of_C_-->_D),(_the_carrier'_of_C_-->_(id_D))]_`2)_._(id_a)_=_id_(([(_the_carrier_of_C_-->_D),(_the_carrier'_of_C_-->_(id_D))]_`1)_._a)
let a be Object of C; ::_thesis: ([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . (id a) = id (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) . a)
thus ([( the carrier of C --> D),( the carrier' of C --> (id D))] `2) . (id a) = id D by FUNCOP_1:7
.= id (([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) . a) by FUNCOP_1:7 ; ::_thesis: verum
end;
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) . m by Lm4;
then [( the carrier of C --> D),( the carrier' of C --> (id D))] `2 is ManySortedFunctor of ([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Source of C,([( the carrier of C --> D),( the carrier' of C --> (id D))] `1) * the Target of C by Def7;
then reconsider H = [( the carrier of C --> D),( the carrier' of C --> (id D))] as Indexing of the Source of C, the Target of C by Def8;
now__::_thesis:_for_m1,_m2_being_Morphism_of_C_st_dom_m2_=_cod_m1_holds_
(H_`2)_._(m2_(*)_m1)_=_((H_`2)_._m2)_*_((H_`2)_._m1)
let m1, m2 be Morphism of C; ::_thesis: ( dom m2 = cod m1 implies (H `2) . (m2 (*) m1) = ((H `2) . m2) * ((H `2) . m1) )
assume dom m2 = cod m1 ; ::_thesis: (H `2) . (m2 (*) m1) = ((H `2) . m2) * ((H `2) . m1)
A3: (H `2) . m1 = id D by A1, FUNCOP_1:7;
( (H `2) . (m2 (*) m1) = id D & (H `2) . m2 = id D ) by A1, FUNCOP_1:7;
hence (H `2) . (m2 (*) m1) = ((H `2) . m2) * ((H `2) . m1) by A3, FUNCT_2:17; ::_thesis: verum
end;
hence [( the carrier of C --> D),( the carrier' of C --> (id D))] is Indexing of C by A2, Th6; ::_thesis: [( the carrier of C --> D),( the carrier' of C --> (id D))] is coIndexing of C
for m being Morphism of C holds (H `2) . m is Functor of ((H `1) * the Target of C) . m,((H `1) * the Source of C) . m by Lm5;
then H `2 is ManySortedFunctor of (H `1) * the Target of C,(H `1) * the Source of C by Def7;
then reconsider H = H as Indexing of the Target of C, the Source of C by Def8;
now__::_thesis:_for_m1,_m2_being_Morphism_of_C_st_dom_m2_=_cod_m1_holds_
(H_`2)_._(m2_(*)_m1)_=_((H_`2)_._m1)_*_((H_`2)_._m2)
let m1, m2 be Morphism of C; ::_thesis: ( dom m2 = cod m1 implies (H `2) . (m2 (*) m1) = ((H `2) . m1) * ((H `2) . m2) )
assume dom m2 = cod m1 ; ::_thesis: (H `2) . (m2 (*) m1) = ((H `2) . m1) * ((H `2) . m2)
A4: (H `2) . m1 = id D by A1, FUNCOP_1:7;
( (H `2) . (m2 (*) m1) = id D & (H `2) . m2 = id D ) by A1, FUNCOP_1:7;
hence (H `2) . (m2 (*) m1) = ((H `2) . m1) * ((H `2) . m2) by A4, FUNCT_2:17; ::_thesis: verum
end;
hence [( the carrier of C --> D),( the carrier' of C --> (id D))] is coIndexing of C by A2, Th7; ::_thesis: verum
end;
begin
registration
let C be Category;
let D be Categorial Category;
let F be Functor of C,D;
cluster Obj F -> Category-yielding ;
coherence
Obj F is Category-yielding
proof
let x be set ; :: according to INDEX_1:def_1 ::_thesis: ( x in dom (Obj F) implies (Obj F) . x is Category )
assume x in dom (Obj F) ; ::_thesis: (Obj F) . x is Category
then ( rng (Obj F) c= the carrier of D & (Obj F) . x in rng (Obj F) ) by FUNCT_1:def_3, RELAT_1:def_19;
hence (Obj F) . x is Category by CAT_5:12; ::_thesis: verum
end;
end;
theorem Th16: :: INDEX_1:16
for C being Category
for D being Categorial Category
for F being Functor of C,D holds [(Obj F),(pr2 F)] is Indexing of C
proof
let C be Category; ::_thesis: for D being Categorial Category
for F being Functor of C,D holds [(Obj F),(pr2 F)] is Indexing of C
let D be Categorial Category; ::_thesis: for F being Functor of C,D holds [(Obj F),(pr2 F)] is Indexing of C
let F be Functor of C,D; ::_thesis: [(Obj F),(pr2 F)] is Indexing of C
set I = [(Obj F),(pr2 F)];
A1: [(Obj F),(pr2 F)] `1 = Obj F ;
A2: dom F = the carrier' of C by FUNCT_2:def_1;
dom (Obj F) = the carrier of C by FUNCT_2:def_1;
then A3: Obj F is ManySortedSet of the carrier of C by PARTFUN1:def_2;
A4: [(Obj F),(pr2 F)] `2 = pr2 F ;
A5: dom (pr2 F) = dom F by MCART_1:def_13;
then pr2 F is ManySortedSet of the carrier' of C by A2, PARTFUN1:def_2, RELAT_1:def_18;
then reconsider I = [(Obj F),(pr2 F)] as ManySortedSet of the carrier of C, the carrier' of C by A3, Def4;
pr2 F is Function-yielding
proof
let x be set ; :: according to FUNCOP_1:def_6 ::_thesis: ( not x in proj1 (pr2 F) or (pr2 F) . x is set )
assume x in dom (pr2 F) ; ::_thesis: (pr2 F) . x is set
then reconsider x = x as Morphism of C by A2, MCART_1:def_13;
reconsider m = F . x as Morphism of D ;
(pr2 F) . x = m `2 by A2, MCART_1:def_13;
hence (pr2 F) . x is set ; ::_thesis: verum
end;
then reconsider FF = pr2 F as ManySortedFunction of the carrier' of C by A5, A2, PARTFUN1:def_2, RELAT_1:def_18;
I `1 is Category-yielding by MCART_1:7;
then reconsider I = I as Category-yielding_on_first ManySortedSet of the carrier of C, the carrier' of C by Def5;
FF is ManySortedFunctor of (I `1) * the Source of C,(I `1) * the Target of C
proof
let m be Morphism of C; :: according to INDEX_1:def_7 ::_thesis: FF . m is Functor of ((I `1) * the Source of C) . m,((I `1) * the Target of C) . m
reconsider x = F . m as Morphism of D ;
A6: x `11 = dom (F . m) by CAT_5:13;
x `12 = cod (F . m) by CAT_5:13;
then consider f being Functor of x `11 ,x `12 such that
A7: F . m = [[(x `11),(x `12)],f] by A6, CAT_5:def_6;
A8: ((Obj F) * the Source of C) . m = (Obj F) . (dom m) by FUNCT_2:15
.= dom (F . m) by CAT_1:69 ;
A9: ((Obj F) * the Target of C) . m = (Obj F) . (cod m) by FUNCT_2:15
.= cod (F . m) by CAT_1:69 ;
FF . m = x `2 by A2, MCART_1:def_13
.= f by A7, MCART_1:7 ;
hence FF . m is Functor of ((I `1) * the Source of C) . m,((I `1) * the Target of C) . m by A1, A6, A8, A9, CAT_5:13; ::_thesis: verum
end;
then reconsider I = I as Indexing of the Source of C, the Target of C by A4, Def8;
A10: dom F = the carrier' of C by FUNCT_2:def_1;
A11: now__::_thesis:_for_m1,_m2_being_Morphism_of_C_st_dom_m2_=_cod_m1_holds_
(I_`2)_._(m2_(*)_m1)_=_((I_`2)_._m2)_*_((I_`2)_._m1)
let m1, m2 be Morphism of C; ::_thesis: ( dom m2 = cod m1 implies (I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1) )
assume A12: dom m2 = cod m1 ; ::_thesis: (I `2) . (m2 (*) m1) = ((I `2) . m2) * ((I `2) . m1)
set h1 = F . m1;
set h2 = F . m2;
A13: dom (F . m2) = F . (dom m2) by CAT_1:72
.= cod (F . m1) by A12, CAT_1:72 ;
A14: dom (F . m2) = (F . m2) `11 by CAT_5:13;
cod (F . m2) = (F . m2) `12 by CAT_5:13;
then consider f2 being Functor of (F . m2) `11 ,(F . m2) `12 such that
A15: F . m2 = [[((F . m2) `11),((F . m2) `12)],f2] by A14, CAT_5:def_6;
A16: cod (F . m1) = (F . m1) `12 by CAT_5:13;
dom (F . m1) = (F . m1) `11 by CAT_5:13;
then consider f1 being Functor of (F . m1) `11 ,(F . m1) `12 such that
A17: F . m1 = [[((F . m1) `11),((F . m1) `12)],f1] by A16, CAT_5:def_6;
thus (I `2) . (m2 (*) m1) = (F . (m2 (*) m1)) `2 by A4, A10, MCART_1:def_13
.= ((F . m2) (*) (F . m1)) `2 by A12, CAT_1:64
.= [[((F . m1) `11),((F . m2) `12)],(f2 * f1)] `2 by A14, A16, A15, A17, A13, CAT_5:def_6
.= f2 * f1
.= ((F . m2) `2) * f1 by A15, MCART_1:7
.= ((F . m2) `2) * ((F . m1) `2) by A17, MCART_1:7
.= ((I `2) . m2) * ((F . m1) `2) by A4, A10, MCART_1:def_13
.= ((I `2) . m2) * ((I `2) . m1) by A4, A10, MCART_1:def_13 ; ::_thesis: verum
end;
now__::_thesis:_for_a_being_Object_of_C_holds_(I_`2)_._(id_a)_=_id_((I_`1)_._a)
let a be Object of C; ::_thesis: (I `2) . (id a) = id ((I `1) . a)
reconsider i = (Obj F) . a as Object of D ;
thus (I `2) . (id a) = (F . (id a)) `2 by A4, A10, MCART_1:def_13
.= (id i) `2 by CAT_1:68
.= [[((I `1) . a),((I `1) . a)],(id ((I `1) . a))] `2 by A1, CAT_5:def_6
.= id ((I `1) . a) ; ::_thesis: verum
end;
hence [(Obj F),(pr2 F)] is Indexing of C by A11, Th6; ::_thesis: verum
end;
definition
let C be Category;
let D be Categorial Category;
let F be Functor of C,D;
funcF -indexing_of C -> Indexing of C equals :: INDEX_1:def 15
[(Obj F),(pr2 F)];
coherence
[(Obj F),(pr2 F)] is Indexing of C by Th16;
end;
:: 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 :: INDEX_1:17
for C being Category
for D being Categorial Category
for F being Functor of C,D holds D is TargetCat of F -indexing_of C
proof
let C be Category; ::_thesis: for D being Categorial Category
for F being Functor of C,D holds D is TargetCat of F -indexing_of C
let D be Categorial Category; ::_thesis: for F being Functor of C,D holds D is TargetCat of F -indexing_of C
let F be Functor of C,D; ::_thesis: D is TargetCat of F -indexing_of C
set I = F -indexing_of C;
A1: (F -indexing_of C) `1 = Obj F by MCART_1:7;
hence for a being Object of C holds ((F -indexing_of C) `1) . a is Object of D by FUNCT_2:5; :: according to INDEX_1:def_9 ::_thesis: for b being Element of the carrier' of C holds [[(((F -indexing_of C) `1) . ( the Source of C . b)),(((F -indexing_of C) `1) . ( the Target of C . b))],(((F -indexing_of C) `2) . b)] is Morphism of D
let b be Morphism of C; ::_thesis: [[(((F -indexing_of C) `1) . ( the Source of C . b)),(((F -indexing_of C) `1) . ( the Target of C . b))],(((F -indexing_of C) `2) . b)] is Morphism of D
set h = F . b;
A2: dom (F . b) = (F . b) `11 by CAT_5:13;
cod (F . b) = (F . b) `12 by CAT_5:13;
then consider f being Functor of (F . b) `11 ,(F . b) `12 such that
A3: F . b = [[((F . b) `11),((F . b) `12)],f] by A2, CAT_5:def_6;
A4: cod (F . b) = (Obj F) . (cod b) by CAT_1:69
.= (Obj F) . ( the Target of C . b) ;
A5: dom (F . b) = (Obj F) . (dom b) by CAT_1:69
.= (Obj F) . ( the Source of C . b) ;
( (F -indexing_of C) `2 = pr2 F & dom F = the carrier' of C ) by FUNCT_2:def_1, MCART_1:7;
then ((F -indexing_of C) `2) . b = (F . b) `2 by MCART_1:def_13
.= f by A3, MCART_1:7 ;
hence [[(((F -indexing_of C) `1) . ( the Source of C . b)),(((F -indexing_of C) `1) . ( the Target of C . b))],(((F -indexing_of C) `2) . b)] is Morphism of D by A1, A2, A3, A5, A4, CAT_5:13; ::_thesis: verum
end;
theorem Th18: :: INDEX_1:18
for C being Category
for D being Categorial Category
for F being Functor of C,D
for T being TargetCat of F -indexing_of C holds F = (F -indexing_of C) -functor (C,T)
proof
let C be Category; ::_thesis: for D being Categorial Category
for F being Functor of C,D
for T being TargetCat of F -indexing_of C holds F = (F -indexing_of C) -functor (C,T)
let D be Categorial Category; ::_thesis: for F being Functor of C,D
for T being TargetCat of F -indexing_of C holds F = (F -indexing_of C) -functor (C,T)
let F be Functor of C,D; ::_thesis: for T being TargetCat of F -indexing_of C holds F = (F -indexing_of C) -functor (C,T)
set I = F -indexing_of C;
let T be TargetCat of F -indexing_of C; ::_thesis: F = (F -indexing_of C) -functor (C,T)
A1: (F -indexing_of C) `2 = pr2 F by MCART_1:7;
A2: dom F = the carrier' of C by FUNCT_2:def_1;
A3: (F -indexing_of C) `1 = Obj F by MCART_1:7;
A4: now__::_thesis:_for_x_being_set_st_x_in_the_carrier'_of_C_holds_
F_._x_=_((F_-indexing_of_C)_-functor_(C,T))_._x
let x be set ; ::_thesis: ( x in the carrier' of C implies F . x = ((F -indexing_of C) -functor (C,T)) . x )
assume x in the carrier' of C ; ::_thesis: F . x = ((F -indexing_of C) -functor (C,T)) . x
then reconsider f = x as Morphism of C ;
set h = F . f;
A5: ( dom (F . f) = (Obj F) . (dom f) & cod (F . f) = (Obj F) . (cod f) ) by CAT_1:69;
A6: ( dom (F . f) = (F . f) `11 & cod (F . f) = (F . f) `12 ) by CAT_5:13;
then consider g being Functor of (F . f) `11 ,(F . f) `12 such that
A7: F . f = [[((F . f) `11),((F . f) `12)],g] by CAT_5:def_6;
((F -indexing_of C) `2) . f = (F . f) `2 by A1, A2, MCART_1:def_13
.= g by A7, MCART_1:7 ;
hence F . x = ((F -indexing_of C) -functor (C,T)) . x by A3, A6, A7, A5, Def11; ::_thesis: verum
end;
dom ((F -indexing_of C) -functor (C,T)) = the carrier' of C by FUNCT_2:def_1;
hence F = (F -indexing_of C) -functor (C,T) by A2, A4, FUNCT_1:2; ::_thesis: verum
end;
theorem :: INDEX_1:19
for C being Category
for D, E being Categorial Category
for F being Functor of C,D
for G being Functor of C,E st F = G holds
F -indexing_of C = G -indexing_of C by Th2;
theorem Th20: :: INDEX_1:20
for C being Category
for I being Indexing of C
for T being TargetCat of I holds pr2 (I -functor (C,T)) = I `2
proof
let C be Category; ::_thesis: for I being Indexing of C
for T being TargetCat of I holds pr2 (I -functor (C,T)) = I `2
let I be Indexing of C; ::_thesis: for T being TargetCat of I holds pr2 (I -functor (C,T)) = I `2
let T be TargetCat of I; ::_thesis: pr2 (I -functor (C,T)) = I `2
A1: dom (I -functor (C,T)) = the carrier' of C by FUNCT_2:def_1;
A2: now__::_thesis:_for_x_being_set_st_x_in_the_carrier'_of_C_holds_
(pr2_(I_-functor_(C,T)))_._x_=_(I_`2)_._x
let x be set ; ::_thesis: ( x in the carrier' of C implies (pr2 (I -functor (C,T))) . x = (I `2) . x )
assume x in the carrier' of C ; ::_thesis: (pr2 (I -functor (C,T))) . x = (I `2) . x
then reconsider f = x as Morphism of C ;
(I -functor (C,T)) . f = [[((I `1) . (dom f)),((I `1) . (cod f))],((I `2) . f)] by Def11;
then ((I -functor (C,T)) . x) `2 = (I `2) . f by MCART_1:7;
hence (pr2 (I -functor (C,T))) . x = (I `2) . x by A1, MCART_1:def_13; ::_thesis: verum
end;
( dom (pr2 (I -functor (C,T))) = dom (I -functor (C,T)) & dom (I `2) = the carrier' of C ) by MCART_1:def_13, PARTFUN1:def_2;
hence pr2 (I -functor (C,T)) = I `2 by A1, A2, FUNCT_1:2; ::_thesis: verum
end;
theorem :: INDEX_1:21
for C being Category
for I being Indexing of C
for T being TargetCat of I holds (I -functor (C,T)) -indexing_of C = I
proof
let C be Category; ::_thesis: for I being Indexing of C
for T being TargetCat of I holds (I -functor (C,T)) -indexing_of C = I
let I be Indexing of C; ::_thesis: for T being TargetCat of I holds (I -functor (C,T)) -indexing_of C = I
let T be TargetCat of I; ::_thesis: (I -functor (C,T)) -indexing_of C = I
set F = I -functor (C,T);
A1: ex f being ManySortedSet of the carrier of C ex g being ManySortedSet of the carrier' of C st I = [f,g] by Def4;
thus (I -functor (C,T)) -indexing_of C = [(I `1),(pr2 (I -functor (C,T)))] by Lm3
.= [(I `1),(I `2)] by Th20
.= I by A1, MCART_1:8 ; ::_thesis: verum
end;
begin
Lm6: now__::_thesis:_for_c,_d_being_Category
for_e_being_Subcategory_of_d
for_f_being_Functor_of_c,e_holds_f_is_Functor_of_c,d
let c, d be Category; ::_thesis: for e being Subcategory of d
for f being Functor of c,e holds f is Functor of c,d
let e be Subcategory of d; ::_thesis: for f being Functor of c,e holds f is Functor of c,d
let f be Functor of c,e; ::_thesis: f is Functor of c,d
(incl e) * f = (id e) * f by CAT_2:def_5
.= f by FUNCT_2:17 ;
hence f is Functor of c,d ; ::_thesis: verum
end;
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 ;
funcI * F -> Indexing of C means :Def16: :: INDEX_1:def 16
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
proof
reconsider A = Image F as Subcategory of E by A1;
reconsider G = F as Functor of C,A by CAT_5:8;
reconsider G = G as Functor of C,E by Lm6;
take ((I -functor (E,(rng I))) * G) -indexing_of C ; ::_thesis: for F9 being Functor of C,E st F9 = F holds
((I -functor (E,(rng I))) * G) -indexing_of C = ((I -functor (E,(rng I))) * F9) -indexing_of C
thus for F9 being Functor of C,E st F9 = F holds
((I -functor (E,(rng I))) * G) -indexing_of C = ((I -functor (E,(rng I))) * F9) -indexing_of C ; ::_thesis: verum
end;
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
proof
reconsider A = Image F as Subcategory of E by A1;
reconsider G = F as Functor of C,A by CAT_5:8;
let J1, J2 be Indexing of C; ::_thesis: ( ( for F9 being Functor of C,E st F9 = F holds
J1 = ((I -functor (E,(rng I))) * F9) -indexing_of C ) & ( for F9 being Functor of C,E st F9 = F holds
J2 = ((I -functor (E,(rng I))) * F9) -indexing_of C ) implies J1 = J2 )
assume that
A2: for F9 being Functor of C,E st F9 = F holds
J1 = ((I -functor (E,(rng I))) * F9) -indexing_of C and
A3: for F9 being Functor of C,E st F9 = F holds
J2 = ((I -functor (E,(rng I))) * F9) -indexing_of C ; ::_thesis: J1 = J2
reconsider G = G as Functor of C,E by Lm6;
thus J1 = ((I -functor (E,(rng I))) * G) -indexing_of C by A2
.= J2 by A3 ; ::_thesis: verum
end;
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: :: INDEX_1:22
for C, D1, D2, E being Category
for I being Indexing of E
for F being Functor of C,D1
for G being Functor of C,D2 st Image F is Subcategory of E & Image G is Subcategory of E & F = G holds
I * F = I * G
proof
let C, D1, D2, E be Category; ::_thesis: for I being Indexing of E
for F being Functor of C,D1
for G being Functor of C,D2 st Image F is Subcategory of E & Image G is Subcategory of E & F = G holds
I * F = I * G
let I be Indexing of E; ::_thesis: for F being Functor of C,D1
for G being Functor of C,D2 st Image F is Subcategory of E & Image G is Subcategory of E & F = G holds
I * F = I * G
let F be Functor of C,D1; ::_thesis: for G being Functor of C,D2 st Image F is Subcategory of E & Image G is Subcategory of E & F = G holds
I * F = I * G
let G be Functor of C,D2; ::_thesis: ( Image F is Subcategory of E & Image G is Subcategory of E & F = G implies I * F = I * G )
assume that
A1: Image F is Subcategory of E and
A2: Image G is Subcategory of E and
A3: F = G ; ::_thesis: I * F = I * G
reconsider F9 = F as Functor of C, Image F by CAT_5:8;
reconsider F9 = F9 as Functor of C,E by A1, Lm6;
I * F = ((I -functor (E,(rng I))) * F9) -indexing_of C by A1, Def16;
hence I * F = I * G by A2, A3, Def16; ::_thesis: verum
end;
theorem Th23: :: INDEX_1:23
for C, D being Category
for F being Functor of C,D
for I being Indexing of D
for T being TargetCat of I holds I * F = ((I -functor (D,T)) * F) -indexing_of C
proof
let C, D be Category; ::_thesis: for F being Functor of C,D
for I being Indexing of D
for T being TargetCat of I holds I * F = ((I -functor (D,T)) * F) -indexing_of C
let F be Functor of C,D; ::_thesis: for I being Indexing of D
for T being TargetCat of I holds I * F = ((I -functor (D,T)) * F) -indexing_of C
let I be Indexing of D; ::_thesis: for T being TargetCat of I holds I * F = ((I -functor (D,T)) * F) -indexing_of C
let T be TargetCat of I; ::_thesis: I * F = ((I -functor (D,T)) * F) -indexing_of C
Image F is Subcategory of D ;
then A1: I * F = ((I -functor (D,(rng I))) * F) -indexing_of C by Def16;
(I -functor (D,(rng I))) * F = (I -functor (D,T)) * F by Th11;
hence I * F = ((I -functor (D,T)) * F) -indexing_of C by A1, Th2; ::_thesis: verum
end;
theorem Th24: :: INDEX_1:24
for C, D being Category
for F being Functor of C,D
for I being Indexing of D
for T being TargetCat of I holds T is TargetCat of I * F
proof
let C, D be Category; ::_thesis: for F being Functor of C,D
for I being Indexing of D
for T being TargetCat of I holds T is TargetCat of I * F
let F be Functor of C,D; ::_thesis: for I being Indexing of D
for T being TargetCat of I holds T is TargetCat of I * F
let I be Indexing of D; ::_thesis: for T being TargetCat of I holds T is TargetCat of I * F
let T be TargetCat of I; ::_thesis: T is TargetCat of I * F
set T9 = the TargetCat of I * F;
( rng (I * F) = Image ((I * F) -functor (C, the TargetCat of I * F)) & I * F = ((I -functor (D,T)) * F) -indexing_of C ) by Def12, Th23;
then rng (I * F) = Image ((I -functor (D,T)) * F) by Th18, CAT_5:22;
hence T is TargetCat of I * F by Th14; ::_thesis: verum
end;
theorem :: INDEX_1:25
for C, D being Category
for F being Functor of C,D
for I being Indexing of D
for T being TargetCat of I holds rng (I * F) is Subcategory of T
proof
let C, D be Category; ::_thesis: for F being Functor of C,D
for I being Indexing of D
for T being TargetCat of I holds rng (I * F) is Subcategory of T
let F be Functor of C,D; ::_thesis: for I being Indexing of D
for T being TargetCat of I holds rng (I * F) is Subcategory of T
let I be Indexing of D; ::_thesis: for T being TargetCat of I holds rng (I * F) is Subcategory of T
let T be TargetCat of I; ::_thesis: rng (I * F) is Subcategory of T
T is TargetCat of I * F by Th24;
hence rng (I * F) is Subcategory of T by Th14; ::_thesis: verum
end;
theorem Th26: :: INDEX_1:26
for C, D, E being Category
for F being Functor of C,D
for G being Functor of D,E
for I being Indexing of E holds (I * G) * F = I * (G * F)
proof
let C, D, E be Category; ::_thesis: for F being Functor of C,D
for G being Functor of D,E
for I being Indexing of E holds (I * G) * F = I * (G * F)
let F be Functor of C,D; ::_thesis: for G being Functor of D,E
for I being Indexing of E holds (I * G) * F = I * (G * F)
let G be Functor of D,E; ::_thesis: for I being Indexing of E holds (I * G) * F = I * (G * F)
let I be Indexing of E; ::_thesis: (I * G) * F = I * (G * F)
set T = rng I;
reconsider T9 = rng I as TargetCat of I * G by Th24;
I * G = ((I -functor (E,(rng I))) * G) -indexing_of D by Th23;
then (I * G) -functor (D,T9) = (I -functor (E,(rng I))) * G by Th18;
hence (I * G) * F = (((I -functor (E,(rng I))) * G) * F) -indexing_of C by Th23
.= ((I -functor (E,(rng I))) * (G * F)) -indexing_of C by RELAT_1:36
.= I * (G * F) by Th23 ;
::_thesis: verum
end;
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;
funcF * I -> Indexing of C means :Def17: :: INDEX_1:def 17
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
proof
reconsider T = D as TargetCat of I by A1;
reconsider G = F as Functor of T,E ;
take (G * (I -functor (C,T))) -indexing_of C ; ::_thesis: for T being TargetCat of I
for G being Functor of T,E st T = D & G = F holds
(G * (I -functor (C,T))) -indexing_of C = (G * (I -functor (C,T))) -indexing_of C
thus for T being TargetCat of I
for G being Functor of T,E st T = D & G = F holds
(G * (I -functor (C,T))) -indexing_of C = (G * (I -functor (C,T))) -indexing_of C ; ::_thesis: verum
end;
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
proof
reconsider T = D as TargetCat of I by A1;
reconsider G = F as Functor of T,E ;
let J1, J2 be Indexing of C; ::_thesis: ( ( for T being TargetCat of I
for G being Functor of T,E st T = D & G = F holds
J1 = (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
J2 = (G * (I -functor (C,T))) -indexing_of C ) implies J1 = J2 )
assume A1: ( ( for T being TargetCat of I
for G being Functor of T,E st T = D & G = F holds
J1 = (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
J2 = (G * (I -functor (C,T))) -indexing_of C ) & not J1 = J2 ) ; ::_thesis: contradiction
then J1 = (G * (I -functor (C,T))) -indexing_of C ;
hence contradiction by A1; ::_thesis: verum
end;
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: :: INDEX_1:27
for C being Category
for I being Indexing of C
for T being TargetCat of I
for D, E being Categorial Category
for F being Functor of T,D
for G being Functor of T,E st F = G holds
F * I = G * I
proof
let C be Category; ::_thesis: for I being Indexing of C
for T being TargetCat of I
for D, E being Categorial Category
for F being Functor of T,D
for G being Functor of T,E st F = G holds
F * I = G * I
let I be Indexing of C; ::_thesis: for T being TargetCat of I
for D, E being Categorial Category
for F being Functor of T,D
for G being Functor of T,E st F = G holds
F * I = G * I
let T be TargetCat of I; ::_thesis: for D, E being Categorial Category
for F being Functor of T,D
for G being Functor of T,E st F = G holds
F * I = G * I
let D, E be Categorial Category; ::_thesis: for F being Functor of T,D
for G being Functor of T,E st F = G holds
F * I = G * I
let F be Functor of T,D; ::_thesis: for G being Functor of T,E st F = G holds
F * I = G * I
let G be Functor of T,E; ::_thesis: ( F = G implies F * I = G * I )
assume A1: F = G ; ::_thesis: F * I = G * I
thus F * I = (F * (I -functor (C,T))) -indexing_of C by Def17
.= (G * (I -functor (C,T))) -indexing_of C by A1, Th2
.= G * I by Def17 ; ::_thesis: verum
end;
theorem Th28: :: INDEX_1:28
for C being Category
for I being Indexing of C
for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D holds Image F is TargetCat of F * I
proof
let C be Category; ::_thesis: for I being Indexing of C
for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D holds Image F is TargetCat of F * I
let I be Indexing of C; ::_thesis: for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D holds Image F is TargetCat of F * I
let T be TargetCat of I; ::_thesis: for D being Categorial Category
for F being Functor of T,D holds Image F is TargetCat of F * I
let D be Categorial Category; ::_thesis: for F being Functor of T,D holds Image F is TargetCat of F * I
let F be Functor of T,D; ::_thesis: Image F is TargetCat of F * I
reconsider F9 = F as Functor of T, Image F by CAT_5:8;
set T9 = the TargetCat of F * I;
A1: rng (F * I) = Image ((F * I) -functor (C, the TargetCat of F * I)) by Def12;
F * I = F9 * I by Th27
.= (F9 * (I -functor (C,T))) -indexing_of C by Def17 ;
then rng (F * I) = Image (F9 * (I -functor (C,T))) by A1, Th18, CAT_5:22;
hence Image F is TargetCat of F * I by Th14; ::_thesis: verum
end;
theorem Th29: :: INDEX_1:29
for C being Category
for I being Indexing of C
for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D holds D is TargetCat of F * I
proof
let C be Category; ::_thesis: for I being Indexing of C
for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D holds D is TargetCat of F * I
let I be Indexing of C; ::_thesis: for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D holds D is TargetCat of F * I
let T be TargetCat of I; ::_thesis: for D being Categorial Category
for F being Functor of T,D holds D is TargetCat of F * I
let D be Categorial Category; ::_thesis: for F being Functor of T,D holds D is TargetCat of F * I
let F be Functor of T,D; ::_thesis: D is TargetCat of F * I
Image F is TargetCat of F * I by Th28;
then rng (F * I) is Subcategory of Image F by Th14;
then rng (F * I) is Subcategory of D by CAT_5:4;
hence D is TargetCat of F * I by Th14; ::_thesis: verum
end;
theorem :: INDEX_1:30
for C being Category
for I being Indexing of C
for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D holds rng (F * I) is Subcategory of Image F
proof
let C be Category; ::_thesis: for I being Indexing of C
for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D holds rng (F * I) is Subcategory of Image F
let I be Indexing of C; ::_thesis: for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D holds rng (F * I) is Subcategory of Image F
let T be TargetCat of I; ::_thesis: for D being Categorial Category
for F being Functor of T,D holds rng (F * I) is Subcategory of Image F
let D be Categorial Category; ::_thesis: for F being Functor of T,D holds rng (F * I) is Subcategory of Image F
let F be Functor of T,D; ::_thesis: rng (F * I) is Subcategory of Image F
Image F is TargetCat of F * I by Th28;
hence rng (F * I) is Subcategory of Image F by Th14; ::_thesis: verum
end;
theorem :: INDEX_1:31
for C being Category
for I being Indexing of C
for T being TargetCat of I
for D, E being Categorial Category
for F being Functor of T,D
for G being Functor of D,E holds (G * F) * I = G * (F * I)
proof
let C be Category; ::_thesis: for I being Indexing of C
for T being TargetCat of I
for D, E being Categorial Category
for F being Functor of T,D
for G being Functor of D,E holds (G * F) * I = G * (F * I)
let I be Indexing of C; ::_thesis: for T being TargetCat of I
for D, E being Categorial Category
for F being Functor of T,D
for G being Functor of D,E holds (G * F) * I = G * (F * I)
let T be TargetCat of I; ::_thesis: for D, E being Categorial Category
for F being Functor of T,D
for G being Functor of D,E holds (G * F) * I = G * (F * I)
let D, E be Categorial Category; ::_thesis: for F being Functor of T,D
for G being Functor of D,E holds (G * F) * I = G * (F * I)
let F be Functor of T,D; ::_thesis: for G being Functor of D,E holds (G * F) * I = G * (F * I)
reconsider D9 = D as TargetCat of F * I by Th29;
let G be Functor of D,E; ::_thesis: (G * F) * I = G * (F * I)
reconsider G9 = G as Functor of D9,E ;
F * I = (F * (I -functor (C,T))) -indexing_of C by Def17;
then A1: (F * I) -functor (C,D9) = F * (I -functor (C,T)) by Th18;
thus (G * F) * I = ((G * F) * (I -functor (C,T))) -indexing_of C by Def17
.= (G9 * ((F * I) -functor (C,D9))) -indexing_of C by A1, RELAT_1:36
.= G * (F * I) by Def17 ; ::_thesis: verum
end;
definition
let C, D be Category;
let I1 be Indexing of C;
let I2 be Indexing of D;
funcI2 * I1 -> Indexing of C equals :: INDEX_1:def 18
I2 * (I1 -functor (C,(rng I1)));
correctness
coherence
I2 * (I1 -functor (C,(rng I1))) is Indexing of C;
;
end;
:: 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: :: INDEX_1:32
for C being Category
for D being Categorial Category
for I1 being Indexing of C
for I2 being Indexing of D
for T being TargetCat of I1 st D is TargetCat of I1 holds
I2 * I1 = I2 * (I1 -functor (C,T))
proof
let C be Category; ::_thesis: for D being Categorial Category
for I1 being Indexing of C
for I2 being Indexing of D
for T being TargetCat of I1 st D is TargetCat of I1 holds
I2 * I1 = I2 * (I1 -functor (C,T))
let D be Categorial Category; ::_thesis: for I1 being Indexing of C
for I2 being Indexing of D
for T being TargetCat of I1 st D is TargetCat of I1 holds
I2 * I1 = I2 * (I1 -functor (C,T))
let I1 be Indexing of C; ::_thesis: for I2 being Indexing of D
for T being TargetCat of I1 st D is TargetCat of I1 holds
I2 * I1 = I2 * (I1 -functor (C,T))
let I2 be Indexing of D; ::_thesis: for T being TargetCat of I1 st D is TargetCat of I1 holds
I2 * I1 = I2 * (I1 -functor (C,T))
let T be TargetCat of I1; ::_thesis: ( D is TargetCat of I1 implies I2 * I1 = I2 * (I1 -functor (C,T)) )
assume D is TargetCat of I1 ; ::_thesis: I2 * I1 = I2 * (I1 -functor (C,T))
then reconsider D9 = D as TargetCat of I1 ;
A1: Image (I1 -functor (C,(rng I1))) = rng I1 by Def12;
( Image (I1 -functor (C,D9)) = rng I1 & Image (I1 -functor (C,T)) = rng I1 ) by Def12;
hence I2 * I1 = I2 * (I1 -functor (C,T)) by A1, Th11, Th22; ::_thesis: verum
end;
theorem :: INDEX_1:33
for C being Category
for D being Categorial Category
for I1 being Indexing of C
for I2 being Indexing of D
for T being TargetCat of I2 st D is TargetCat of I1 holds
I2 * I1 = (I2 -functor (D,T)) * I1
proof
let C be Category; ::_thesis: for D being Categorial Category
for I1 being Indexing of C
for I2 being Indexing of D
for T being TargetCat of I2 st D is TargetCat of I1 holds
I2 * I1 = (I2 -functor (D,T)) * I1
let D be Categorial Category; ::_thesis: for I1 being Indexing of C
for I2 being Indexing of D
for T being TargetCat of I2 st D is TargetCat of I1 holds
I2 * I1 = (I2 -functor (D,T)) * I1
let I1 be Indexing of C; ::_thesis: for I2 being Indexing of D
for T being TargetCat of I2 st D is TargetCat of I1 holds
I2 * I1 = (I2 -functor (D,T)) * I1
let I2 be Indexing of D; ::_thesis: for T being TargetCat of I2 st D is TargetCat of I1 holds
I2 * I1 = (I2 -functor (D,T)) * I1
let T be TargetCat of I2; ::_thesis: ( D is TargetCat of I1 implies I2 * I1 = (I2 -functor (D,T)) * I1 )
assume D is TargetCat of I1 ; ::_thesis: I2 * I1 = (I2 -functor (D,T)) * I1
then reconsider D9 = D as TargetCat of I1 ;
reconsider I29 = I2 as Indexing of D9 ;
reconsider T9 = T as TargetCat of I29 ;
( Image (I1 -functor (C,D9)) = rng I1 & Image (I1 -functor (C,(rng I1))) = rng I1 ) by Def12;
hence I2 * I1 = I2 * (I1 -functor (C,D9)) by Th11, Th22
.= ((I29 -functor (D9,T9)) * (I1 -functor (C,D9))) -indexing_of C by Th23
.= (I2 -functor (D,T)) * I1 by Def17 ;
::_thesis: verum
end;
theorem Th34: :: INDEX_1:34
for C, D being Category
for F being Functor of C,D
for I being Indexing of D
for T being TargetCat of I
for E being Categorial Category
for G being Functor of T,E holds (G * I) * F = G * (I * F)
proof
let C, D be Category; ::_thesis: for F being Functor of C,D
for I being Indexing of D
for T being TargetCat of I
for E being Categorial Category
for G being Functor of T,E holds (G * I) * F = G * (I * F)
let F be Functor of C,D; ::_thesis: for I being Indexing of D
for T being TargetCat of I
for E being Categorial Category
for G being Functor of T,E holds (G * I) * F = G * (I * F)
let I be Indexing of D; ::_thesis: for T being TargetCat of I
for E being Categorial Category
for G being Functor of T,E holds (G * I) * F = G * (I * F)
let T be TargetCat of I; ::_thesis: for E being Categorial Category
for G being Functor of T,E holds (G * I) * F = G * (I * F)
reconsider T9 = T as TargetCat of I * F by Th24;
let E be Categorial Category; ::_thesis: for G being Functor of T,E holds (G * I) * F = G * (I * F)
let G be Functor of T,E; ::_thesis: (G * I) * F = G * (I * F)
reconsider G9 = G as Functor of T9,E ;
reconsider GI = rng (G * I) as TargetCat of (G * (I -functor (D,T))) -indexing_of D by Def17;
A1: I * F = ((I -functor (D,T)) * F) -indexing_of C by Th23;
A2: ((G * (I -functor (D,T))) -indexing_of D) -functor (D,GI) = G * (I -functor (D,T)) by Th18;
( G * I = (G * (I -functor (D,T))) -indexing_of D & Image F is Subcategory of D ) by Def17;
hence (G * I) * F = ((((G * (I -functor (D,T))) -indexing_of D) -functor (D,GI)) * F) -indexing_of C by Def16
.= ((G * (I -functor (D,T))) * F) -indexing_of C by A2, Th2
.= (G * ((I -functor (D,T)) * F)) -indexing_of C by RELAT_1:36
.= (G9 * ((I * F) -functor (C,T9))) -indexing_of C by A1, Th18
.= G * (I * F) by Def17 ;
::_thesis: verum
end;
theorem :: INDEX_1:35
for C being Category
for I being Indexing of C
for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D
for J being Indexing of D holds (J * F) * I = J * (F * I)
proof
let C be Category; ::_thesis: for I being Indexing of C
for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D
for J being Indexing of D holds (J * F) * I = J * (F * I)
let I be Indexing of C; ::_thesis: for T being TargetCat of I
for D being Categorial Category
for F being Functor of T,D
for J being Indexing of D holds (J * F) * I = J * (F * I)
let T be TargetCat of I; ::_thesis: for D being Categorial Category
for F being Functor of T,D
for J being Indexing of D holds (J * F) * I = J * (F * I)
let D be Categorial Category; ::_thesis: for F being Functor of T,D
for J being Indexing of D holds (J * F) * I = J * (F * I)
let F be Functor of T,D; ::_thesis: for J being Indexing of D holds (J * F) * I = J * (F * I)
let J be Indexing of D; ::_thesis: (J * F) * I = J * (F * I)
A1: ( F * I = (F * (I -functor (C,T))) -indexing_of C & Image (F * (I -functor (C,T))) is Subcategory of D ) by Def17;
D is TargetCat of F * I by Th29;
then rng (F * I) is Subcategory of D by Th14;
then A2: Image ((F * I) -functor (C,(rng (F * I)))) is Subcategory of D by CAT_5:4;
thus (J * F) * I = (J * F) * (I -functor (C,T)) by Th32
.= J * (F * (I -functor (C,T))) by Th26
.= J * (F * I) by A1, A2, Th18, Th22 ; ::_thesis: verum
end;
theorem :: INDEX_1:36
for C being Category
for I being Indexing of C
for T1 being TargetCat of I
for J being Indexing of T1
for T2 being TargetCat of J
for D being Categorial Category
for F being Functor of T2,D holds (F * J) * I = F * (J * I)
proof
let C be Category; ::_thesis: for I being Indexing of C
for T1 being TargetCat of I
for J being Indexing of T1
for T2 being TargetCat of J
for D being Categorial Category
for F being Functor of T2,D holds (F * J) * I = F * (J * I)
let I be Indexing of C; ::_thesis: for T1 being TargetCat of I
for J being Indexing of T1
for T2 being TargetCat of J
for D being Categorial Category
for F being Functor of T2,D holds (F * J) * I = F * (J * I)
let T1 be TargetCat of I; ::_thesis: for J being Indexing of T1
for T2 being TargetCat of J
for D being Categorial Category
for F being Functor of T2,D holds (F * J) * I = F * (J * I)
let J be Indexing of T1; ::_thesis: for T2 being TargetCat of J
for D being Categorial Category
for F being Functor of T2,D holds (F * J) * I = F * (J * I)
let T2 be TargetCat of J; ::_thesis: for D being Categorial Category
for F being Functor of T2,D holds (F * J) * I = F * (J * I)
let D be Categorial Category; ::_thesis: for F being Functor of T2,D holds (F * J) * I = F * (J * I)
let F be Functor of T2,D; ::_thesis: (F * J) * I = F * (J * I)
thus (F * J) * I = (F * J) * (I -functor (C,T1)) by Th32
.= F * (J * (I -functor (C,T1))) by Th34
.= F * (J * I) by Th32 ; ::_thesis: verum
end;
theorem Th37: :: INDEX_1:37
for C, D being Category
for F being Functor of C,D
for I being Indexing of D
for T being TargetCat of I
for J being Indexing of T holds (J * I) * F = J * (I * F)
proof
let C, D be Category; ::_thesis: for F being Functor of C,D
for I being Indexing of D
for T being TargetCat of I
for J being Indexing of T holds (J * I) * F = J * (I * F)
let F be Functor of C,D; ::_thesis: for I being Indexing of D
for T being TargetCat of I
for J being Indexing of T holds (J * I) * F = J * (I * F)
let I be Indexing of D; ::_thesis: for T being TargetCat of I
for J being Indexing of T holds (J * I) * F = J * (I * F)
let T be TargetCat of I; ::_thesis: for J being Indexing of T holds (J * I) * F = J * (I * F)
let J be Indexing of T; ::_thesis: (J * I) * F = J * (I * F)
A1: ( I * F = ((I -functor (D,T)) * F) -indexing_of C & Image ((I -functor (D,T)) * F) is Subcategory of T ) by Th23;
T is TargetCat of I * F by Th24;
then rng (I * F) is Subcategory of T by Th14;
then A2: Image ((I * F) -functor (C,(rng (I * F)))) is Subcategory of T by CAT_5:4;
thus (J * I) * F = (J * (I -functor (D,T))) * F by Th32
.= J * ((I -functor (D,T)) * F) by Th26
.= J * (I * F) by A1, A2, Th18, Th22 ; ::_thesis: verum
end;
theorem :: INDEX_1:38
for C being Category
for I being Indexing of C
for D being TargetCat of I
for J being Indexing of D
for E being TargetCat of J
for K being Indexing of E holds (K * J) * I = K * (J * I)
proof
let C be Category; ::_thesis: for I being Indexing of C
for D being TargetCat of I
for J being Indexing of D
for E being TargetCat of J
for K being Indexing of E holds (K * J) * I = K * (J * I)
let I be Indexing of C; ::_thesis: for D being TargetCat of I
for J being Indexing of D
for E being TargetCat of J
for K being Indexing of E holds (K * J) * I = K * (J * I)
let D be TargetCat of I; ::_thesis: for J being Indexing of D
for E being TargetCat of J
for K being Indexing of E holds (K * J) * I = K * (J * I)
let J be Indexing of D; ::_thesis: for E being TargetCat of J
for K being Indexing of E holds (K * J) * I = K * (J * I)
let E be TargetCat of J; ::_thesis: for K being Indexing of E holds (K * J) * I = K * (J * I)
let K be Indexing of E; ::_thesis: (K * J) * I = K * (J * I)
thus (K * J) * I = (K * J) * (I -functor (C,D)) by Th32
.= K * (J * (I -functor (C,D))) by Th37
.= K * (J * I) by Th32 ; ::_thesis: verum
end;
theorem :: INDEX_1:39
for C being Category holds IdMap C = IdMap (C opp) by Lm2;