:: FUNCTOR2 semantic presentation
begin
registration
let A be non empty transitive with_units AltCatStr ;
let B be non empty with_units AltCatStr ;
cluster -> feasible id-preserving for Functor of A,B;
coherence
for b1 being Functor of A,B holds
( b1 is feasible & b1 is id-preserving ) by FUNCTOR0:def_25;
end;
registration
let A be non empty transitive with_units AltCatStr ;
let B be non empty with_units AltCatStr ;
cluster covariant -> Covariant comp-preserving for Functor of A,B;
coherence
for b1 being Functor of A,B st b1 is covariant holds
( b1 is Covariant & b1 is comp-preserving ) by FUNCTOR0:def_26;
cluster Covariant comp-preserving -> covariant for Functor of A,B;
coherence
for b1 being Functor of A,B st b1 is Covariant & b1 is comp-preserving holds
b1 is covariant by FUNCTOR0:def_26;
cluster contravariant -> Contravariant comp-reversing for Functor of A,B;
coherence
for b1 being Functor of A,B st b1 is contravariant holds
( b1 is Contravariant & b1 is comp-reversing ) by FUNCTOR0:def_27;
cluster Contravariant comp-reversing -> contravariant for Functor of A,B;
coherence
for b1 being Functor of A,B st b1 is Contravariant & b1 is comp-reversing holds
b1 is contravariant by FUNCTOR0:def_27;
end;
theorem Th1: :: FUNCTOR2:1
for A, B being non empty transitive with_units AltCatStr
for F being covariant Functor of A,B
for a being object of A holds F . (idm a) = idm (F . a)
proof
let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being covariant Functor of A,B
for a being object of A holds F . (idm a) = idm (F . a)
let F be covariant Functor of A,B; ::_thesis: for a being object of A holds F . (idm a) = idm (F . a)
let a be object of A; ::_thesis: F . (idm a) = idm (F . a)
( <^a,a^> <> {} & <^(F . a),(F . a)^> <> {} ) by ALTCAT_2:def_7;
hence F . (idm a) = (Morph-Map (F,a,a)) . (idm a) by FUNCTOR0:def_15
.= idm (F . a) by FUNCTOR0:def_20 ;
::_thesis: verum
end;
begin
definition
let A, B be non empty transitive with_units AltCatStr ;
let F1, F2 be Functor of A,B;
predF1 is_transformable_to F2 means :Def1: :: FUNCTOR2:def 1
for a being object of A holds <^(F1 . a),(F2 . a)^> <> {} ;
reflexivity
for F1 being Functor of A,B
for a being object of A holds <^(F1 . a),(F1 . a)^> <> {} by ALTCAT_2:def_7;
end;
:: deftheorem Def1 defines is_transformable_to FUNCTOR2:def_1_:_
for A, B being non empty transitive with_units AltCatStr
for F1, F2 being Functor of A,B holds
( F1 is_transformable_to F2 iff for a being object of A holds <^(F1 . a),(F2 . a)^> <> {} );
theorem Th2: :: FUNCTOR2:2
for A, B being non empty transitive with_units AltCatStr
for F, F1, F2 being Functor of A,B st F is_transformable_to F1 & F1 is_transformable_to F2 holds
F is_transformable_to F2
proof
let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F, F1, F2 being Functor of A,B st F is_transformable_to F1 & F1 is_transformable_to F2 holds
F is_transformable_to F2
let F, F1, F2 be Functor of A,B; ::_thesis: ( F is_transformable_to F1 & F1 is_transformable_to F2 implies F is_transformable_to F2 )
assume A1: ( F is_transformable_to F1 & F1 is_transformable_to F2 ) ; ::_thesis: F is_transformable_to F2
let a be object of A; :: according to FUNCTOR2:def_1 ::_thesis: <^(F . a),(F2 . a)^> <> {}
( <^(F . a),(F1 . a)^> <> {} & <^(F1 . a),(F2 . a)^> <> {} ) by A1, Def1;
hence <^(F . a),(F2 . a)^> <> {} by ALTCAT_1:def_2; ::_thesis: verum
end;
definition
let A, B be non empty transitive with_units AltCatStr ;
let F1, F2 be Functor of A,B;
assume A1: F1 is_transformable_to F2 ;
mode transformation of F1,F2 -> ManySortedSet of the carrier of A means :Def2: :: FUNCTOR2:def 2
for a being object of A holds it . a is Morphism of (F1 . a),(F2 . a);
existence
ex b1 being ManySortedSet of the carrier of A st
for a being object of A holds b1 . a is Morphism of (F1 . a),(F2 . a)
proof
defpred S1[ object of A, set ] means $2 in <^(F1 . $1),(F2 . $1)^>;
A2: for a being Element of A ex j being set st S1[a,j]
proof
let a be Element of A; ::_thesis: ex j being set st S1[a,j]
reconsider o = a as object of A ;
<^(F1 . o),(F2 . o)^> <> {} by A1, Def1;
hence ex j being set st S1[a,j] by XBOOLE_0:def_1; ::_thesis: verum
end;
consider t being ManySortedSet of the carrier of A such that
A3: for a being Element of A holds S1[a,t . a] from PBOOLE:sch_6(A2);
take t ; ::_thesis: for a being object of A holds t . a is Morphism of (F1 . a),(F2 . a)
thus for a being object of A holds t . a is Morphism of (F1 . a),(F2 . a) by A3; ::_thesis: verum
end;
end;
:: deftheorem Def2 defines transformation FUNCTOR2:def_2_:_
for A, B being non empty transitive with_units AltCatStr
for F1, F2 being Functor of A,B st F1 is_transformable_to F2 holds
for b5 being ManySortedSet of the carrier of A holds
( b5 is transformation of F1,F2 iff for a being object of A holds b5 . a is Morphism of (F1 . a),(F2 . a) );
definition
let A, B be non empty transitive with_units AltCatStr ;
let F be Functor of A,B;
func idt F -> transformation of F,F means :Def3: :: FUNCTOR2:def 3
for a being object of A holds it . a = idm (F . a);
existence
ex b1 being transformation of F,F st
for a being object of A holds b1 . a = idm (F . a)
proof
defpred S1[ object of A, set ] means $2 = idm (F . $1);
A1: for a being Element of A ex j being set st S1[a,j] ;
consider t being ManySortedSet of the carrier of A such that
A2: for a being Element of A holds S1[a,t . a] from PBOOLE:sch_6(A1);
for a being object of A holds t . a is Morphism of (F . a),(F . a)
proof
let a be Element of A; ::_thesis: t . a is Morphism of (F . a),(F . a)
S1[a,t . a] by A2;
hence t . a is Morphism of (F . a),(F . a) ; ::_thesis: verum
end;
then t is transformation of F,F by Def2;
hence ex b1 being transformation of F,F st
for a being object of A holds b1 . a = idm (F . a) by A2; ::_thesis: verum
end;
uniqueness
for b1, b2 being transformation of F,F st ( for a being object of A holds b1 . a = idm (F . a) ) & ( for a being object of A holds b2 . a = idm (F . a) ) holds
b1 = b2
proof
let it1, it2 be transformation of F,F; ::_thesis: ( ( for a being object of A holds it1 . a = idm (F . a) ) & ( for a being object of A holds it2 . a = idm (F . a) ) implies it1 = it2 )
assume that
A3: for a being object of A holds it1 . a = idm (F . a) and
A4: for a being object of A holds it2 . a = idm (F . a) ; ::_thesis: it1 = it2
now__::_thesis:_for_a_being_set_st_a_in_the_carrier_of_A_holds_
it1_._a_=_it2_._a
let a be set ; ::_thesis: ( a in the carrier of A implies it1 . a = it2 . a )
assume a in the carrier of A ; ::_thesis: it1 . a = it2 . a
then reconsider o = a as object of A ;
thus it1 . a = idm (F . o) by A3
.= it2 . a by A4 ; ::_thesis: verum
end;
hence it1 = it2 by PBOOLE:3; ::_thesis: verum
end;
end;
:: deftheorem Def3 defines idt FUNCTOR2:def_3_:_
for A, B being non empty transitive with_units AltCatStr
for F being Functor of A,B
for b4 being transformation of F,F holds
( b4 = idt F iff for a being object of A holds b4 . a = idm (F . a) );
definition
let A, B be non empty transitive with_units AltCatStr ;
let F1, F2 be Functor of A,B;
assume A1: F1 is_transformable_to F2 ;
let t be transformation of F1,F2;
let a be object of A;
funct ! a -> Morphism of (F1 . a),(F2 . a) means :Def4: :: FUNCTOR2:def 4
it = t . a;
existence
ex b1 being Morphism of (F1 . a),(F2 . a) st b1 = t . a
proof
t . a is Morphism of (F1 . a),(F2 . a) by A1, Def2;
hence ex b1 being Morphism of (F1 . a),(F2 . a) st b1 = t . a ; ::_thesis: verum
end;
correctness
uniqueness
for b1, b2 being Morphism of (F1 . a),(F2 . a) st b1 = t . a & b2 = t . a holds
b1 = b2;
;
end;
:: deftheorem Def4 defines ! FUNCTOR2:def_4_:_
for A, B being non empty transitive with_units AltCatStr
for F1, F2 being Functor of A,B st F1 is_transformable_to F2 holds
for t being transformation of F1,F2
for a being object of A
for b7 being Morphism of (F1 . a),(F2 . a) holds
( b7 = t ! a iff b7 = t . a );
definition
let A, B be non empty transitive with_units AltCatStr ;
let F, F1, F2 be Functor of A,B;
assume A1: ( F is_transformable_to F1 & F1 is_transformable_to F2 ) ;
let t1 be transformation of F,F1;
let t2 be transformation of F1,F2;
funct2 `*` t1 -> transformation of F,F2 means :Def5: :: FUNCTOR2:def 5
for a being object of A holds it ! a = (t2 ! a) * (t1 ! a);
existence
ex b1 being transformation of F,F2 st
for a being object of A holds b1 ! a = (t2 ! a) * (t1 ! a)
proof
defpred S1[ object of A, set ] means $2 = (t2 ! $1) * (t1 ! $1);
A2: for a being Element of A ex j being set st S1[a,j] ;
consider t being ManySortedSet of the carrier of A such that
A3: for a being Element of A holds S1[a,t . a] from PBOOLE:sch_6(A2);
A4: F is_transformable_to F2 by A1, Th2;
for a being object of A holds t . a is Morphism of (F . a),(F2 . a)
proof
let o be Element of A; ::_thesis: t . o is Morphism of (F . o),(F2 . o)
S1[o,t . o] by A3;
hence t . o is Morphism of (F . o),(F2 . o) ; ::_thesis: verum
end;
then reconsider t9 = t as transformation of F,F2 by A4, Def2;
take t9 ; ::_thesis: for a being object of A holds t9 ! a = (t2 ! a) * (t1 ! a)
let a be Element of A; ::_thesis: t9 ! a = (t2 ! a) * (t1 ! a)
S1[a,t . a] by A3;
hence t9 ! a = (t2 ! a) * (t1 ! a) by A4, Def4; ::_thesis: verum
end;
uniqueness
for b1, b2 being transformation of F,F2 st ( for a being object of A holds b1 ! a = (t2 ! a) * (t1 ! a) ) & ( for a being object of A holds b2 ! a = (t2 ! a) * (t1 ! a) ) holds
b1 = b2
proof
let it1, it2 be transformation of F,F2; ::_thesis: ( ( for a being object of A holds it1 ! a = (t2 ! a) * (t1 ! a) ) & ( for a being object of A holds it2 ! a = (t2 ! a) * (t1 ! a) ) implies it1 = it2 )
assume that
A5: for a being object of A holds it1 ! a = (t2 ! a) * (t1 ! a) and
A6: for a being object of A holds it2 ! a = (t2 ! a) * (t1 ! a) ; ::_thesis: it1 = it2
A7: F is_transformable_to F2 by A1, Th2;
now__::_thesis:_for_a_being_set_st_a_in_the_carrier_of_A_holds_
it1_._a_=_it2_._a
let a be set ; ::_thesis: ( a in the carrier of A implies it1 . a = it2 . a )
assume a in the carrier of A ; ::_thesis: it1 . a = it2 . a
then reconsider o = a as object of A ;
thus it1 . a = it1 ! o by A7, Def4
.= (t2 ! o) * (t1 ! o) by A5
.= it2 ! o by A6
.= it2 . a by A7, Def4 ; ::_thesis: verum
end;
hence it1 = it2 by PBOOLE:3; ::_thesis: verum
end;
end;
:: deftheorem Def5 defines `*` FUNCTOR2:def_5_:_
for A, B being non empty transitive with_units AltCatStr
for F, F1, F2 being Functor of A,B st F is_transformable_to F1 & F1 is_transformable_to F2 holds
for t1 being transformation of F,F1
for t2 being transformation of F1,F2
for b8 being transformation of F,F2 holds
( b8 = t2 `*` t1 iff for a being object of A holds b8 ! a = (t2 ! a) * (t1 ! a) );
theorem Th3: :: FUNCTOR2:3
for A, B being non empty transitive with_units AltCatStr
for F1, F2 being Functor of A,B st F1 is_transformable_to F2 holds
for t1, t2 being transformation of F1,F2 st ( for a being object of A holds t1 ! a = t2 ! a ) holds
t1 = t2
proof
let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F1, F2 being Functor of A,B st F1 is_transformable_to F2 holds
for t1, t2 being transformation of F1,F2 st ( for a being object of A holds t1 ! a = t2 ! a ) holds
t1 = t2
let F1, F2 be Functor of A,B; ::_thesis: ( F1 is_transformable_to F2 implies for t1, t2 being transformation of F1,F2 st ( for a being object of A holds t1 ! a = t2 ! a ) holds
t1 = t2 )
assume A1: F1 is_transformable_to F2 ; ::_thesis: for t1, t2 being transformation of F1,F2 st ( for a being object of A holds t1 ! a = t2 ! a ) holds
t1 = t2
let t1, t2 be transformation of F1,F2; ::_thesis: ( ( for a being object of A holds t1 ! a = t2 ! a ) implies t1 = t2 )
assume A2: for a being object of A holds t1 ! a = t2 ! a ; ::_thesis: t1 = t2
now__::_thesis:_for_a_being_set_st_a_in_the_carrier_of_A_holds_
t1_._a_=_t2_._a
let a be set ; ::_thesis: ( a in the carrier of A implies t1 . a = t2 . a )
assume a in the carrier of A ; ::_thesis: t1 . a = t2 . a
then reconsider o = a as object of A ;
thus t1 . a = t1 ! o by A1, Def4
.= t2 ! o by A2
.= t2 . a by A1, Def4 ; ::_thesis: verum
end;
hence t1 = t2 by PBOOLE:3; ::_thesis: verum
end;
theorem Th4: :: FUNCTOR2:4
for A, B being non empty transitive with_units AltCatStr
for F being Functor of A,B
for a being object of A holds (idt F) ! a = idm (F . a)
proof
let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being Functor of A,B
for a being object of A holds (idt F) ! a = idm (F . a)
let F be Functor of A,B; ::_thesis: for a being object of A holds (idt F) ! a = idm (F . a)
let a be object of A; ::_thesis: (idt F) ! a = idm (F . a)
thus (idt F) ! a = (idt F) . a by Def4
.= idm (F . a) by Def3 ; ::_thesis: verum
end;
theorem Th5: :: FUNCTOR2:5
for A, B being non empty transitive with_units AltCatStr
for F1, F2 being Functor of A,B st F1 is_transformable_to F2 holds
for t being transformation of F1,F2 holds
( (idt F2) `*` t = t & t `*` (idt F1) = t )
proof
let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F1, F2 being Functor of A,B st F1 is_transformable_to F2 holds
for t being transformation of F1,F2 holds
( (idt F2) `*` t = t & t `*` (idt F1) = t )
let F1, F2 be Functor of A,B; ::_thesis: ( F1 is_transformable_to F2 implies for t being transformation of F1,F2 holds
( (idt F2) `*` t = t & t `*` (idt F1) = t ) )
assume A1: F1 is_transformable_to F2 ; ::_thesis: for t being transformation of F1,F2 holds
( (idt F2) `*` t = t & t `*` (idt F1) = t )
let t be transformation of F1,F2; ::_thesis: ( (idt F2) `*` t = t & t `*` (idt F1) = t )
now__::_thesis:_for_a_being_object_of_A_holds_((idt_F2)_`*`_t)_!_a_=_t_!_a
let a be object of A; ::_thesis: ((idt F2) `*` t) ! a = t ! a
A2: <^(F1 . a),(F2 . a)^> <> {} by A1, Def1;
thus ((idt F2) `*` t) ! a = ((idt F2) ! a) * (t ! a) by A1, Def5
.= (idm (F2 . a)) * (t ! a) by Th4
.= t ! a by A2, ALTCAT_1:20 ; ::_thesis: verum
end;
hence (idt F2) `*` t = t by A1, Th3; ::_thesis: t `*` (idt F1) = t
now__::_thesis:_for_a_being_object_of_A_holds_(t_`*`_(idt_F1))_!_a_=_t_!_a
let a be object of A; ::_thesis: (t `*` (idt F1)) ! a = t ! a
A3: <^(F1 . a),(F2 . a)^> <> {} by A1, Def1;
thus (t `*` (idt F1)) ! a = (t ! a) * ((idt F1) ! a) by A1, Def5
.= (t ! a) * (idm (F1 . a)) by Th4
.= t ! a by A3, ALTCAT_1:def_17 ; ::_thesis: verum
end;
hence t `*` (idt F1) = t by A1, Th3; ::_thesis: verum
end;
theorem Th6: :: FUNCTOR2:6
for A, B being category
for F, F1, F2, F3 being Functor of A,B st F is_transformable_to F1 & F1 is_transformable_to F2 & F2 is_transformable_to F3 holds
for t1 being transformation of F,F1
for t2 being transformation of F1,F2
for t3 being transformation of F2,F3 holds (t3 `*` t2) `*` t1 = t3 `*` (t2 `*` t1)
proof
let A, B be category; ::_thesis: for F, F1, F2, F3 being Functor of A,B st F is_transformable_to F1 & F1 is_transformable_to F2 & F2 is_transformable_to F3 holds
for t1 being transformation of F,F1
for t2 being transformation of F1,F2
for t3 being transformation of F2,F3 holds (t3 `*` t2) `*` t1 = t3 `*` (t2 `*` t1)
let F, F1, F2, F3 be Functor of A,B; ::_thesis: ( F is_transformable_to F1 & F1 is_transformable_to F2 & F2 is_transformable_to F3 implies for t1 being transformation of F,F1
for t2 being transformation of F1,F2
for t3 being transformation of F2,F3 holds (t3 `*` t2) `*` t1 = t3 `*` (t2 `*` t1) )
assume that
A1: F is_transformable_to F1 and
A2: F1 is_transformable_to F2 and
A3: F2 is_transformable_to F3 ; ::_thesis: for t1 being transformation of F,F1
for t2 being transformation of F1,F2
for t3 being transformation of F2,F3 holds (t3 `*` t2) `*` t1 = t3 `*` (t2 `*` t1)
let t1 be transformation of F,F1; ::_thesis: for t2 being transformation of F1,F2
for t3 being transformation of F2,F3 holds (t3 `*` t2) `*` t1 = t3 `*` (t2 `*` t1)
let t2 be transformation of F1,F2; ::_thesis: for t3 being transformation of F2,F3 holds (t3 `*` t2) `*` t1 = t3 `*` (t2 `*` t1)
let t3 be transformation of F2,F3; ::_thesis: (t3 `*` t2) `*` t1 = t3 `*` (t2 `*` t1)
A4: F1 is_transformable_to F3 by A2, A3, Th2;
A5: F is_transformable_to F2 by A1, A2, Th2;
now__::_thesis:_for_a_being_object_of_A_holds_((t3_`*`_t2)_`*`_t1)_!_a_=_(t3_`*`_(t2_`*`_t1))_!_a
let a be object of A; ::_thesis: ((t3 `*` t2) `*` t1) ! a = (t3 `*` (t2 `*` t1)) ! a
A6: <^(F2 . a),(F3 . a)^> <> {} by A3, Def1;
A7: ( <^(F . a),(F1 . a)^> <> {} & <^(F1 . a),(F2 . a)^> <> {} ) by A1, A2, Def1;
thus ((t3 `*` t2) `*` t1) ! a = ((t3 `*` t2) ! a) * (t1 ! a) by A1, A4, Def5
.= ((t3 ! a) * (t2 ! a)) * (t1 ! a) by A2, A3, Def5
.= (t3 ! a) * ((t2 ! a) * (t1 ! a)) by A7, A6, ALTCAT_1:21
.= (t3 ! a) * ((t2 `*` t1) ! a) by A1, A2, Def5
.= (t3 `*` (t2 `*` t1)) ! a by A3, A5, Def5 ; ::_thesis: verum
end;
hence (t3 `*` t2) `*` t1 = t3 `*` (t2 `*` t1) by A1, A4, Th2, Th3; ::_thesis: verum
end;
begin
Lm1: for A, B being non empty transitive with_units AltCatStr
for F, G being covariant Functor of A,B
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((idt F) ! b) * (F . f) = (F . f) * ((idt F) ! a)
proof
let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F, G being covariant Functor of A,B
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((idt F) ! b) * (F . f) = (F . f) * ((idt F) ! a)
let F, G be covariant Functor of A,B; ::_thesis: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((idt F) ! b) * (F . f) = (F . f) * ((idt F) ! a)
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds ((idt F) ! b) * (F . f) = (F . f) * ((idt F) ! a) )
assume A1: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds ((idt F) ! b) * (F . f) = (F . f) * ((idt F) ! a)
let f be Morphism of a,b; ::_thesis: ((idt F) ! b) * (F . f) = (F . f) * ((idt F) ! a)
A2: <^a,a^> <> {} by ALTCAT_2:def_7;
A3: <^b,b^> <> {} by ALTCAT_2:def_7;
thus ((idt F) ! b) * (F . f) = (idm (F . b)) * (F . f) by Th4
.= (F . (idm b)) * (F . f) by Th1
.= F . ((idm b) * f) by A1, A3, FUNCTOR0:def_23
.= F . f by A1, ALTCAT_1:20
.= F . (f * (idm a)) by A1, ALTCAT_1:def_17
.= (F . f) * (F . (idm a)) by A1, A2, FUNCTOR0:def_23
.= (F . f) * (idm (F . a)) by Th1
.= (F . f) * ((idt F) ! a) by Th4 ; ::_thesis: verum
end;
definition
let A, B be non empty transitive with_units AltCatStr ;
let F1, F2 be covariant Functor of A,B;
predF1 is_naturally_transformable_to F2 means :Def6: :: FUNCTOR2:def 6
( F1 is_transformable_to F2 & ex t being transformation of F1,F2 st
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t ! b) * (F1 . f) = (F2 . f) * (t ! a) );
reflexivity
for F1 being covariant Functor of A,B holds
( F1 is_transformable_to F1 & ex t being transformation of F1,F1 st
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t ! b) * (F1 . f) = (F1 . f) * (t ! a) )
proof
let F be covariant Functor of A,B; ::_thesis: ( F is_transformable_to F & ex t being transformation of F,F st
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t ! b) * (F . f) = (F . f) * (t ! a) )
thus F is_transformable_to F ; ::_thesis: ex t being transformation of F,F st
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t ! b) * (F . f) = (F . f) * (t ! a)
take idt F ; ::_thesis: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((idt F) ! b) * (F . f) = (F . f) * ((idt F) ! a)
thus for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((idt F) ! b) * (F . f) = (F . f) * ((idt F) ! a) by Lm1; ::_thesis: verum
end;
end;
:: deftheorem Def6 defines is_naturally_transformable_to FUNCTOR2:def_6_:_
for A, B being non empty transitive with_units AltCatStr
for F1, F2 being covariant Functor of A,B holds
( F1 is_naturally_transformable_to F2 iff ( F1 is_transformable_to F2 & ex t being transformation of F1,F2 st
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t ! b) * (F1 . f) = (F2 . f) * (t ! a) ) );
theorem :: FUNCTOR2:7
for A, B being non empty transitive with_units AltCatStr
for F being covariant Functor of A,B holds F is_naturally_transformable_to F ;
Lm2: for A, B being category
for F, F1, F2 being covariant Functor of A,B st F is_transformable_to F1 & F1 is_transformable_to F2 holds
for t1 being transformation of F,F1 st ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t1 ! b) * (F . f) = (F1 . f) * (t1 ! a) ) holds
for t2 being transformation of F1,F2 st ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t2 ! b) * (F1 . f) = (F2 . f) * (t2 ! a) ) holds
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a)
proof
let A, B be category; ::_thesis: for F, F1, F2 being covariant Functor of A,B st F is_transformable_to F1 & F1 is_transformable_to F2 holds
for t1 being transformation of F,F1 st ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t1 ! b) * (F . f) = (F1 . f) * (t1 ! a) ) holds
for t2 being transformation of F1,F2 st ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t2 ! b) * (F1 . f) = (F2 . f) * (t2 ! a) ) holds
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a)
let F, F1, F2 be covariant Functor of A,B; ::_thesis: ( F is_transformable_to F1 & F1 is_transformable_to F2 implies for t1 being transformation of F,F1 st ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t1 ! b) * (F . f) = (F1 . f) * (t1 ! a) ) holds
for t2 being transformation of F1,F2 st ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t2 ! b) * (F1 . f) = (F2 . f) * (t2 ! a) ) holds
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a) )
assume that
A1: F is_transformable_to F1 and
A2: F1 is_transformable_to F2 ; ::_thesis: for t1 being transformation of F,F1 st ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t1 ! b) * (F . f) = (F1 . f) * (t1 ! a) ) holds
for t2 being transformation of F1,F2 st ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t2 ! b) * (F1 . f) = (F2 . f) * (t2 ! a) ) holds
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a)
let t1 be transformation of F,F1; ::_thesis: ( ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t1 ! b) * (F . f) = (F1 . f) * (t1 ! a) ) implies for t2 being transformation of F1,F2 st ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t2 ! b) * (F1 . f) = (F2 . f) * (t2 ! a) ) holds
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a) )
assume A3: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t1 ! b) * (F . f) = (F1 . f) * (t1 ! a) ; ::_thesis: for t2 being transformation of F1,F2 st ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t2 ! b) * (F1 . f) = (F2 . f) * (t2 ! a) ) holds
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a)
let t2 be transformation of F1,F2; ::_thesis: ( ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t2 ! b) * (F1 . f) = (F2 . f) * (t2 ! a) ) implies for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a) )
assume A4: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t2 ! b) * (F1 . f) = (F2 . f) * (t2 ! a) ; ::_thesis: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a)
let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a) )
A5: <^(F . b),(F1 . b)^> <> {} by A1, Def1;
A6: <^(F . a),(F1 . a)^> <> {} by A1, Def1;
A7: <^(F1 . b),(F2 . b)^> <> {} by A2, Def1;
A8: <^(F1 . a),(F2 . a)^> <> {} by A2, Def1;
assume A9: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a)
then A10: <^(F . a),(F . b)^> <> {} by FUNCTOR0:def_18;
let f be Morphism of a,b; ::_thesis: ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a)
A11: <^(F2 . a),(F2 . b)^> <> {} by A9, FUNCTOR0:def_18;
A12: <^(F1 . a),(F1 . b)^> <> {} by A9, FUNCTOR0:def_18;
thus ((t2 `*` t1) ! b) * (F . f) = ((t2 ! b) * (t1 ! b)) * (F . f) by A1, A2, Def5
.= (t2 ! b) * ((t1 ! b) * (F . f)) by A10, A5, A7, ALTCAT_1:21
.= (t2 ! b) * ((F1 . f) * (t1 ! a)) by A3, A9
.= ((t2 ! b) * (F1 . f)) * (t1 ! a) by A6, A7, A12, ALTCAT_1:21
.= ((F2 . f) * (t2 ! a)) * (t1 ! a) by A4, A9
.= (F2 . f) * ((t2 ! a) * (t1 ! a)) by A6, A8, A11, ALTCAT_1:21
.= (F2 . f) * ((t2 `*` t1) ! a) by A1, A2, Def5 ; ::_thesis: verum
end;
theorem Th8: :: FUNCTOR2:8
for A, B being category
for F, F1, F2 being covariant Functor of A,B st F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 holds
F is_naturally_transformable_to F2
proof
let A, B be category; ::_thesis: for F, F1, F2 being covariant Functor of A,B st F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 holds
F is_naturally_transformable_to F2
let F, F1, F2 be covariant Functor of A,B; ::_thesis: ( F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 implies F is_naturally_transformable_to F2 )
assume A1: F is_transformable_to F1 ; :: according to FUNCTOR2:def_6 ::_thesis: ( for t being transformation of F,F1 ex a, b being object of A st
( <^a,b^> <> {} & not for f being Morphism of a,b holds (t ! b) * (F . f) = (F1 . f) * (t ! a) ) or not F1 is_naturally_transformable_to F2 or F is_naturally_transformable_to F2 )
given t1 being transformation of F,F1 such that A2: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t1 ! b) * (F . f) = (F1 . f) * (t1 ! a) ; ::_thesis: ( not F1 is_naturally_transformable_to F2 or F is_naturally_transformable_to F2 )
assume A3: F1 is_transformable_to F2 ; :: according to FUNCTOR2:def_6 ::_thesis: ( for t being transformation of F1,F2 ex a, b being object of A st
( <^a,b^> <> {} & not for f being Morphism of a,b holds (t ! b) * (F1 . f) = (F2 . f) * (t ! a) ) or F is_naturally_transformable_to F2 )
given t2 being transformation of F1,F2 such that A4: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t2 ! b) * (F1 . f) = (F2 . f) * (t2 ! a) ; ::_thesis: F is_naturally_transformable_to F2
thus F is_transformable_to F2 by A1, A3, Th2; :: according to FUNCTOR2:def_6 ::_thesis: ex t being transformation of F,F2 st
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t ! b) * (F . f) = (F2 . f) * (t ! a)
take t2 `*` t1 ; ::_thesis: for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a)
thus for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a) by A1, A2, A3, A4, Lm2; ::_thesis: verum
end;
definition
let A, B be non empty transitive with_units AltCatStr ;
let F1, F2 be covariant Functor of A,B;
assume A1: F1 is_naturally_transformable_to F2 ;
mode natural_transformation of F1,F2 -> transformation of F1,F2 means :Def7: :: FUNCTOR2:def 7
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (it ! b) * (F1 . f) = (F2 . f) * (it ! a);
existence
ex b1 being transformation of F1,F2 st
for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (b1 ! b) * (F1 . f) = (F2 . f) * (b1 ! a) by A1, Def6;
end;
:: deftheorem Def7 defines natural_transformation FUNCTOR2:def_7_:_
for A, B being non empty transitive with_units AltCatStr
for F1, F2 being covariant Functor of A,B st F1 is_naturally_transformable_to F2 holds
for b5 being transformation of F1,F2 holds
( b5 is natural_transformation of F1,F2 iff for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (b5 ! b) * (F1 . f) = (F2 . f) * (b5 ! a) );
definition
let A, B be non empty transitive with_units AltCatStr ;
let F be covariant Functor of A,B;
:: original: idt
redefine func idt F -> natural_transformation of F,F;
coherence
idt F is natural_transformation of F,F
proof
( F is_naturally_transformable_to F & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((idt F) ! b) * (F . f) = (F . f) * ((idt F) ! a) ) ) by Lm1;
hence idt F is natural_transformation of F,F by Def7; ::_thesis: verum
end;
end;
definition
let A, B be category;
let F, F1, F2 be covariant Functor of A,B;
assume B1: ( F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 ) ;
let t1 be natural_transformation of F,F1;
let t2 be natural_transformation of F1,F2;
funct2 `*` t1 -> natural_transformation of F,F2 means :Def8: :: FUNCTOR2:def 8
it = t2 `*` t1;
existence
ex b1 being natural_transformation of F,F2 st b1 = t2 `*` t1
proof
A1: F is_naturally_transformable_to F2 by B1, Th8;
A2: ( ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t1 ! b) * (F . f) = (F1 . f) * (t1 ! a) ) & ( for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (t2 ! b) * (F1 . f) = (F2 . f) * (t2 ! a) ) ) by B1, Def7;
( F is_transformable_to F1 & F1 is_transformable_to F2 ) by B1, Def6;
then for a, b being object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) ! b) * (F . f) = (F2 . f) * ((t2 `*` t1) ! a) by A2, Lm2;
then t2 `*` t1 is natural_transformation of F,F2 by A1, Def7;
hence ex b1 being natural_transformation of F,F2 st b1 = t2 `*` t1 ; ::_thesis: verum
end;
correctness
uniqueness
for b1, b2 being natural_transformation of F,F2 st b1 = t2 `*` t1 & b2 = t2 `*` t1 holds
b1 = b2;
;
end;
:: deftheorem Def8 defines `*` FUNCTOR2:def_8_:_
for A, B being category
for F, F1, F2 being covariant Functor of A,B st F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 holds
for t1 being natural_transformation of F,F1
for t2 being natural_transformation of F1,F2
for b8 being natural_transformation of F,F2 holds
( b8 = t2 `*` t1 iff b8 = t2 `*` t1 );
theorem :: FUNCTOR2:9
for A, B being non empty transitive with_units AltCatStr
for F1, F2 being covariant Functor of A,B st F1 is_naturally_transformable_to F2 holds
for t being natural_transformation of F1,F2 holds
( (idt F2) `*` t = t & t `*` (idt F1) = t )
proof
let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F1, F2 being covariant Functor of A,B st F1 is_naturally_transformable_to F2 holds
for t being natural_transformation of F1,F2 holds
( (idt F2) `*` t = t & t `*` (idt F1) = t )
let F1, F2 be covariant Functor of A,B; ::_thesis: ( F1 is_naturally_transformable_to F2 implies for t being natural_transformation of F1,F2 holds
( (idt F2) `*` t = t & t `*` (idt F1) = t ) )
assume F1 is_naturally_transformable_to F2 ; ::_thesis: for t being natural_transformation of F1,F2 holds
( (idt F2) `*` t = t & t `*` (idt F1) = t )
then A1: F1 is_transformable_to F2 by Def6;
let t be natural_transformation of F1,F2; ::_thesis: ( (idt F2) `*` t = t & t `*` (idt F1) = t )
thus (idt F2) `*` t = t by A1, Th5; ::_thesis: t `*` (idt F1) = t
thus t `*` (idt F1) = t by A1, Th5; ::_thesis: verum
end;
theorem :: FUNCTOR2:10
for A, B being non empty transitive with_units AltCatStr
for F, F1, F2 being covariant Functor of A,B st F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 holds
for t1 being natural_transformation of F,F1
for t2 being natural_transformation of F1,F2
for a being object of A holds (t2 `*` t1) ! a = (t2 ! a) * (t1 ! a)
proof
let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F, F1, F2 being covariant Functor of A,B st F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 holds
for t1 being natural_transformation of F,F1
for t2 being natural_transformation of F1,F2
for a being object of A holds (t2 `*` t1) ! a = (t2 ! a) * (t1 ! a)
let F, F1, F2 be covariant Functor of A,B; ::_thesis: ( F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 implies for t1 being natural_transformation of F,F1
for t2 being natural_transformation of F1,F2
for a being object of A holds (t2 `*` t1) ! a = (t2 ! a) * (t1 ! a) )
assume A1: ( F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 ) ; ::_thesis: for t1 being natural_transformation of F,F1
for t2 being natural_transformation of F1,F2
for a being object of A holds (t2 `*` t1) ! a = (t2 ! a) * (t1 ! a)
let t1 be natural_transformation of F,F1; ::_thesis: for t2 being natural_transformation of F1,F2
for a being object of A holds (t2 `*` t1) ! a = (t2 ! a) * (t1 ! a)
let t2 be natural_transformation of F1,F2; ::_thesis: for a being object of A holds (t2 `*` t1) ! a = (t2 ! a) * (t1 ! a)
let a be object of A; ::_thesis: (t2 `*` t1) ! a = (t2 ! a) * (t1 ! a)
( F is_transformable_to F1 & F1 is_transformable_to F2 ) by A1, Def6;
hence (t2 `*` t1) ! a = (t2 ! a) * (t1 ! a) by Def5; ::_thesis: verum
end;
theorem :: FUNCTOR2:11
for A, B being category
for F, F1, F2, F3 being covariant Functor of A,B
for t being natural_transformation of F,F1
for t1 being natural_transformation of F1,F2 st F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 & F2 is_naturally_transformable_to F3 holds
for t3 being natural_transformation of F2,F3 holds (t3 `*` t1) `*` t = t3 `*` (t1 `*` t)
proof
let A, B be category; ::_thesis: for F, F1, F2, F3 being covariant Functor of A,B
for t being natural_transformation of F,F1
for t1 being natural_transformation of F1,F2 st F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 & F2 is_naturally_transformable_to F3 holds
for t3 being natural_transformation of F2,F3 holds (t3 `*` t1) `*` t = t3 `*` (t1 `*` t)
let F, F1, F2, F3 be covariant Functor of A,B; ::_thesis: for t being natural_transformation of F,F1
for t1 being natural_transformation of F1,F2 st F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 & F2 is_naturally_transformable_to F3 holds
for t3 being natural_transformation of F2,F3 holds (t3 `*` t1) `*` t = t3 `*` (t1 `*` t)
let t be natural_transformation of F,F1; ::_thesis: for t1 being natural_transformation of F1,F2 st F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 & F2 is_naturally_transformable_to F3 holds
for t3 being natural_transformation of F2,F3 holds (t3 `*` t1) `*` t = t3 `*` (t1 `*` t)
let t1 be natural_transformation of F1,F2; ::_thesis: ( F is_naturally_transformable_to F1 & F1 is_naturally_transformable_to F2 & F2 is_naturally_transformable_to F3 implies for t3 being natural_transformation of F2,F3 holds (t3 `*` t1) `*` t = t3 `*` (t1 `*` t) )
assume that
A1: F is_naturally_transformable_to F1 and
A2: F1 is_naturally_transformable_to F2 and
A3: F2 is_naturally_transformable_to F3 ; ::_thesis: for t3 being natural_transformation of F2,F3 holds (t3 `*` t1) `*` t = t3 `*` (t1 `*` t)
A4: F is_naturally_transformable_to F2 by A1, A2, Th8;
let t3 be natural_transformation of F2,F3; ::_thesis: (t3 `*` t1) `*` t = t3 `*` (t1 `*` t)
A5: F2 is_transformable_to F3 by A3, Def6;
A6: ( F is_transformable_to F1 & F1 is_transformable_to F2 ) by A1, A2, Def6;
F1 is_naturally_transformable_to F3 by A2, A3, Th8;
hence (t3 `*` t1) `*` t = (t3 `*` t1) `*` t by A1, Def8
.= (t3 `*` t1) `*` t by A2, A3, Def8
.= t3 `*` (t1 `*` t) by A6, A5, Th6
.= t3 `*` (t1 `*` t) by A1, A2, Def8
.= t3 `*` (t1 `*` t) by A3, A4, Def8 ;
::_thesis: verum
end;
begin
definition
let I be set ;
let A, B be ManySortedSet of I;
func Funcs (A,B) -> set means :Def9: :: FUNCTOR2:def 9
for x being set holds
( x in it iff x is ManySortedFunction of A,B ) if for i being set st i in I & B . i = {} holds
A . i = {}
otherwise it = {} ;
existence
( ( ( for i being set st i in I & B . i = {} holds
A . i = {} ) implies ex b1 being set st
for x being set holds
( x in b1 iff x is ManySortedFunction of A,B ) ) & ( ex i being set st
( i in I & B . i = {} & not A . i = {} ) implies ex b1 being set st b1 = {} ) )
proof
thus ( ( for i being set st i in I & B . i = {} holds
A . i = {} ) implies ex IT being set st
for x being set holds
( x in IT iff x is ManySortedFunction of A,B ) ) ::_thesis: ( ex i being set st
( i in I & B . i = {} & not A . i = {} ) implies ex b1 being set st b1 = {} )
proof
deffunc H1( set ) -> set = Funcs ((A . $1),(B . $1));
assume A1: for i being set st i in I & B . i = {} holds
A . i = {} ; ::_thesis: ex IT being set st
for x being set holds
( x in IT iff x is ManySortedFunction of A,B )
consider F being ManySortedSet of I such that
A2: for i being set st i in I holds
F . i = H1(i) from PBOOLE:sch_4();
take product F ; ::_thesis: for x being set holds
( x in product F iff x is ManySortedFunction of A,B )
let x be set ; ::_thesis: ( x in product F iff x is ManySortedFunction of A,B )
thus ( x in product F implies x is ManySortedFunction of A,B ) ::_thesis: ( x is ManySortedFunction of A,B implies x in product F )
proof
assume x in product F ; ::_thesis: x is ManySortedFunction of A,B
then consider g being Function such that
A3: x = g and
A4: dom g = dom F and
A5: for i being set st i in dom F holds
g . i in F . i by CARD_3:def_5;
A6: for i being set st i in I holds
g . i is Function of (A . i),(B . i)
proof
let i be set ; ::_thesis: ( i in I implies g . i is Function of (A . i),(B . i) )
assume A7: i in I ; ::_thesis: g . i is Function of (A . i),(B . i)
( dom F = I & F . i = Funcs ((A . i),(B . i)) ) by A2, A7, PARTFUN1:def_2;
hence g . i is Function of (A . i),(B . i) by A5, A7, FUNCT_2:66; ::_thesis: verum
end;
dom F = I by PARTFUN1:def_2;
then reconsider g = g as ManySortedSet of I by A4, PARTFUN1:def_2, RELAT_1:def_18;
g is ManySortedFunction of A,B by A6, PBOOLE:def_15;
hence x is ManySortedFunction of A,B by A3; ::_thesis: verum
end;
assume A8: x is ManySortedFunction of A,B ; ::_thesis: x in product F
then reconsider g = x as ManySortedSet of I ;
A9: for i being set st i in I holds
g . i in Funcs ((A . i),(B . i))
proof
let i be set ; ::_thesis: ( i in I implies g . i in Funcs ((A . i),(B . i)) )
assume A10: i in I ; ::_thesis: g . i in Funcs ((A . i),(B . i))
then A11: ( B . i = {} implies A . i = {} ) by A1;
g . i is Function of (A . i),(B . i) by A8, A10, PBOOLE:def_15;
hence g . i in Funcs ((A . i),(B . i)) by A11, FUNCT_2:8; ::_thesis: verum
end;
A12: for i being set st i in I holds
g . i in F . i
proof
let i be set ; ::_thesis: ( i in I implies g . i in F . i )
assume A13: i in I ; ::_thesis: g . i in F . i
then F . i = Funcs ((A . i),(B . i)) by A2;
hence g . i in F . i by A9, A13; ::_thesis: verum
end;
A14: for i being set st i in dom F holds
g . i in F . i
proof
A15: dom F = I by PARTFUN1:def_2;
let i be set ; ::_thesis: ( i in dom F implies g . i in F . i )
assume i in dom F ; ::_thesis: g . i in F . i
hence g . i in F . i by A12, A15; ::_thesis: verum
end;
dom g = I by PARTFUN1:def_2;
then dom g = dom F by PARTFUN1:def_2;
hence x in product F by A14, CARD_3:def_5; ::_thesis: verum
end;
thus ( ex i being set st
( i in I & B . i = {} & not A . i = {} ) implies ex b1 being set st b1 = {} ) ; ::_thesis: verum
end;
uniqueness
for b1, b2 being set holds
( ( ( for i being set st i in I & B . i = {} holds
A . i = {} ) & ( for x being set holds
( x in b1 iff x is ManySortedFunction of A,B ) ) & ( for x being set holds
( x in b2 iff x is ManySortedFunction of A,B ) ) implies b1 = b2 ) & ( ex i being set st
( i in I & B . i = {} & not A . i = {} ) & b1 = {} & b2 = {} implies b1 = b2 ) )
proof
let it1, it2 be set ; ::_thesis: ( ( ( for i being set st i in I & B . i = {} holds
A . i = {} ) & ( for x being set holds
( x in it1 iff x is ManySortedFunction of A,B ) ) & ( for x being set holds
( x in it2 iff x is ManySortedFunction of A,B ) ) implies it1 = it2 ) & ( ex i being set st
( i in I & B . i = {} & not A . i = {} ) & it1 = {} & it2 = {} implies it1 = it2 ) )
hereby ::_thesis: ( ex i being set st
( i in I & B . i = {} & not A . i = {} ) & it1 = {} & it2 = {} implies it1 = it2 )
assume for i being set st i in I & B . i = {} holds
A . i = {} ; ::_thesis: ( ( for x being set holds
( x in it1 iff x is ManySortedFunction of A,B ) ) & ( for x being set holds
( x in it2 iff x is ManySortedFunction of A,B ) ) implies it1 = it2 )
assume that
A16: for x being set holds
( x in it1 iff x is ManySortedFunction of A,B ) and
A17: for x being set holds
( x in it2 iff x is ManySortedFunction of A,B ) ; ::_thesis: it1 = it2
now__::_thesis:_for_x_being_set_holds_
(_x_in_it1_iff_x_in_it2_)
let x be set ; ::_thesis: ( x in it1 iff x in it2 )
( x in it1 iff x is ManySortedFunction of A,B ) by A16;
hence ( x in it1 iff x in it2 ) by A17; ::_thesis: verum
end;
hence it1 = it2 by TARSKI:1; ::_thesis: verum
end;
thus ( ex i being set st
( i in I & B . i = {} & not A . i = {} ) & it1 = {} & it2 = {} implies it1 = it2 ) ; ::_thesis: verum
end;
consistency
for b1 being set holds verum ;
end;
:: deftheorem Def9 defines Funcs FUNCTOR2:def_9_:_
for I being set
for A, B being ManySortedSet of I
for b4 being set holds
( ( ( for i being set st i in I & B . i = {} holds
A . i = {} ) implies ( b4 = Funcs (A,B) iff for x being set holds
( x in b4 iff x is ManySortedFunction of A,B ) ) ) & ( ex i being set st
( i in I & B . i = {} & not A . i = {} ) implies ( b4 = Funcs (A,B) iff b4 = {} ) ) );
definition
let A, B be non empty transitive with_units AltCatStr ;
func Funct (A,B) -> set means :Def10: :: FUNCTOR2:def 10
for x being set holds
( x in it iff x is strict covariant Functor of A,B );
existence
ex b1 being set st
for x being set holds
( x in b1 iff x is strict covariant Functor of A,B )
proof
set A9 = Funcs ([: the carrier of A, the carrier of A:],[: the carrier of B, the carrier of B:]);
set sAA = { ( the Arrows of B * f) where f is Element of Funcs ([: the carrier of A, the carrier of A:],[: the carrier of B, the carrier of B:]) : verum } ;
set f = the Element of Funcs ([: the carrier of A, the carrier of A:],[: the carrier of B, the carrier of B:]);
the Arrows of B * the Element of Funcs ([: the carrier of A, the carrier of A:],[: the carrier of B, the carrier of B:]) in { ( the Arrows of B * f) where f is Element of Funcs ([: the carrier of A, the carrier of A:],[: the carrier of B, the carrier of B:]) : verum } ;
then reconsider sAA = { ( the Arrows of B * f) where f is Element of Funcs ([: the carrier of A, the carrier of A:],[: the carrier of B, the carrier of B:]) : verum } as non empty set ;
defpred S1[ set , set ] means ex f being Covariant bifunction of the carrier of A, the carrier of B ex m being MSUnTrans of f, the Arrows of A, the Arrows of B st
( $1 = [f,m] & $2 = FunctorStr(# f,m #) & $2 is covariant Functor of A,B );
defpred S2[ set , set ] means ex AA being ManySortedSet of [: the carrier of A, the carrier of A:] st
( $1 = AA & $2 = Funcs ( the Arrows of A,AA) );
A1: for x, y, z being set st S2[x,y] & S2[x,z] holds
y = z ;
consider XX being set such that
A2: for x being set holds
( x in XX iff ex y being set st
( y in sAA & S2[y,x] ) ) from TARSKI:sch_1(A1);
A3: for x, y, z being set st S1[x,y] & S1[x,z] holds
y = z
proof
let x, y, z be set ; ::_thesis: ( S1[x,y] & S1[x,z] implies y = z )
given f being Covariant bifunction of the carrier of A, the carrier of B, m being MSUnTrans of f, the Arrows of A, the Arrows of B such that A4: x = [f,m] and
A5: y = FunctorStr(# f,m #) and
y is covariant Functor of A,B ; ::_thesis: ( not S1[x,z] or y = z )
given f1 being Covariant bifunction of the carrier of A, the carrier of B, m1 being MSUnTrans of f1, the Arrows of A, the Arrows of B such that A6: x = [f1,m1] and
A7: z = FunctorStr(# f1,m1 #) and
z is covariant Functor of A,B ; ::_thesis: y = z
f = f1 by A4, A6, XTUPLE_0:1;
hence y = z by A4, A5, A6, A7, XTUPLE_0:1; ::_thesis: verum
end;
consider X being set such that
A8: for x being set holds
( x in X iff ex y being set st
( y in [:(Funcs ([: the carrier of A, the carrier of A:],[: the carrier of B, the carrier of B:])),(union XX):] & S1[y,x] ) ) from TARSKI:sch_1(A3);
take X ; ::_thesis: for x being set holds
( x in X iff x is strict covariant Functor of A,B )
let x be set ; ::_thesis: ( x in X iff x is strict covariant Functor of A,B )
thus ( x in X implies x is strict covariant Functor of A,B ) ::_thesis: ( x is strict covariant Functor of A,B implies x in X )
proof
assume x in X ; ::_thesis: x is strict covariant Functor of A,B
then ex y being set st
( y in [:(Funcs ([: the carrier of A, the carrier of A:],[: the carrier of B, the carrier of B:])),(union XX):] & ex f being Covariant bifunction of the carrier of A, the carrier of B ex m being MSUnTrans of f, the Arrows of A, the Arrows of B st
( y = [f,m] & x = FunctorStr(# f,m #) & x is covariant Functor of A,B ) ) by A8;
hence x is strict covariant Functor of A,B ; ::_thesis: verum
end;
assume x is strict covariant Functor of A,B ; ::_thesis: x in X
then reconsider F = x as strict covariant Functor of A,B ;
reconsider f = the ObjectMap of F as Covariant bifunction of the carrier of A, the carrier of B by FUNCTOR0:def_12;
reconsider m = the MorphMap of F as MSUnTrans of f, the Arrows of A, the Arrows of B ;
reconsider y = [f,m] as set ;
A9: for o1, o2 being object of A st the Arrows of A . (o1,o2) <> {} holds
the Arrows of B . (f . (o1,o2)) <> {}
proof
let o1, o2 be object of A; ::_thesis: ( the Arrows of A . (o1,o2) <> {} implies the Arrows of B . (f . (o1,o2)) <> {} )
assume A10: the Arrows of A . (o1,o2) <> {} ; ::_thesis: the Arrows of B . (f . (o1,o2)) <> {}
the Arrows of A . (o1,o2) = <^o1,o2^> ;
hence the Arrows of B . (f . (o1,o2)) <> {} by A10, FUNCTOR0:def_11; ::_thesis: verum
end;
A11: for o1, o2 being object of A st the Arrows of A . (o1,o2) <> {} holds
the Arrows of B . [(F . o1),(F . o2)] <> {}
proof
let o1, o2 be object of A; ::_thesis: ( the Arrows of A . (o1,o2) <> {} implies the Arrows of B . [(F . o1),(F . o2)] <> {} )
assume A12: the Arrows of A . (o1,o2) <> {} ; ::_thesis: the Arrows of B . [(F . o1),(F . o2)] <> {}
f . (o1,o2) = [(F . o1),(F . o2)] by FUNCTOR0:22;
hence the Arrows of B . [(F . o1),(F . o2)] <> {} by A9, A12; ::_thesis: verum
end;
y in [:(Funcs ([: the carrier of A, the carrier of A:],[: the carrier of B, the carrier of B:])),(union XX):]
proof
set I = [: the carrier of A, the carrier of A:];
reconsider AA = the Arrows of B * f as ManySortedSet of [: the carrier of A, the carrier of A:] ;
A13: for i being set st i in [: the carrier of A, the carrier of A:] & the Arrows of A . i <> {} holds
the Arrows of B . (f . i) <> {}
proof
let i be set ; ::_thesis: ( i in [: the carrier of A, the carrier of A:] & the Arrows of A . i <> {} implies the Arrows of B . (f . i) <> {} )
assume that
A14: i in [: the carrier of A, the carrier of A:] and
A15: the Arrows of A . i <> {} ; ::_thesis: the Arrows of B . (f . i) <> {}
consider o1, o2 being set such that
A16: ( o1 in the carrier of A & o2 in the carrier of A ) and
A17: i = [o1,o2] by A14, ZFMISC_1:def_2;
reconsider a1 = o1, a2 = o2 as object of A by A16;
A18: the Arrows of B . (f . i) = the Arrows of B . (f . (o1,o2)) by A17
.= the Arrows of B . [(F . a1),(F . a2)] by FUNCTOR0:22 ;
the Arrows of A . (o1,o2) <> {} by A15, A17;
hence the Arrows of B . (f . i) <> {} by A11, A18; ::_thesis: verum
end;
for i being set st i in [: the carrier of A, the carrier of A:] & the Arrows of A . i <> {} holds
AA . i <> {}
proof
let i be set ; ::_thesis: ( i in [: the carrier of A, the carrier of A:] & the Arrows of A . i <> {} implies AA . i <> {} )
assume A19: i in [: the carrier of A, the carrier of A:] ; ::_thesis: ( not the Arrows of A . i <> {} or AA . i <> {} )
assume A20: the Arrows of A . i <> {} ; ::_thesis: AA . i <> {}
AA . i = the Arrows of B . (f . i) by A19, FUNCT_2:15;
hence AA . i <> {} by A13, A19, A20; ::_thesis: verum
end;
then ( m is ManySortedFunction of the Arrows of A,AA & ( for i being set st i in [: the carrier of A, the carrier of A:] & AA . i = {} holds
the Arrows of A . i = {} ) ) by FUNCTOR0:def_4;
then A21: m in Funcs ( the Arrows of A,AA) by Def9;
A22: f in Funcs ([: the carrier of A, the carrier of A:],[: the carrier of B, the carrier of B:]) by FUNCT_2:8;
then the Arrows of B * f in sAA ;
then Funcs ( the Arrows of A,AA) in XX by A2;
then m in union XX by A21, TARSKI:def_4;
hence y in [:(Funcs ([: the carrier of A, the carrier of A:],[: the carrier of B, the carrier of B:])),(union XX):] by A22, ZFMISC_1:def_2; ::_thesis: verum
end;
hence x in X by A8; ::_thesis: verum
end;
uniqueness
for b1, b2 being set st ( for x being set holds
( x in b1 iff x is strict covariant Functor of A,B ) ) & ( for x being set holds
( x in b2 iff x is strict covariant Functor of A,B ) ) holds
b1 = b2
proof
let it1, it2 be set ; ::_thesis: ( ( for x being set holds
( x in it1 iff x is strict covariant Functor of A,B ) ) & ( for x being set holds
( x in it2 iff x is strict covariant Functor of A,B ) ) implies it1 = it2 )
assume that
A23: for x being set holds
( x in it1 iff x is strict covariant Functor of A,B ) and
A24: for x being set holds
( x in it2 iff x is strict covariant Functor of A,B ) ; ::_thesis: it1 = it2
now__::_thesis:_for_x_being_set_holds_
(_x_in_it1_iff_x_in_it2_)
let x be set ; ::_thesis: ( x in it1 iff x in it2 )
( x in it1 iff x is strict covariant Functor of A,B ) by A23;
hence ( x in it1 iff x in it2 ) by A24; ::_thesis: verum
end;
hence it1 = it2 by TARSKI:1; ::_thesis: verum
end;
end;
:: deftheorem Def10 defines Funct FUNCTOR2:def_10_:_
for A, B being non empty transitive with_units AltCatStr
for b3 being set holds
( b3 = Funct (A,B) iff for x being set holds
( x in b3 iff x is strict covariant Functor of A,B ) );
definition
let A, B be category;
func Functors (A,B) -> non empty transitive strict AltCatStr means :: FUNCTOR2:def 11
( the carrier of it = Funct (A,B) & ( for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of it . (F,G) iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) ) & ( for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of it . (F,G,H) & f . (t2,t1) = t2 `*` t1 ) ) );
existence
ex b1 being non empty transitive strict AltCatStr st
( the carrier of b1 = Funct (A,B) & ( for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of b1 . (F,G) iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) ) & ( for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of b1 . (F,G,H) & f . (t2,t1) = t2 `*` t1 ) ) )
proof
defpred S1[ set , set , set ] means for f, g, h being strict covariant Functor of A,B st [f,g,h] = $3 holds
for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h st [t2,t1] = $2 & ex v being Function st v . $2 = $1 holds
$1 = t2 `*` t1;
defpred S2[ set , set ] means for f, g being strict covariant Functor of A,B st [f,g] = $1 holds
for x being set holds
( x in $2 iff ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) );
A1: for i being set st i in [:(Funct (A,B)),(Funct (A,B)):] holds
ex j being set st S2[i,j]
proof
let i be set ; ::_thesis: ( i in [:(Funct (A,B)),(Funct (A,B)):] implies ex j being set st S2[i,j] )
assume i in [:(Funct (A,B)),(Funct (A,B)):] ; ::_thesis: ex j being set st S2[i,j]
then consider f, g being set such that
A2: ( f in Funct (A,B) & g in Funct (A,B) ) and
A3: i = [f,g] by ZFMISC_1:def_2;
reconsider f = f, g = g as strict covariant Functor of A,B by A2, Def10;
defpred S3[ object of A, set ] means $2 = <^(f . $1),(g . $1)^>;
defpred S4[ set ] means ( f is_naturally_transformable_to g & $1 is natural_transformation of f,g );
A4: for a being Element of A ex j being set st S3[a,j] ;
consider N being ManySortedSet of the carrier of A such that
A5: for a being Element of A holds S3[a,N . a] from PBOOLE:sch_6(A4);
consider j being set such that
A6: for x being set holds
( x in j iff ( x in product N & S4[x] ) ) from XBOOLE_0:sch_1();
take j ; ::_thesis: S2[i,j]
let f9, g9 be strict covariant Functor of A,B; ::_thesis: ( [f9,g9] = i implies for x being set holds
( x in j iff ( f9 is_naturally_transformable_to g9 & x is natural_transformation of f9,g9 ) ) )
assume A7: [f9,g9] = i ; ::_thesis: for x being set holds
( x in j iff ( f9 is_naturally_transformable_to g9 & x is natural_transformation of f9,g9 ) )
let x be set ; ::_thesis: ( x in j iff ( f9 is_naturally_transformable_to g9 & x is natural_transformation of f9,g9 ) )
thus ( x in j implies ( f9 is_naturally_transformable_to g9 & x is natural_transformation of f9,g9 ) ) ::_thesis: ( f9 is_naturally_transformable_to g9 & x is natural_transformation of f9,g9 implies x in j )
proof
assume A8: x in j ; ::_thesis: ( f9 is_naturally_transformable_to g9 & x is natural_transformation of f9,g9 )
( f9 = f & g9 = g ) by A3, A7, XTUPLE_0:1;
hence ( f9 is_naturally_transformable_to g9 & x is natural_transformation of f9,g9 ) by A6, A8; ::_thesis: verum
end;
thus ( f9 is_naturally_transformable_to g9 & x is natural_transformation of f9,g9 implies x in j ) ::_thesis: verum
proof
A9: ( f9 = f & g9 = g ) by A3, A7, XTUPLE_0:1;
set I = the carrier of A;
assume that
A10: f9 is_naturally_transformable_to g9 and
A11: x is natural_transformation of f9,g9 ; ::_thesis: x in j
reconsider h = x as ManySortedSet of the carrier of A by A11;
A12: f9 is_transformable_to g9 by A10, Def6;
A13: for i9 being set st i9 in the carrier of A holds
h . i9 in N . i9
proof
let i9 be set ; ::_thesis: ( i9 in the carrier of A implies h . i9 in N . i9 )
assume i9 in the carrier of A ; ::_thesis: h . i9 in N . i9
then reconsider i9 = i9 as Element of A ;
A14: S3[i9,N . i9] by A5;
( <^(f . i9),(g . i9)^> <> {} & h . i9 is Element of <^(f . i9),(g . i9)^> ) by A11, A12, A9, Def1, Def2;
hence h . i9 in N . i9 by A14; ::_thesis: verum
end;
A15: for i9 being set st i9 in dom N holds
h . i9 in N . i9
proof
A16: dom N = the carrier of A by PARTFUN1:def_2;
let i9 be set ; ::_thesis: ( i9 in dom N implies h . i9 in N . i9 )
assume i9 in dom N ; ::_thesis: h . i9 in N . i9
hence h . i9 in N . i9 by A13, A16; ::_thesis: verum
end;
dom h = the carrier of A by PARTFUN1:def_2;
then dom h = dom N by PARTFUN1:def_2;
then x in product N by A15, CARD_3:9;
hence x in j by A6, A10, A11, A9; ::_thesis: verum
end;
end;
consider a being ManySortedSet of [:(Funct (A,B)),(Funct (A,B)):] such that
A17: for i being set st i in [:(Funct (A,B)),(Funct (A,B)):] holds
S2[i,a . i] from PBOOLE:sch_3(A1);
A18: for o being set st o in [:(Funct (A,B)),(Funct (A,B)),(Funct (A,B)):] holds
for x being set st x in {|a,a|} . o holds
ex y being set st
( y in {|a|} . o & S1[y,x,o] )
proof
let o be set ; ::_thesis: ( o in [:(Funct (A,B)),(Funct (A,B)),(Funct (A,B)):] implies for x being set st x in {|a,a|} . o holds
ex y being set st
( y in {|a|} . o & S1[y,x,o] ) )
assume o in [:(Funct (A,B)),(Funct (A,B)),(Funct (A,B)):] ; ::_thesis: for x being set st x in {|a,a|} . o holds
ex y being set st
( y in {|a|} . o & S1[y,x,o] )
then o in [:[:(Funct (A,B)),(Funct (A,B)):],(Funct (A,B)):] by ZFMISC_1:def_3;
then consider ff, h being set such that
A19: ff in [:(Funct (A,B)),(Funct (A,B)):] and
A20: h in Funct (A,B) and
A21: o = [ff,h] by ZFMISC_1:def_2;
consider f, g being set such that
A22: ( f in Funct (A,B) & g in Funct (A,B) ) and
A23: ff = [f,g] by A19, ZFMISC_1:def_2;
A24: o = [f,g,h] by A21, A23;
reconsider T = Funct (A,B) as non empty set by A20;
reconsider i = f, j = g, k = h as Element of T by A20, A22;
A25: {|a|} . [i,j,k] = {|a|} . (i,j,k) by MULTOP_1:def_1
.= a . (i,k) by ALTCAT_1:def_3 ;
A26: {|a,a|} . [i,j,k] = {|a,a|} . (i,j,k) by MULTOP_1:def_1
.= [:(a . (j,k)),(a . (i,j)):] by ALTCAT_1:def_4 ;
for x being set st x in {|a,a|} . o holds
ex y being set st
( y in {|a|} . o & S1[y,x,o] )
proof
reconsider i9 = i, j9 = j, k9 = k as strict covariant Functor of A,B by Def10;
let x be set ; ::_thesis: ( x in {|a,a|} . o implies ex y being set st
( y in {|a|} . o & S1[y,x,o] ) )
A27: [i9,k9] in [:(Funct (A,B)),(Funct (A,B)):] by ZFMISC_1:def_2;
assume x in {|a,a|} . o ; ::_thesis: ex y being set st
( y in {|a|} . o & S1[y,x,o] )
then consider x2, x1 being set such that
A28: x2 in a . (j,k) and
A29: x1 in a . (i,j) and
A30: x = [x2,x1] by A24, A26, ZFMISC_1:def_2;
A31: x2 in a . [j,k] by A28;
then A32: j9 is_naturally_transformable_to k9 by A17;
reconsider x2 = x2 as natural_transformation of j9,k9 by A17, A31;
A33: x1 in a . [i,j] by A29;
then reconsider x1 = x1 as natural_transformation of i9,j9 by A17;
reconsider vv = x2 `*` x1 as natural_transformation of i9,k9 ;
A34: for f, g, h being strict covariant Functor of A,B st [f,g,h] = o holds
for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h st [t2,t1] = x & ex v being Function st v . x = vv holds
vv = t2 `*` t1
proof
let f, g, h be strict covariant Functor of A,B; ::_thesis: ( [f,g,h] = o implies for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h st [t2,t1] = x & ex v being Function st v . x = vv holds
vv = t2 `*` t1 )
assume A35: [f,g,h] = o ; ::_thesis: for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h st [t2,t1] = x & ex v being Function st v . x = vv holds
vv = t2 `*` t1
A36: j9 = g by A24, A35, XTUPLE_0:3;
then reconsider x2 = x2 as natural_transformation of g,h by A24, A35, XTUPLE_0:3;
A37: ( i9 = f & k9 = h ) by A24, A35, XTUPLE_0:3;
let t1 be natural_transformation of f,g; ::_thesis: for t2 being natural_transformation of g,h st [t2,t1] = x & ex v being Function st v . x = vv holds
vv = t2 `*` t1
let t2 be natural_transformation of g,h; ::_thesis: ( [t2,t1] = x & ex v being Function st v . x = vv implies vv = t2 `*` t1 )
assume that
A38: [t2,t1] = x and
ex v being Function st v . x = vv ; ::_thesis: vv = t2 `*` t1
x2 = t2 by A30, A38, XTUPLE_0:1;
hence vv = t2 `*` t1 by A30, A38, A36, A37, XTUPLE_0:1; ::_thesis: verum
end;
i9 is_naturally_transformable_to j9 by A17, A33;
then i9 is_naturally_transformable_to k9 by A32, Th8;
then vv in a . [i9,k9] by A17, A27;
hence ex y being set st
( y in {|a|} . o & S1[y,x,o] ) by A24, A25, A34; ::_thesis: verum
end;
hence for x being set st x in {|a,a|} . o holds
ex y being set st
( y in {|a|} . o & S1[y,x,o] ) ; ::_thesis: verum
end;
consider c being ManySortedFunction of {|a,a|},{|a|} such that
A39: for i being set st i in [:(Funct (A,B)),(Funct (A,B)),(Funct (A,B)):] holds
ex v being Function of ({|a,a|} . i),({|a|} . i) st
( v = c . i & ( for x being set st x in {|a,a|} . i holds
S1[v . x,x,i] ) ) from MSSUBFAM:sch_1(A18);
set F = AltCatStr(# (Funct (A,B)),a,c #);
A40: not Funct (A,B) is empty
proof
set f = the strict covariant Functor of A,B;
the strict covariant Functor of A,B in Funct (A,B) by Def10;
hence not Funct (A,B) is empty ; ::_thesis: verum
end;
AltCatStr(# (Funct (A,B)),a,c #) is transitive
proof
let o1, o2, o3 be object of AltCatStr(# (Funct (A,B)),a,c #); :: according to ALTCAT_1:def_2 ::_thesis: ( <^o1,o2^> = {} or <^o2,o3^> = {} or not <^o1,o3^> = {} )
reconsider a1 = o1, a2 = o2, a3 = o3 as strict covariant Functor of A,B by A40, Def10;
assume that
A41: <^o1,o2^> <> {} and
A42: <^o2,o3^> <> {} ; ::_thesis: not <^o1,o3^> = {}
consider x being set such that
A43: x in a . [o2,o3] by A42, XBOOLE_0:def_1;
A44: [o2,o3] in [:(Funct (A,B)),(Funct (A,B)):] by A40, ZFMISC_1:def_2;
then A45: a2 is_naturally_transformable_to a3 by A17, A43;
reconsider x = x as natural_transformation of a2,a3 by A17, A44, A43;
consider y being set such that
A46: y in a . [o1,o2] by A41, XBOOLE_0:def_1;
A47: [o1,o2] in [:(Funct (A,B)),(Funct (A,B)):] by A40, ZFMISC_1:def_2;
then reconsider y = y as natural_transformation of a1,a2 by A17, A46;
a1 is_naturally_transformable_to a2 by A17, A47, A46;
then A48: a1 is_naturally_transformable_to a3 by A45, Th8;
( x `*` y is natural_transformation of a1,a3 & [o1,o3] in [:(Funct (A,B)),(Funct (A,B)):] ) by A40, ZFMISC_1:def_2;
hence not <^o1,o3^> = {} by A17, A48; ::_thesis: verum
end;
then reconsider F = AltCatStr(# (Funct (A,B)),a,c #) as non empty transitive strict AltCatStr by A40;
take F ; ::_thesis: ( the carrier of F = Funct (A,B) & ( for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of F . (F,G) iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) ) & ( for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of F . (F,G,H) & f . (t2,t1) = t2 `*` t1 ) ) )
thus the carrier of F = Funct (A,B) ; ::_thesis: ( ( for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of F . (F,G) iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) ) & ( for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of F . (F,G,H) & f . (t2,t1) = t2 `*` t1 ) ) )
thus for f, g being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of F . (f,g) iff ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) ) ::_thesis: for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of F . (F,G,H) & f . (t2,t1) = t2 `*` t1 )
proof
let f, g be strict covariant Functor of A,B; ::_thesis: for x being set holds
( x in the Arrows of F . (f,g) iff ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) )
let x be set ; ::_thesis: ( x in the Arrows of F . (f,g) iff ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) )
thus ( x in the Arrows of F . (f,g) implies ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) ) ::_thesis: ( f is_naturally_transformable_to g & x is natural_transformation of f,g implies x in the Arrows of F . (f,g) )
proof
( f in Funct (A,B) & g in Funct (A,B) ) by Def10;
then A49: [f,g] in [:(Funct (A,B)),(Funct (A,B)):] by ZFMISC_1:def_2;
assume x in the Arrows of F . (f,g) ; ::_thesis: ( f is_naturally_transformable_to g & x is natural_transformation of f,g )
hence ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) by A17, A49; ::_thesis: verum
end;
thus ( f is_naturally_transformable_to g & x is natural_transformation of f,g implies x in the Arrows of F . (f,g) ) ::_thesis: verum
proof
( f in Funct (A,B) & g in Funct (A,B) ) by Def10;
then A50: [f,g] in [:(Funct (A,B)),(Funct (A,B)):] by ZFMISC_1:87;
assume ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) ; ::_thesis: x in the Arrows of F . (f,g)
hence x in the Arrows of F . (f,g) by A17, A50; ::_thesis: verum
end;
end;
let f, g, h be strict covariant Functor of A,B; ::_thesis: ( f is_naturally_transformable_to g & g is_naturally_transformable_to h implies for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h ex f being Function st
( f = the Comp of F . (f,g,h) & f . (t2,t1) = t2 `*` t1 ) )
assume that
A51: f is_naturally_transformable_to g and
A52: g is_naturally_transformable_to h ; ::_thesis: for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h ex f being Function st
( f = the Comp of F . (f,g,h) & f . (t2,t1) = t2 `*` t1 )
let t1 be natural_transformation of f,g; ::_thesis: for t2 being natural_transformation of g,h ex f being Function st
( f = the Comp of F . (f,g,h) & f . (t2,t1) = t2 `*` t1 )
let t2 be natural_transformation of g,h; ::_thesis: ex f being Function st
( f = the Comp of F . (f,g,h) & f . (t2,t1) = t2 `*` t1 )
A53: f in Funct (A,B) by Def10;
then reconsider T = Funct (A,B) as non empty set ;
A54: g in Funct (A,B) by Def10;
then A55: [f,g] in [:(Funct (A,B)),(Funct (A,B)):] by A53, ZFMISC_1:87;
A56: h in Funct (A,B) by Def10;
then [g,h] in [:(Funct (A,B)),(Funct (A,B)):] by A54, ZFMISC_1:87;
then A57: t2 in a . [g,h] by A17, A52;
reconsider i = f, j = g, k = h as Element of T by Def10;
A58: {|a,a|} . [i,j,k] = {|a,a|} . (i,j,k) by MULTOP_1:def_1
.= [:(a . (j,k)),(a . (i,j)):] by ALTCAT_1:def_4 ;
( [:(Funct (A,B)),(Funct (A,B)),(Funct (A,B)):] = [:[:(Funct (A,B)),(Funct (A,B)):],(Funct (A,B)):] & [f,g,h] = [[f,g],h] ) by ZFMISC_1:def_3;
then [f,g,h] in [:(Funct (A,B)),(Funct (A,B)),(Funct (A,B)):] by A56, A55, ZFMISC_1:87;
then consider v being Function of ({|a,a|} . [f,g,h]),({|a|} . [f,g,h]) such that
A59: v = c . [f,g,h] and
A60: for x being set st x in {|a,a|} . [f,g,h] holds
S1[v . x,x,[f,g,h]] by A39;
t1 in a . [f,g] by A17, A51, A55;
then [t2,t1] in {|a,a|} . [f,g,h] by A58, A57, ZFMISC_1:87;
then A61: v . (t2,t1) = t2 `*` t1 by A60;
v = c . (f,g,h) by A59, MULTOP_1:def_1;
hence ex f being Function st
( f = the Comp of F . (f,g,h) & f . (t2,t1) = t2 `*` t1 ) by A61; ::_thesis: verum
end;
uniqueness
for b1, b2 being non empty transitive strict AltCatStr st the carrier of b1 = Funct (A,B) & ( for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of b1 . (F,G) iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) ) & ( for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of b1 . (F,G,H) & f . (t2,t1) = t2 `*` t1 ) ) & the carrier of b2 = Funct (A,B) & ( for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of b2 . (F,G) iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) ) & ( for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of b2 . (F,G,H) & f . (t2,t1) = t2 `*` t1 ) ) holds
b1 = b2
proof
let C1, C2 be non empty transitive strict AltCatStr ; ::_thesis: ( the carrier of C1 = Funct (A,B) & ( for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of C1 . (F,G) iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) ) & ( for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of C1 . (F,G,H) & f . (t2,t1) = t2 `*` t1 ) ) & the carrier of C2 = Funct (A,B) & ( for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of C2 . (F,G) iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) ) & ( for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of C2 . (F,G,H) & f . (t2,t1) = t2 `*` t1 ) ) implies C1 = C2 )
assume that
A62: the carrier of C1 = Funct (A,B) and
A63: for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of C1 . (F,G) iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) and
A64: for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of C1 . (F,G,H) & f . (t2,t1) = t2 `*` t1 ) and
A65: the carrier of C2 = Funct (A,B) and
A66: for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of C2 . (F,G) iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) and
A67: for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of C2 . (F,G,H) & f . (t2,t1) = t2 `*` t1 ) ; ::_thesis: C1 = C2
set R = the carrier of C1;
set T = the carrier of C2;
set N = the Arrows of C1;
set M = the Arrows of C2;
set O = the Comp of C1;
set P = the Comp of C2;
A68: for i, j being set st i in the carrier of C1 & j in the carrier of C2 holds
the Arrows of C1 . (i,j) = the Arrows of C2 . (i,j)
proof
let i, j be set ; ::_thesis: ( i in the carrier of C1 & j in the carrier of C2 implies the Arrows of C1 . (i,j) = the Arrows of C2 . (i,j) )
assume that
A69: i in the carrier of C1 and
A70: j in the carrier of C2 ; ::_thesis: the Arrows of C1 . (i,j) = the Arrows of C2 . (i,j)
reconsider g = j as strict covariant Functor of A,B by A65, A70, Def10;
reconsider f = i as strict covariant Functor of A,B by A62, A69, Def10;
now__::_thesis:_for_x_being_set_holds_
(_x_in_the_Arrows_of_C1_._(i,j)_iff_x_in_the_Arrows_of_C2_._(i,j)_)
let x be set ; ::_thesis: ( x in the Arrows of C1 . (i,j) iff x in the Arrows of C2 . (i,j) )
( x in the Arrows of C1 . (i,j) iff ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) ) by A63;
hence ( x in the Arrows of C1 . (i,j) iff x in the Arrows of C2 . (i,j) ) by A66; ::_thesis: verum
end;
hence the Arrows of C1 . (i,j) = the Arrows of C2 . (i,j) by TARSKI:1; ::_thesis: verum
end;
then A71: the Arrows of C1 = the Arrows of C2 by A62, A65, ALTCAT_1:6;
for i, j, k being set st i in the carrier of C1 & j in the carrier of C1 & k in the carrier of C1 holds
the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k)
proof
let i, j, k be set ; ::_thesis: ( i in the carrier of C1 & j in the carrier of C1 & k in the carrier of C1 implies the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k) )
assume that
A72: i in the carrier of C1 and
A73: j in the carrier of C1 and
A74: k in the carrier of C1 ; ::_thesis: the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k)
reconsider h = k as strict covariant Functor of A,B by A62, A74, Def10;
reconsider g = j as strict covariant Functor of A,B by A62, A73, Def10;
reconsider f = i as strict covariant Functor of A,B by A62, A72, Def10;
percases ( the Arrows of C1 . (i,j) = {} or the Arrows of C1 . (j,k) = {} or ( the Arrows of C1 . (i,j) <> {} & the Arrows of C1 . (j,k) <> {} ) ) ;
supposeA75: ( the Arrows of C1 . (i,j) = {} or the Arrows of C1 . (j,k) = {} ) ; ::_thesis: the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k)
thus the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k) ::_thesis: verum
proof
percases ( the Arrows of C1 . (i,j) = {} or the Arrows of C1 . (j,k) = {} ) by A75;
supposeA76: the Arrows of C1 . (i,j) = {} ; ::_thesis: the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k)
reconsider T = the carrier of C2 as non empty set ;
reconsider i9 = i, j9 = j, k9 = k as Element of T by A62, A65, A72, A73, A74;
the Arrows of C2 . (i,j) = {} by A62, A65, A68, A76, ALTCAT_1:6;
then A77: [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):] = {} by ZFMISC_1:90;
A78: {| the Arrows of C2, the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2, the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):] by ALTCAT_1:def_4 ;
A79: {| the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= the Arrows of C2 . (i9,k9) by ALTCAT_1:def_3 ;
the Comp of C2 . [i9,j9,k9] = the Comp of C2 . (i9,j9,k9) by MULTOP_1:def_1;
then A80: the Comp of C2 . (i9,j9,k9) is Function of [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):],( the Arrows of C2 . (i9,k9)) by A78, A79, PBOOLE:def_15;
A81: {| the Arrows of C2, the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2, the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):] by ALTCAT_1:def_4 ;
A82: {| the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= the Arrows of C2 . (i9,k9) by ALTCAT_1:def_3 ;
the Comp of C1 . [i9,j9,k9] = the Comp of C1 . (i9,j9,k9) by MULTOP_1:def_1;
then the Comp of C1 . (i9,j9,k9) is Function of [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):],( the Arrows of C2 . (i9,k9)) by A62, A65, A71, A81, A82, PBOOLE:def_15;
hence the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k) by A77, A80; ::_thesis: verum
end;
supposeA83: the Arrows of C1 . (j,k) = {} ; ::_thesis: the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k)
reconsider T = the carrier of C2 as non empty set ;
reconsider i9 = i, j9 = j, k9 = k as Element of T by A62, A65, A72, A73, A74;
the Arrows of C2 . (j,k) = {} by A62, A65, A68, A83, ALTCAT_1:6;
then A84: [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):] = {} by ZFMISC_1:90;
A85: {| the Arrows of C2, the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2, the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):] by ALTCAT_1:def_4 ;
A86: {| the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= the Arrows of C2 . (i9,k9) by ALTCAT_1:def_3 ;
the Comp of C2 . [i9,j9,k9] = the Comp of C2 . (i9,j9,k9) by MULTOP_1:def_1;
then A87: the Comp of C2 . (i9,j9,k9) is Function of [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):],( the Arrows of C2 . (i9,k9)) by A85, A86, PBOOLE:def_15;
A88: {| the Arrows of C2, the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2, the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):] by ALTCAT_1:def_4 ;
A89: {| the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= the Arrows of C2 . (i9,k9) by ALTCAT_1:def_3 ;
the Comp of C1 . [i9,j9,k9] = the Comp of C1 . (i9,j9,k9) by MULTOP_1:def_1;
then the Comp of C1 . (i9,j9,k9) is Function of [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):],( the Arrows of C2 . (i9,k9)) by A62, A65, A71, A88, A89, PBOOLE:def_15;
hence the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k) by A84, A87; ::_thesis: verum
end;
end;
end;
end;
supposethat A90: the Arrows of C1 . (i,j) <> {} and
A91: the Arrows of C1 . (j,k) <> {} ; ::_thesis: the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k)
reconsider T = the carrier of C2 as non empty set ;
reconsider i9 = i, j9 = j, k9 = k as Element of T by A62, A65, A72, A73, A74;
A92: {| the Arrows of C2, the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2, the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):] by ALTCAT_1:def_4 ;
A93: {| the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= the Arrows of C2 . (i9,k9) by ALTCAT_1:def_3 ;
the Comp of C2 . [i9,j9,k9] = the Comp of C2 . (i9,j9,k9) by MULTOP_1:def_1;
then reconsider t2 = the Comp of C2 . (i,j,k) as Function of [:( the Arrows of C2 . (j,k)),( the Arrows of C2 . (i,j)):],( the Arrows of C2 . (i,k)) by A92, A93, PBOOLE:def_15;
A94: {| the Arrows of C2, the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2, the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= [:( the Arrows of C2 . (j9,k9)),( the Arrows of C2 . (i9,j9)):] by ALTCAT_1:def_4 ;
A95: {| the Arrows of C2|} . [i9,j9,k9] = {| the Arrows of C2|} . (i9,j9,k9) by MULTOP_1:def_1
.= the Arrows of C2 . (i9,k9) by ALTCAT_1:def_3 ;
the Comp of C1 . [i9,j9,k9] = the Comp of C1 . (i9,j9,k9) by MULTOP_1:def_1;
then reconsider t1 = the Comp of C1 . (i,j,k) as Function of [:( the Arrows of C2 . (j,k)),( the Arrows of C2 . (i,j)):],( the Arrows of C2 . (i,k)) by A62, A65, A71, A94, A95, PBOOLE:def_15;
A96: the Arrows of C2 . (j,k) <> {} by A62, A65, A68, A91, ALTCAT_1:6;
A97: the Arrows of C2 . (i,j) <> {} by A62, A65, A68, A90, ALTCAT_1:6;
for a being Element of the Arrows of C2 . (j,k)
for b being Element of the Arrows of C2 . (i,j) holds t1 . (a,b) = t2 . (a,b)
proof
let a be Element of the Arrows of C2 . (j,k); ::_thesis: for b being Element of the Arrows of C2 . (i,j) holds t1 . (a,b) = t2 . (a,b)
let b be Element of the Arrows of C2 . (i,j); ::_thesis: t1 . (a,b) = t2 . (a,b)
a in the Arrows of C2 . (j,k) by A96;
then A98: g is_naturally_transformable_to h by A66;
reconsider a = a as natural_transformation of g,h by A66, A96;
b in the Arrows of C2 . (i,j) by A97;
then A99: f is_naturally_transformable_to g by A66;
reconsider b = b as natural_transformation of f,g by A66, A97;
( ex t19 being Function st
( t19 = the Comp of C1 . (f,g,h) & t19 . (a,b) = a `*` b ) & ex t29 being Function st
( t29 = the Comp of C2 . (f,g,h) & t29 . (a,b) = a `*` b ) ) by A64, A67, A98, A99;
hence t1 . (a,b) = t2 . (a,b) ; ::_thesis: verum
end;
hence the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k) by BINOP_1:2; ::_thesis: verum
end;
end;
end;
hence C1 = C2 by A62, A65, A71, ALTCAT_1:8; ::_thesis: verum
end;
end;
:: deftheorem defines Functors FUNCTOR2:def_11_:_
for A, B being category
for b3 being non empty transitive strict AltCatStr holds
( b3 = Functors (A,B) iff ( the carrier of b3 = Funct (A,B) & ( for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of b3 . (F,G) iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) ) & ( for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of b3 . (F,G,H) & f . (t2,t1) = t2 `*` t1 ) ) ) );