let I be set ; :: thesis: for C being Category
for c being Object of
for F being Injections_family of c,I st c is_a_coproduct_wrt F & ( for x1, x2 being set st x1 in I & x2 in I holds
Hom (dom (F /. x1)),(dom (F /. x2)) <> {} ) holds
for x being set st x in I holds
F /. x is coretraction

let C be Category; :: thesis: for c being Object of
for F being Injections_family of c,I st c is_a_coproduct_wrt F & ( for x1, x2 being set st x1 in I & x2 in I holds
Hom (dom (F /. x1)),(dom (F /. x2)) <> {} ) holds
for x being set st x in I holds
F /. x is coretraction

let c be Object of ; :: thesis: for F being Injections_family of c,I st c is_a_coproduct_wrt F & ( for x1, x2 being set st x1 in I & x2 in I holds
Hom (dom (F /. x1)),(dom (F /. x2)) <> {} ) holds
for x being set st x in I holds
F /. x is coretraction

let F be Injections_family of c,I; :: thesis: ( c is_a_coproduct_wrt F & ( for x1, x2 being set st x1 in I & x2 in I holds
Hom (dom (F /. x1)),(dom (F /. x2)) <> {} ) implies for x being set st x in I holds
F /. x is coretraction )

assume that
A1: c is_a_coproduct_wrt F and
A2: for x1, x2 being set st x1 in I & x2 in I holds
Hom (dom (F /. x1)),(dom (F /. x2)) <> {} ; :: thesis: for x being set st x in I holds
F /. x is coretraction

let x be set ; :: thesis: ( x in I implies F /. x is coretraction )
assume A3: x in I ; :: thesis: F /. x is coretraction
set d = dom (F /. x);
defpred S1[ set , set ] means ( ( $1 = x implies $2 = id (dom (F /. x)) ) & ( $1 <> x implies $2 in Hom (dom (F /. $1)),(dom (F /. x)) ) );
A4: for y being set st y in I holds
ex z being set st
( z in the carrier' of C & S1[y,z] )
proof
let y be set ; :: thesis: ( y in I implies ex z being set st
( z in the carrier' of C & S1[y,z] ) )

consider z being Element of Hom (dom (F /. y)),(dom (F /. x));
assume y in I ; :: thesis: ex z being set st
( z in the carrier' of C & S1[y,z] )

then A5: Hom (dom (F /. y)),(dom (F /. x)) <> {} by A2, A3;
then A6: z is Morphism of dom (F /. y), dom (F /. x) by CAT_1:21;
per cases ( y = x or y <> x ) ;
suppose A7: y = x ; :: thesis: ex z being set st
( z in the carrier' of C & S1[y,z] )

take z = id (dom (F /. x)); :: thesis: ( z in the carrier' of C & S1[y,z] )
thus z in the carrier' of C ; :: thesis: S1[y,z]
thus S1[y,z] by A7; :: thesis: verum
end;
suppose A8: y <> x ; :: thesis: ex z being set st
( z in the carrier' of C & S1[y,z] )

take z ; :: thesis: ( z in the carrier' of C & S1[y,z] )
thus z in the carrier' of C by A6; :: thesis: S1[y,z]
thus S1[y,z] by A5, A8; :: thesis: verum
end;
end;
end;
consider F' being Function such that
A9: ( dom F' = I & rng F' c= the carrier' of C ) and
A10: for y being set st y in I holds
S1[y,F' . y] from WELLORD2:sch 1(A4);
reconsider F' = F' as Function of I,the carrier' of C by A9, FUNCT_2:def 1, RELSET_1:11;
now
let y be set ; :: thesis: ( y in I implies (cods F') /. y = (I --> (dom (F /. x))) /. y )
assume A11: y in I ; :: thesis: (cods F') /. y = (I --> (dom (F /. x))) /. y
then A12: F' . y = F' /. y by FUNCT_2:def 14;
then A13: ( y <> x implies F' /. y in Hom (dom (F /. y)),(dom (F /. x)) ) by A10, A11;
( y = x implies F' /. y = id (dom (F /. x)) ) by A10, A11, A12;
then cod (F' /. y) = dom (F /. x) by A13, CAT_1:18, CAT_1:44;
hence (cods F') /. y = dom (F /. x) by A11, Def4
.= (I --> (dom (F /. x))) /. y by A11, Th2 ;
:: thesis: verum
end;
then cods F' = I --> (dom (F /. x)) by Th1;
then A14: F' is Injections_family of dom (F /. x),I by Def17;
now
let y be set ; :: thesis: ( y in I implies (doms F') /. y = (doms F) /. y )
assume A15: y in I ; :: thesis: (doms F') /. y = (doms F) /. y
then A16: F' . y = F' /. y by FUNCT_2:def 14;
then A17: ( y <> x implies F' /. y in Hom (dom (F /. y)),(dom (F /. x)) ) by A10, A15;
( y = x implies F' /. y = id (dom (F /. x)) ) by A10, A15, A16;
then dom (F' /. y) = dom (F /. y) by A17, CAT_1:18, CAT_1:44;
hence (doms F') /. y = dom (F /. y) by A15, Def3
.= (doms F) /. y by A15, Def3 ;
:: thesis: verum
end;
then doms F = doms F' by Th1;
then consider i being Morphism of such that
A18: i in Hom c,(dom (F /. x)) and
A19: for k being Morphism of st k in Hom c,(dom (F /. x)) holds
( ( for y being set st y in I holds
k * (F /. y) = F' /. y ) iff i = k ) by A1, A14, Def18;
take i ; :: according to CAT_3:def 11 :: thesis: ( dom i = cod (F /. x) & i * (F /. x) = id (dom (F /. x)) )
thus dom i = c by A18, CAT_1:18
.= cod (F /. x) by A3, Th67 ; :: thesis: i * (F /. x) = id (dom (F /. x))
thus i * (F /. x) = F' /. x by A3, A18, A19
.= F' . x by A3, FUNCT_2:def 14
.= id (dom (F /. x)) by A3, A10 ; :: thesis: verum