
theorem Th27:
for X,Y be non empty set, S1 be SigmaField of X, S2 be SigmaField of Y,
    M1 be sigma_Measure of S1, M2 be sigma_Measure of S2
 st M1 is sigma_finite & M2 is sigma_finite
  holds Prod_Measure(M1,M2) is sigma_finite
proof
    let X,Y be non empty set, S1 be SigmaField of X,S2 be SigmaField of Y,
    M1 be sigma_Measure of S1, M2 be sigma_Measure of S2;
    assume
A1:  M1 is sigma_finite & M2 is sigma_finite;
    set M = Prod_Measure(M1,M2);

    consider E1 being Set_Sequence of S1 such that
A2:  (for n being Nat holds M1.(E1.n) < +infty )
   & Union E1 = X by A1,MEASUR11:def 12;

    consider E2 being Set_Sequence of S2 such that
A3:  (for n being Nat holds M2.(E2.n) < +infty )
   & Union E2 = Y by A1,MEASUR11:def 12;

    set F1 = Partial_Union E1, F2 = Partial_Union E2;

A4: F1 is non-descending & F2 is non-descending by PROB_3:11;

    deffunc G(Nat)
     = In( [:F1.$1,F2.$1:], sigma(measurable_rectangles(S1,S2)));

    consider E be Function of NAT,sigma measurable_rectangles(S1,S2)
      such that
A5:  for i being Element of NAT holds E.i = G(i) from FUNCT_2:sch 4;


A6: for i be Nat holds E.i = [:F1.i,F2.i:]
    proof
     let i be Nat;
     F1.i in S1 & F2.i in S2 by Th26; then
A7:  [:F1.i,F2.i:] in measurable_rectangles(S1,S2);

     measurable_rectangles(S1,S2)
      c= sigma measurable_rectangles(S1,S2) by PROB_1:def 9; then
A8:  In( [:F1.i,F2.i:], sigma measurable_rectangles(S1,S2))
      = [:F1.i,F2.i:] by A7,SUBSET_1:def 8;

     i in NAT by ORDINAL1:def 12;
     hence thesis by A5,A8;
    end;

    reconsider E as SetSequence of [:X,Y:] by FUNCT_2:7;

A9: measurable_rectangles(S1,S2)
     c= sigma measurable_rectangles(S1,S2) by PROB_1:def 9;

A10: for i be Nat holds E.i in sigma measurable_rectangles(S1,S2)
    proof
     let i be Nat;
     F1.i in S1 & F2.i in S2 by Th26; then
A11: [:F1.i,F2.i:] in measurable_rectangles(S1,S2);

     E.i = [:F1.i,F2.i:] by A6;
     hence thesis by A9,A11;
    end;
    reconsider E as Set_Sequence of sigma measurable_rectangles(S1,S2)
      by A10,MEASURE8:def 2;
A12:Union F1 = Union E1 & Union F2 = Union E2 by PROB_3:15;

    for z be object holds z in Union E iff z in [:X,Y:]
    proof
     let z be object;
     thus z in Union E implies z in [:X,Y:];
     assume z in [:X,Y:]; then
      consider x,y be object such that
A13:   x in X & y in Y & z =[x,y] by ZFMISC_1:def 2;
A14:  x in union rng F1 & y in union rng F2 by A2,A3,A12,A13,CARD_3:def 4;

      consider W1 being set such that
A15:   x in W1 & W1 in rng F1 by A14,TARSKI:def 4;

      consider W2 being set such that
A16:   y in W2 & W2 in rng F2 by A14,TARSKI:def 4;

      consider i be object such that
A17:   i in dom F1 & W1=F1.i by A15,FUNCT_1:def 3;
      reconsider i as Nat by A17;
      consider j be object such that
A18:   j in dom F2 & W2=F2.j by A16,FUNCT_1:def 3;
      reconsider j as Nat by A18;
      reconsider k = max(i,j) as Nat by XXREAL_0:16;
      F1.i c= F1.k & F2.j c= F2.k by A4,XXREAL_0:25; then
      z in [:F1.k,F2.k :] by A13,A17,A15,A18,A16,ZFMISC_1:87; then
