reserve X1,X2,X3,X4 for set;
reserve n for non zero Nat;
reserve X for non-empty n-element FinSequence;

theorem Thm19:
  for X being n-element FinSequence holds
    SemiringProduct(X) c= bool Funcs(dom X, union Union X)
  proof
    let X be n-element FinSequence;
    let x be object;
    assume x in SemiringProduct(X);
    then consider g be Function such that
A1:   x = product g and
A2:   g in product X by Def3;
A3:   dom g = dom X by A2,CARD_3:9;
    rng g c= Union X
    proof
      let t be object;
      assume t in rng g;
      then consider u be object such that
A4:     u in dom g and
A5:     t=g.u by FUNCT_1:def 3;
      consider h be Function such that
A6:   g = h and
A7:   dom h = dom X and
A8:   for v be object st v in dom X holds h.v in X.v by A2,CARD_3:def 5;
      t in X.u & X.u in rng X by A6,A7,A8,A4,A5,FUNCT_1:def 3;
      hence thesis by TARSKI:def 4;
    end;
    then Union g c= union Union X by ZFMISC_1:77;
    then Funcs(dom g,Union g) c= Funcs(dom X, union Union X)
    by A3,FUNCT_5:56; then
A9:   bool Funcs(dom g,Union g) c= bool Funcs(dom X, union Union X)
    by ZFMISC_1:67;
    product g c= Funcs(dom g, Union g) by FUNCT_6:1;
    hence thesis by A1,A9;
end;
