
theorem Th29:
  for I be non empty set,
      J be non-empty disjoint_valued ManySortedSet of I,
      F be Group-Family of I,J,
      x,y,z be Function
  st z in dprod F & x = (dprod2prod F).z
  holds
    supp_restr(x,F) | support(z,sum_bundle F)
      is non-empty disjoint_valued ManySortedSet of support(z,sum_bundle F)
  & support(x,Union F) = Union(supp_restr(x,F) | support(z,sum_bundle F))
  proof
    let I be non empty set,
        J be non-empty disjoint_valued ManySortedSet of I,
        F be Group-Family of I,J,
        x,y,z be Function;
    assume that
    A1: z in dprod F and
    A2: x = (dprod2prod F).z;
    set srx = supp_restr(x,F);
    set sz = support(z,sum_bundle F);
    set f = srx | sz;
    A3: dom srx = I by PARTFUN1:def 2;
    dom f = sz by A3,RELAT_1:62; then
    reconsider f as ManySortedSet of sz by PARTFUN1:def 2;
    for s,t be object st s<>t holds f.s misses f.t
    proof
      let s,t be object;
      assume
      A4: s<>t;
      per cases;
      suppose
        not s in dom f or not t in dom f; then
        f.s = {} or f.t = {} by FUNCT_1:def 2; then
        f.s /\ f.t = {};
        hence thesis by XBOOLE_0:def 7;
      end;
      suppose
        s in dom f & t in dom f; then
        A5: f.s = srx.s & f.t = srx.t by FUNCT_1:47;
        srx is disjoint_valued;
        hence thesis by A4,A5;
      end;
    end; then
    reconsider f as disjoint_valued ManySortedSet of sz by PROB_2:def 2;
    not {} in rng f
    proof
      assume {} in rng f; then
      consider i be object such that
      A6: i in dom f & {} = f.i by FUNCT_1:def 3;
      i in sz by A6; then
      reconsider i as Element of I;
      A7: {} = srx.i by A6,FUNCT_1:47;
      A8: support(x | (J.i), F.i) = {} by A7,Def12;
      ex Z being Group st Z = (sum_bundle F).i &
      z.i <> 1_Z & i in I by A6,GROUP_19:def 1; then
      A9: z.i <> 1_sum(F.i) by Def7;
      z.i in (prod_bundle F).i by A1,GROUP_19:5; then
      A10: z.i in product(F.i) by Def6; then
      reconsider zi = z.i as Function;
      ex j be Element of J.i st zi.j <> 1_(F.i).j
      proof
        assume
        A11: for j be Element of J.i holds zi.j = 1_(F.i).j;
        dom zi = J.i by A10,GROUP_19:3; then
        reconsider zi as ManySortedSet of J.i by PARTFUN1:def 2,RELAT_1:def 18;
        for k being set st k in J.i
        ex G being Group-like non empty multMagma st G = (F.i).k & zi.k = 1_G
        proof
          let k being set;
          assume k in J.i; then
          reconsider j = k as Element of J.i;
          take G = (F.i).j;
          thus G = (F.i).k;
          thus zi.k = 1_G by A11;
        end; then
        zi = 1_product(F.i) by GROUP_7:5;
        hence contradiction by A9,GROUP_2:44;
      end; then
      consider j be Element of J.i such that
      A12: zi.j <> 1_(F.i).j;
      j in support(zi, F.i) by A12,GROUP_19:def 1;
      hence contradiction by A1,A2,A8,Def10;
    end; then
    reconsider f as non-empty disjoint_valued ManySortedSet of sz
      by RELAT_1:def 9;
    f = srx | sz;
    hence srx | sz is non-empty disjoint_valued ManySortedSet of sz;
    A13: support(x,Union F) = Union srx by Th28;
    Union(srx | sz) c= Union srx by RELAT_1:70,ZFMISC_1:77; then
    A14: Union(srx | sz) c= support(x,Union F) by A13;
    for k be object st k in support(x,Union F) holds k in Union(srx | sz)
    proof
      let k be object;
      assume k in support(x,Union F); then
      consider Y be set such that
      A15: k in Y & Y in rng(srx) by A13,TARSKI:def 4;
      consider i being object such that
      A16: i in dom(srx) & Y = (srx).i by A15,FUNCT_1:def 3;
      reconsider i as Element of I by A16;
      k in support(x | (J.i), F.i) by A15,A16,Def12; then
      consider Z being Group such that
      A17: Z = (F.i).k & (x | (J.i)).k <> 1_Z & k in J.i by GROUP_19:def 1;
      z.i in (prod_bundle F).i by A1,GROUP_19:5; then
      A18: z.i in product(F.i) by Def6; then
      reconsider zi = z.i as Function;
      dom zi = J.i by A18,GROUP_19:3; then
      reconsider zi as  ManySortedSet of J.i by PARTFUN1:def 2,RELAT_1:def 18;
      A19: zi.k <> 1_Z & k in J.i by A1,A2,A17,Def10;
      zi <> 1_product(F.i) by A17,A19,GROUP_7:6; then
      z.i <> 1_sum(F.i) by GROUP_2:44; then
      z.i <> 1_(sum_bundle F).i by Def7; then
      i in support(z,sum_bundle F) by GROUP_19:def 1; then
      A20: i in dom(srx | sz) by A16,RELAT_1:57; then
      Y = (srx | sz).i by A16,FUNCT_1:47; then
      Y in rng(srx | sz) by A20,FUNCT_1:3;
      hence k in Union(srx | sz) by A15,TARSKI:def 4;
    end; then
    support(x,Union F) c= Union(srx | sz);
    hence support(x,Union F) = Union(srx | sz) by A14,XBOOLE_0:def 10;
  end;
