reserve Omega, I for non empty set;
reserve Sigma for SigmaField of Omega;
reserve P for Probability of Sigma;
reserve D, E, F for Subset-Family of Omega;
reserve  B, sB for non empty Subset of Sigma;
reserve b for Element of B;
reserve a for Element of Sigma;
reserve p, q, u, v for Event of Sigma;
reserve n, m for Element of NAT;
reserve S, S9, X, x, y, z, i, j for set;

theorem Th4:
  for f being SetSequence of Sigma holds (for n,b holds P.(f.n /\ b
  ) = P.(f.n) * P.b) & f is disjoint_valued implies P.(b /\ Union f) = P.b * P.
  Union f
proof
  let f be SetSequence of Sigma;
  reconsider b as Element of Sigma;
  reconsider r=P.b as Real;
  for n being Nat holds seqIntersection(b,f).n is Event of Sigma
  proof
    let n be Nat;
A1:  n in NAT by ORDINAL1:def 12;
    b /\ f.n is Event of Sigma;
    hence thesis by DYNKIN:def 1,A1;
  end;
  then reconsider seqIntf=seqIntersection(b,f) as SetSequence of Sigma by
PROB_1:25;
  for n being Nat
   holds seqIntersection(b,Partial_Union f).n is Event of Sigma
  proof
    let n be Nat;
A2:  n in NAT by ORDINAL1:def 12;
    b /\ (Partial_Union f).n is Event of Sigma;
    hence thesis by DYNKIN:def 1,A2;
  end;
  then reconsider
  seqIntPf = seqIntersection(b,Partial_Union f) as SetSequence of
  Sigma by PROB_1:25;
A3: b /\ Union f = b /\ Union Partial_Union f by PROB_3:15
    .= Union seqIntPf by DYNKIN:10;
  assume
A4: for n,b holds P.(f.n /\ b) = P.(f.n) * P.b;
  now
    let n be Element of NAT;
    thus (P*seqIntf).n = P.(seqIntf.n) by FUNCT_2:15
      .= P.(f.n /\ b) by DYNKIN:def 1
      .= P.(f.n) * P.b by A4
      .= (P*f).n * r by FUNCT_2:15
      .= (r(#)(P*f)).n by SEQ_1:9;
  end;
  then
A5: P*seqIntf = r(#)(P*f) by FUNCT_2:def 7;
A6: for n,m st n <= m holds x in (Partial_Union f).n implies x in (
  Partial_Union f).m
  proof
    reconsider Pf = Partial_Union f as SetSequence of Sigma;
    let n,m;
    assume
A7: n <= m;
    assume
A8: x in (Partial_Union f).n;
    Pf is non-descending by PROB_3:11;
    then Pf.n c= Pf.m by A7;
    hence thesis by A8;
  end;
  for n,m being Nat st n <= m
   holds seqIntersection(b,Partial_Union f).n c=
  seqIntersection(b,Partial_Union f).m
  proof
    let n,m be Nat;
    assume
A9: n <= m;
A10:  m in NAT by ORDINAL1:def 12;
A11:  n in NAT by ORDINAL1:def 12;
    let x be object;
    assume x in seqIntersection(b,Partial_Union f).n;
    then
A12: x in b /\ (Partial_Union f).n by DYNKIN:def 1,A11;
    then x in (Partial_Union f).n by XBOOLE_0:def 4;
    then
A13: x in (Partial_Union f).m by A6,A9,A11,A10;
    x in b by A12,XBOOLE_0:def 4;
    then x in b /\ (Partial_Union f).m by A13,XBOOLE_0:def 4;
    hence thesis by DYNKIN:def 1,A10;
  end;
  then
A14: seqIntersection(b,Partial_Union f) is non-descending;
  assume
A15: f is disjoint_valued;
  then
A16: seqIntersection(b,f) is disjoint_valued by DYNKIN:9;
  for n holds (Partial_Union seqIntf).n = seqIntersection(b,
  Partial_Union f).n
  proof
    defpred P[Nat] means (Partial_Union seqIntf).$1 = seqIntersection(b,
    Partial_Union f).$1;
    let n;
A17: for k being Nat st P[k] holds P[k+1]
    proof
      let k be Nat such that
A18:  (Partial_Union seqIntf).k = seqIntersection(b,Partial_Union f ).k;
      reconsider k as Element of NAT by ORDINAL1:def 12;
      (Partial_Union seqIntf).(k+1) = (Partial_Union seqIntf).k \/
      seqIntf.(k+1) by PROB_3:def 2
        .= (b /\ (Partial_Union f).k) \/ seqIntf.(k+1) by A18,DYNKIN:def 1
        .= (b /\ (Partial_Union f).k) \/ (b /\ f.(k+1)) by DYNKIN:def 1
        .= b /\ ((Partial_Union f).k \/ f.(k+1)) by XBOOLE_1:23
        .= b /\ (Partial_Union f).(k+1) by PROB_3:def 2
        .= seqIntersection(b,Partial_Union f).(k+1) by DYNKIN:def 1;
      hence thesis;
    end;
    (Partial_Union seqIntf).0 = seqIntf.0 by PROB_3:def 2
      .= b /\ f.0 by DYNKIN:def 1
      .= b /\ (Partial_Union f).0 by PROB_3:def 2
      .= seqIntersection(b,Partial_Union f).0 by DYNKIN:def 1;
    then
A19: P[0];
    for k being Nat holds P[k] from NAT_1:sch 2(A19,A17);
    hence thesis;
  end;
  then
  P * seqIntersection(b,Partial_Union f) = P * Partial_Union seqIntf by
FUNCT_2:63
    .= Partial_Sums (P*seqIntf) by A16,PROB_3:44
    .= r(#)Partial_Sums(P*f) by A5,SERIES_1:9
    .= r(#)(P * Partial_Union f) by A15,PROB_3:44;
  then r * lim (P*Partial_Union f) = lim (P*seqIntPf) by PROB_3:41,SEQ_2:8
    .=P.(b /\ Union f) by A14,A3,PROB_2:10;
  hence thesis by PROB_3:41;
end;
