
theorem Th73:
  for I being non empty set
  for J being TopSpace-yielding non-Empty ManySortedSet of I
  for i,j being Element of I, f being Function of product J, [: J.i, J.j :]
  st i <> j & f = <: proj(J,i), proj(J,j) :>
  holds f is onto open
proof
  let I be non empty set;
  let J be TopSpace-yielding non-Empty ManySortedSet of I;
  let i,j be Element of I, f be Function of product J, [: J.i, J.j :];
  assume A1: i <> j & f = <: proj(J,i), proj(J,j) :>;
  :: onto is corrolary from previous theorem
  a2:  for k being Element of I holds Carrier J.k c= (Carrier J).k;
  A3: for k being Element of I holds
    proj(J,k).:[#]product Carrier J = the carrier of J.k
  proof
    let k be Element of I;
    thus proj(J,k).:[#]product Carrier J
       = proj(J,k).:product Carrier J by SUBSET_1:def 3
      .= proj(J,k).:dom proj(Carrier J,k) by CARD_3:def 16
      .= proj(J,k).:dom proj(J,k) by WAYBEL18:def 4
      .= rng proj(J,k) by RELAT_1:113
      .= the carrier of J.k by Th52;
  end;
  rng f = <: proj(J,i), proj(J,j) :>.:dom f by A1, RELAT_1:113
    .= <: proj(J,i), proj(J,j) :>.:the carrier of product J by FUNCT_2:def 1
    .= <: proj(J,i), proj(J,j) :>.:product Carrier J by WAYBEL18:def 3
    .= <: proj(J,i), proj(J,j) :>.:[#]product Carrier J by SUBSET_1:def 3
    .= [: proj(J,i).:[#]product Carrier J, proj(J,j).:[#]product Carrier J :]
      by A1, SUBSET_1:def 3,a2, Th72
    .= [: the carrier of J.i, proj(J,j).:[#]product Carrier J :] by A3
    .= [: the carrier of J.i, the carrier of J.j :] by A3
    .= the carrier of [: J.i, J.j :] by BORSUK_1:def 2;
  hence f is onto by FUNCT_2:def 3;
  :: openness will be shown using the canonical base of the product space,
  :: the Theorem of canonical base characterisation and the previous theorem
  ex B being Basis of product J st
    for P being Subset of product J st P in B holds f.:P is open
  proof
    set B = FinMeetCl product_prebasis J;
    set T = product J;
    reconsider K = product_prebasis J as Subset-Family of T
      by WAYBEL18:def 3;
    FinMeetCl K is Basis of T by WAYBEL18:def 3, YELLOW_9:23;
    then reconsider B as Basis of product J by WAYBEL18:def 3;
    take B;
    let P be Subset of product J;
    assume A4: P in B;
    A5: proj(J,i).:P is open & proj(J,j).:P is open
    proof
      per cases;
      suppose P <> {};
        then ex I0 being finite Subset of I st
          for j being Element of I holds proj(J,j).:P is open &
            (not j in I0 implies proj(J,j).:P = [#](J.j)) by A4, Th63;
        hence thesis;
      end;
      suppose P = {};
        then proj(J,i).:P is empty & proj(J,i).:P is Subset of J.i &
          proj(J,j).:P is empty & proj(J,j).:P is Subset of J.j;
        hence thesis;
      end;
    end;
    A7: ex F being ManySortedSet of I st P = product F &
      for k being Element of I holds F.k c= (Carrier J).k
    proof
      consider X being Subset-Family of product Carrier J,
        g being one-to-one I-valued Function such that
          X c= product_prebasis J & X is finite & P=Intersect X & dom g = X and
          A8: P = product(Carrier J +* product_basis_selector(J,g))
        by A4, Lm3;
      set F = Carrier J +* product_basis_selector(J,g);
      reconsider F as ManySortedSet of I;
      take F;
      thus P = product F by A8;
      let k be Element of I;
      per cases;
      suppose A9: k in rng g;
        then k in dom product_basis_selector(J,g) by PARTFUN1:def 2;
        then a10: F.k = product_basis_selector(J,g).k by FUNCT_4:13
          .= proj(J,k).:(g".k) by A9, Th54;
        rng proj(J,k) = the carrier of J.k by Th52
          .= [#](J.k) by STRUCT_0:def 3
          .= (Carrier J).k by PENCIL_3:7;
        hence thesis by a10,RELAT_1:111;
      end;
      suppose not k in rng g;
        then not k in dom product_basis_selector(J,g);
        hence thesis by FUNCT_4:11;
      end;
    end;
    P is Subset of product Carrier J by WAYBEL18:def 3;
    then f.:P = [: proj(J,i).:P, proj(J,j).:P :] by A1, A7, Th72;
    hence f.:P is open by A5, BORSUK_1:6;
  end;
  hence f is open by Th45;
end;
