let B, C, D be Category; :: thesis: for T being Functor of B,C
for S being Functor of C,D holds S * T is Functor of B,D

let T be Functor of B,C; :: thesis: for S being Functor of C,D holds S * T is Functor of B,D
let S be Functor of C,D; :: thesis: S * T is Functor of B,D
reconsider FF = (Obj S) * (Obj T) as Function of the carrier of B, the carrier of D ;
reconsider TT = S * T as Function of the carrier' of B, the carrier' of D ;
now
thus for b being Object of B holds TT . (id b) = id (FF . b) :: thesis: ( ( for f being Morphism of B holds
( FF . (dom f) = dom (TT . f) & FF . (cod f) = cod (TT . f) ) ) & ( for f, g being Morphism of B st dom g = cod f holds
TT . (g * f) = (TT . g) * (TT . f) ) )
proof
let b be Object of B; :: thesis: TT . (id b) = id (FF . b)
thus TT . (id b) = S . (T . (id b)) by FUNCT_2:15
.= S . (id (T . b)) by Th104
.= id (S . ((Obj T) . b)) by Th104
.= id (FF . b) by FUNCT_2:15 ; :: thesis: verum
end;
thus for f being Morphism of B holds
( FF . (dom f) = dom (TT . f) & FF . (cod f) = cod (TT . f) ) :: thesis: for f, g being Morphism of B st dom g = cod f holds
TT . (g * f) = (TT . g) * (TT . f)
proof
let f be Morphism of B; :: thesis: ( FF . (dom f) = dom (TT . f) & FF . (cod f) = cod (TT . f) )
thus FF . (dom f) = (Obj S) . ((Obj T) . (dom f)) by FUNCT_2:15
.= (Obj S) . (dom (T . f)) by Th105
.= dom (S . (T . f)) by Th105
.= dom (TT . f) by FUNCT_2:15 ; :: thesis: FF . (cod f) = cod (TT . f)
thus FF . (cod f) = (Obj S) . ((Obj T) . (cod f)) by FUNCT_2:15
.= (Obj S) . (cod (T . f)) by Th105
.= cod (S . (T . f)) by Th105
.= cod (TT . f) by FUNCT_2:15 ; :: thesis: verum
end;
let f, g be Morphism of B; :: thesis: ( dom g = cod f implies TT . (g * f) = (TT . g) * (TT . f) )
assume A1: dom g = cod f ; :: thesis: TT . (g * f) = (TT . g) * (TT . f)
then A2: dom (T . g) = cod (T . f) by Th99;
thus TT . (g * f) = S . (T . (g * f)) by FUNCT_2:15
.= S . ((T . g) * (T . f)) by A1, Th99
.= (S . (T . g)) * (S . (T . f)) by A2, Th99
.= (TT . g) * (S . (T . f)) by FUNCT_2:15
.= (TT . g) * (TT . f) by FUNCT_2:15 ; :: thesis: verum
end;
hence S * T is Functor of B,D by Th100; :: thesis: verum