reserve
  I for set,
  E for non empty set;
reserve A for ObjectsFamily of I,EnsCat E;

theorem Th10:
  Union coprod A in E implies
  EnsCatCoproduct A is feasible coprojection-morphisms
  proof
    set B = EnsCatCoproductObj A;
    set P = EnsCatCoproduct A;
    assume
A1: Union coprod A in E; then
A2: B = Union coprod A by Def9;
A3: P = Coprod A by A1,Def11;
    per cases;
    suppose
A4: Union coprod A <> {};
    then
A5: B <> {} by A1,Def9;
    thus
A6: P is feasible
    proof
      let i be set;
      assume
A7:   i in I;
      then reconsider I as non empty set;
      reconsider i as Element of I by A7;
      reconsider A as ObjectsFamily of I,EnsCat E;
      reconsider P as MorphismsFamily of A,B;
      take A.i;
A8:   <^A.i,B^> = Funcs(A.i,B) by ALTCAT_1:def 14;
      Funcs(A.i,B) <> {} by A5;
      then P.i in <^A.i,B^> by A8;
      hence thesis;
    end;
    let X be Object of EnsCat E, F be MorphismsFamily of A,X;
    assume
A9: F is feasible;
A10: <^B,X^> = Funcs(B,X) by ALTCAT_1:def 14;
    defpred P[object,object] means
    $1`2 in I & $1`1 in A.$1`2 & $2 = F.$1`2.$1`1 &
    for j being object st j in I & $1 = [$1`1,j] holds F.j.$1`1 = $2;
A11: for b being object st b in B ex u being object st P[b,u]
    proof
      let b be object;
      assume b in B;
      then consider Z being set such that
A12:  b in Z and
A13:  Z in rng coprod A by A2,TARSKI:def 4;
      consider i being object such that
A14:  i in dom coprod A and
A15:  (coprod A).i = Z by A13,FUNCT_1:def 3;
      (coprod A).i = coprod(i,A) by A14,MSAFREE:def 3;
      then consider x being set such that
A16:  x in A.i and
A17:  b = [x,i] by A12,A14,A15,MSAFREE:def 2;
      take F.i.x;
      thus b`2 in I & b`1 in A.b`2 & F.b`2.b`1 = F.i.x by A14,A16,A17;
      let j be object such that j in I and
