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

theorem Thm31:
  for Xn being non-empty n-element FinSequence,
  X1 being non-empty 1-element FinSequence,
  Sn being SemiringFamily of Xn, S1 be SemiringFamily of X1 st
  SemiringProduct(Sn) is semiring_of_sets of product Xn &
  SemiringProduct(S1) is semiring_of_sets of product X1 holds
  SemiringProduct(Sn^S1) is semiring_of_sets of product (Xn^X1)
  proof
    let Xn be non-empty n-element FinSequence,
    X1 be non-empty 1-element FinSequence, Sn be SemiringFamily of Xn,
    S1 be SemiringFamily of X1;
    assume that
A1: SemiringProduct(Sn) is semiring_of_sets of product Xn and
A2: SemiringProduct(S1) is semiring_of_sets of product X1;
    reconsider S12 = the set of all [:s1,s2:] where
    s1 is Element of SemiringProduct(Sn),
    s2 is Element of SemiringProduct(S1) as
    semiring_of_sets of [:product Xn,product X1:] by A1,A2,Thm29;
    consider I be Function of [: product Xn,product X1 :],product(Xn^X1)
    such that
A3: I is one-to-one and
    I is onto and
    for x,y be FinSequence st x in product Xn & y in product X1
    holds I.(x,y) = x^y and
A4: I.:S12 = SemiringProduct(Sn^S1) by A1,A2,Thm30;
    thus thesis by A3,A4,Thm11,Thm12;
  end;