A19:  z in E.k by A6;
      k in NAT by ORDINAL1:def 12; then
      k in dom E by FUNCT_2:def 1; then
      E.k in rng E by FUNCT_1:3; then
      z in union rng E by A19,TARSKI:def 4;
      hence z in Union E by CARD_3:def 4;
     end; then
A20: Union E = [:X,Y:];
A21: M1 is nonnegative & M2 is nonnegative;

     defpred Q1[Nat] means M1.(F1.$1) in REAL & M2.(F2.$1) in REAL;

A22: M1.(E1.0) < +infty & M2.(E2.0) < +infty by A2,A3;
     0 <= M1.(E1.0) & 0 <= M2.(E2.0) by A21; then
     M1.(E1.0) in REAL & M2.(E2.0) in REAL by A22,XXREAL_0:14; then
A23: Q1[0] by PROB_3:def 2;
A24: for i be Nat st Q1[i] holds Q1[i+1]
     proof
      let i be Nat;
      assume A25: Q1[i];
A26:  F1.(i+1) = F1.i \/ E1.(i+1) & F2.(i+1) = F2.i \/ E2.(i+1)
        by PROB_3:def 2;

A27:  F1.i in S1 & F2.i in S2 by Th26;
A28:  M1.(F1.(i+1)) <= M1.(F1.i) + M1.(E1.(i+1))
    & M2.(F2.(i+1)) <= M2.(F2.i) + M2.(E2.(i+1)) by MEASURE1:10,A26,A27;
      F1.(i+1) in S1 & F2.(i+1) in S2 by Th26; then
A29:  0 <= M1.(F1.(i+1)) & 0 <= M2.(F2.(i+1)) by A21;
A30:  0 <= M1.(E1.(i+1)) & 0 <= M2.(E2.(i+1)) by A21;
      reconsider m1f1= M1.(F1.i), m2f2= M2.(F2.i) as Real by A25;

      M1.(E1.(i+1)) < +infty & M2.(E2.(i+1)) < +infty by A2,A3; then
      M1.(E1.(i+1)) in REAL & M2.(E2.(i+1)) in REAL by A30,XXREAL_0:14; then
      reconsider m1e1 = M1.(E1.(i+1)), m2e2 = M2.(E2.(i+1)) as Real;

      M1.(F1.i) + M1.(E1.(i+1)) = m1f1 + m1e1
    & M2.(F2.i) + M2.(E2.(i+1)) = m2f2 + m2e2; then
      M1.(F1.i) + M1.(E1.(i+1)) < +infty
    & M2.(F2.i) + M2.(E2.(i+1)) < +infty by XREAL_0:def 1,XXREAL_0:9;
      hence thesis by A28,A29,XXREAL_0:14;
     end;
A31: for i be Nat holds Q1[i] from NAT_1:sch 2(A23,A24);
     for i being Nat holds M.(E.i) < +infty
     proof
      let i be Nat;
A32:  E.i = [:F1.i,F2.i:] by A6;
A33:  F1.i in S1 & F2.i in S2 by Th26;
      Prod_Measure(M1,M2).(E.i) = (product_sigma_Measure(M1,M2)). [:F1.i,F2.i:]
        by A32,MESFUN12:def 9; then
A34:  Prod_Measure(M1,M2).(E.i) = M1.(F1.i) * M2.(F2.i)
        by A32,A33,MEASUR11:16;
      M1.(F1.i) in REAL & M2.(F2.i) in REAL by A31; then
      reconsider m1 = M1.(F1.i), m2 = M2.(F2.i) as Real;
      M1.(F1.i) * M2.(F2.i) = m1*m2;
      hence M.(E.i) < +infty by A34,XREAL_0:def 1,XXREAL_0:9;
     end;
     hence Prod_Measure(M1,M2) is sigma_finite by A20,MEASUR11:def 12;
end;