A18:  b = [b`1,j];
      thus thesis by A17,A18,XTUPLE_0:1;
    end;
    consider ff being Function such that
A19: dom ff = B and
A20: for x being object st x in B holds P[x,ff.x] from CLASSES1:sch 1(A11);
A21: rng ff c= X
     proof
       let y be object;
       assume y in rng ff;
       then consider x being object such that
A22:   x in dom ff and
A23:   ff.x = y by FUNCT_1:def 3;
       set i = x`2;
A24:   i in I by A19,A20,A22;
A25:   x`1 in A.i by A19,A20,A22;
A26:   ff.x = F.i.x`1 by A19,A20,A22;
       consider o1 being Object of EnsCat E such that
A27:   o1 = A.i and
       F.i is Morphism of o1,X by A24,Def1;
A28:   <^o1,X^> = Funcs(o1,X) by ALTCAT_1:def 14;
       then
A29:   X <> {} by A24,A25,A27,A9,Def4;
       F.i is Function of o1,X by A9,A24,A27,A28,Def4,FUNCT_2:66;
       hence thesis by A23,A25,A26,A27,A29,FUNCT_2:5;
     end;
     then reconsider ff as Morphism of B,X by A10,A19,FUNCT_2:def 2;
     take ff;
     thus
A30: ff in <^B,X^> by A10,A21,A19,FUNCT_2:def 2;
     thus for i being set st i in I
     ex si being Object of EnsCat E, Pi being Morphism of si,B st
     si = A.i & Pi = P.i & F.i = ff * Pi
     proof
       let i be set;
       assume
A31:   i in I;
       then reconsider I as non empty set;
       reconsider j = i as Element of I by A31;
       reconsider A1 = A as ObjectsFamily of I,EnsCat E;
       reconsider P1 = P as MorphismsFamily of A1,B;
       reconsider F1 = F as MorphismsFamily of A1,X;
       take A1.j,P1.j;
       thus A1.j = A.i & P1.j = P.i;
       reconsider p = P1.j as Function;
A32:   <^A1.j,B^> = Funcs(A1.j,B) by ALTCAT_1:def 14;
A33:   <^A1.j,B^> <> {} by A6,Def4;
A34:   <^A1.j,X^> = Funcs(A1.j,X) by ALTCAT_1:def 14;
       <^A1.j,X^> <> {} by A9,Def4; then
A35:   ff * P1.j = ff * p by A30,A33,ALTCAT_1:16;
A36:   F1.j in Funcs(A1.j,X) by A34,A9,Def4;
       then
A37:   dom(F1.j) = A1.j by FUNCT_2:92;
A38:   dom(ff*P1.j) = A1.j by A34,A36,FUNCT_2:92;
A39:   dom(P1.j) = A1.j by A32,A33,FUNCT_2:92;
       now
         let x be object;
         assume
A40:     x in dom(F1.j);
         p is Function of A1.j,B by A32,A6,Def4,FUNCT_2:66;
         then
A41:     p.x in B by A5,A37,A40,FUNCT_2:5;
         set x1 = (p.x)`1;
         ex C being Function of A.j,Union coprod A st
         P.i = C & for x being object st x in A.i holds C.x = [x,i]
         by A3,Def10;
         then
A42:     p.x = [x,j] by A37,A40;
         then ff.(p.x) = F.j.x1 by A41,A20;
         hence (ff*p).x = F1.j.x by A42,A37,A40,A39,FUNCT_1:13;
       end;
       hence F.i = ff * P1.j by A35,A38,A36,FUNCT_1:2,FUNCT_2:92;
     end;
     let f1 be Morphism of B,X such that
A43: for i being set st i in I
     ex si being Object of EnsCat E, Pi being Morphism of si,B st
     si = A.i & Pi = P.i & F.i = f1 * Pi;
     per cases;
     suppose X = {};
       then f1 = {} & ff = {} by A5,A10,SUBSET_1:def 1;
       hence ff = f1;
     end;
     suppose
A44:    X <> {};
       f1 is Function of B,X by A10,A30,FUNCT_2:66;
       then
A45:   dom f1 = B by A44,FUNCT_2:def 1;
       now
         let x be object;
         assume
A46:     x in dom ff;
         set a = x`1;
         set i = x`2;
A47:     i in I by A19,A20,A46;
         then consider C being Function of A.i,Union coprod A such that
A48:     P.i = C and
A49:     for x being object st x in A.i holds C.x = [x,i] by A3,Def10;
         consider si being Object of EnsCat E, Pi being Morphism of si,B
         such that si = A.i and
A50:     Pi = P.i and
A51:     F.i = f1 * Pi by A43,A47;
A52:     a in A.i by A19,A20,A46;
         then
A53:     a in dom Pi by A48,A50,A4,FUNCT_2:def 1;
A54:     <^si,B^> = Funcs(si,B) by ALTCAT_1:def 14;
         <^si,X^> = Funcs(si,X) by ALTCAT_1:def 14;
         then
A55:     f1 * Pi = f1 qua Function * Pi by A2,A4,A44,A54,A10,ALTCAT_1:16;
A56:     ex y,z being object st x = [y,z] by A2,A19,A46,CARD_3:21;
         C.a = [a,i] by A49,A52;
         hence f1.x = F.i.a by A48,A50,A56,A51,A53,A55,FUNCT_1:13
         .= ff.x by A19,A20,A46;
       end;
       hence thesis by A19,A45,FUNCT_1:2;
     end;
   end;
   suppose
A57: Union coprod A = {};
     thus P is feasible
     proof
       let i be set such that
A58:   i in I;
       reconsider I as non empty set by A58;
       reconsider i as Element of I by A58;
       reconsider A as ObjectsFamily of I,EnsCat E;
       take A.i;
A59:   Coprod A is empty-yielding by A57,Th7;
       A is empty-yielding by A57,Th8;
       then
A60:   A.i = {};
A61:   <^A.i,B^> = {{}} by A2,A57,A60,Lm2,ALTCAT_1:def 14;
       P.i = {} by A3,A59;
       hence thesis by A61,TARSKI:def 1;
     end;
     let X be Object of EnsCat E, F be MorphismsFamily of A,X;
     assume F is feasible;
A62: <^B,X^> = Funcs(B,X) by ALTCAT_1:def 14
     .= {{}} by A2,A57,FUNCT_5:57;
     then reconsider f = {} as Morphism of B,X by TARSKI:def 1;
     take f;
     thus f in <^B,X^> by A62;
     thus for i being set st i in I
     ex si being Object of EnsCat E, Pi being Morphism of si,B st
     si = A.i & Pi = P.i & F.i = f * Pi
     proof
       let i be set such that
A63:   i in I;
       reconsider J = I as non empty set by A63;
       reconsider j = i as Element of J by A63;
       reconsider A1 = A as ObjectsFamily of J,EnsCat E;
       reconsider P1 = P as MorphismsFamily of A1,B;
       reconsider si = A1.j as Object of EnsCat E;
       reconsider Pi = P1.j as Morphism of si,B;
       reconsider F1 = F as MorphismsFamily of A1,X;
       reconsider F2 = F1.j as Morphism of si,X;
       take si, Pi;
       thus si = A.i & Pi = P.i;
A64:   A is empty-yielding by A57,Th8;
       then
A65:   si = {};
       then
A66:   <^si,B^> = {{}} by A2,A57,Lm2,ALTCAT_1:def 14;
A67:   <^si,X^> <> {} by A62,A64,A2,A57;
A68:   Funcs(si,X) = {{}} by A65,FUNCT_5:57;
A69:   <^si,X^> = Funcs(si,X) by ALTCAT_1:def 14;
       thus F.i = F2
       .= {} by A68,A69,TARSKI:def 1
       .= f qua Function * Pi
       .= f * Pi by A62,A66,A67,ALTCAT_1:16;
     end;
     thus thesis by A62,TARSKI:def 1;
   end;
 end;
