
theorem Th35:
  for F,G be non-empty non empty Function,
        h be non empty Function
  st dom F = dom G = dom h
   & for i be object st i in dom h holds
     ex hi be Function of F.i,G.i
     st hi = h.i & hi is onto
  holds ProductMap(F,G,h) is onto
  proof
    let F, G be non-empty non empty Function,
           h be non empty Function;
    assume that
    A1: dom F = dom G = dom h and
    A2: for i be object st i in dom h holds
        ex hi be Function of F.i,G.i st hi = h.i & hi is onto;
    set p = ProductMap(F,G,h);
    A4: for i be object st i in dom h holds h.i is Function of F.i,G.i
    proof
      let i be object;
      assume i in dom h; then
      ex hi be Function of F.i,G.i st hi = h.i & hi is onto by A2;
      hence thesis;
    end;
    for y being object st y in product G
    ex x being object st x in product F & y = p.x
    proof
      let y being object;
      assume
      A5: y in product G; then
      reconsider y as Function;
      A6: dom y = dom G
        & for x being object st x in dom G holds y.x in G.x by A5,CARD_3:9;
      defpred P[object,object] means
      ex i be Element of dom h, hi be Function of F.i,G.i
      st $1 =i & hi = h.i & $2 in F.i & y.i = hi.($2);
      A7: for i be object st i in dom F ex x be object st P[i,x]
      proof
        let i be object;
        assume i in dom F; then
        reconsider i as Element of dom h by A1;
        consider hi be Function of F.i,G.i such that
        A9: hi = h.i & hi is onto by A2;
        rng hi = G.i by A9,FUNCT_2:def 3; then
        consider x be object such that
        A11: x in F.i & y.i = hi.x by A1,A5,CARD_3:9,FUNCT_2:11;
        take x;
        thus thesis by A9,A11;
      end;
      consider x being Function such that
      A12: dom x = dom F & for i being object st i in dom F holds P[i,x.i]
      from CLASSES1:sch 1(A7);
      now
        let i be object;
        assume i in dom F; then
        ex i0 be Element of dom h, hi be Function of F.i0,G.i0
        st i = i0 & hi = h.i0 & x.i in F.i0 & y.i0 = hi.(x.i) by A12;
        hence x.i in F.i;
      end; then
      reconsider x as Element of product F by A12,CARD_3:9;
      take x;
      A14: dom y = dom(p.x) by A6,CARD_3:9;
      now
        let i be object;
        assume i in dom y; then
        i in dom F by A1,A5,CARD_3:9; then
        consider i0 be Element of dom h, hi be Function of F.i0,G.i0 such that
        A16: i = i0 & hi = h.i0 & x.i in F.i0 & y.i0 = hi.(x.i) by A12;
        ex hi be Function of F.i0,G.i0
        st hi = h.i0 & (p.x).i0 = hi.(x.i0) by A1,A4,Def5;
        hence y.i = (p.x).i by A16;
      end;
      hence thesis by A14,FUNCT_1:2;
    end; then
    rng p = product G by FUNCT_2:10;
    hence thesis by FUNCT_2:def 3;
  end;
