The Mizar article:

Dynkin's Lemma in Measure Theory

by
Franz Merkl

Received November 27, 2000

Copyright (c) 2000 Association of Mizar Users

MML identifier: DYNKIN
[ MML identifier index ]


environ

 vocabulary PROB_1, RELAT_1, FUNCT_1, ALGSEQ_1, FINSET_1, BOOLE, FUNCOP_1,
      FUNCT_4, TARSKI, PROB_2, SETFAM_1, COHSP_1, SUBSET_1, DYNKIN;
 notation TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, FINSET_1, NUMBERS, XREAL_0,
      SETFAM_1, RELAT_1, FUNCT_1, FUNCT_2, NAT_1, FUNCT_4, FUNCOP_1, ALGSEQ_1,
      PROB_1, COHSP_1, PROB_2;
 constructors ALGSEQ_1, NAT_1, FUNCT_4, COHSP_1, PROB_2, MEMBERED;
 clusters SUBSET_1, ARYTM_3, RELSET_1, FINSET_1, FUNCT_1, FUNCT_4, FUNCOP_1,
      MEMBERED, NUMBERS, ORDINAL2;
 requirements NUMERALS, BOOLE, SUBSET, ARITHM;
 theorems TARSKI, PROB_1, FUNCT_1, ZFMISC_1, FUNCT_2, ALGSEQ_1, FUNCT_4,
      SUBSET_1, NAT_1, RELSET_1, RELAT_1, FINSET_1, FUNCOP_1, SETFAM_1, REAL_1,
      PROB_2, FINSUB_1, XBOOLE_0, XBOOLE_1;
 schemes FUNCT_2, NAT_1, FINSET_1, XBOOLE_0;

begin

reserve Omega, F for non empty set,
        f for SetSequence of Omega,
        X,A,B for Subset of Omega,
        D for non empty Subset of bool Omega,
        k,n,m for Nat,
        h,x,y,z,u,v,Y,I for set;

:::::::::::::::::::
:: Preliminaries ::
:::::::::::::::::::

theorem Th1:
 for f being SetSequence of Omega
  for x holds x in rng f iff ex n st f.n=x
proof
 let f be SetSequence of Omega;
 let x;
 A1: dom f=NAT by FUNCT_2:def 1;
   now assume x in rng f;
  then consider z such that A2: z in dom f & x=f.z by FUNCT_1:def 5;
  reconsider n=z as Nat by A2,FUNCT_2:def 1;
  take n;
  thus f.n=x by A2;
 end;
 hence thesis by A1,FUNCT_1:def 5;
end;

theorem Th2:
 for n holds PSeg(n) is finite
proof
 defpred P[Nat] means PSeg($1) is finite;
 A1: P[0] by ALGSEQ_1:11;
 A2: for n st P[n] holds P[n+1]
 proof
  let n;
  assume P[n];
  then PSeg(n) \/ {n} is finite by FINSET_1:14;
  hence thesis by ALGSEQ_1:17;
 end;
 thus for n holds P[n] from Ind(A1,A2);
end;

definition let n;
 cluster PSeg(n) -> finite;
 coherence by Th2;
end;

definition
 let a,b,c be set;
 func (a,b) followed_by c equals :Def1:
 (NAT --> c) +* ((0,1) --> (a,b));
 coherence;
end;

definition
 let a,b,c be set;
 cluster (a,b) followed_by c -> Function-like Relation-like;
 coherence
 proof
     (a,b) followed_by c = (NAT --> c) +* ((0,1) --> (a,b)) by Def1;
   hence thesis;
 end;
end;

definition
 let X be non empty set;
 let a,b,c be Element of X;
 redefine func (a,b) followed_by c -> Function of NAT, X;
 coherence
 proof
    dom(NAT --> c) = NAT & rng(NAT --> c) = {c}
  & dom((0,1) --> (a,b)) = {0,1} & rng((0,1) --> (a,b)) = {a,b}
   by FUNCOP_1:14,19,FUNCT_4:65,67;
  then A1: dom((NAT --> c) +* ((0,1) --> (a,b))) = NAT \/ {0,1}
  & rng ((NAT --> c) +* ((0,1) --> (a,b))) c= {c} \/ {a,b}
   by FUNCT_4:18,def 1;
    NAT \/ {0,1} = NAT
   proof
      now
     let x;
     assume x in NAT \/ {0,1};
     then x in NAT or x in {0,1} by XBOOLE_0:def 2;
     then x in NAT or x=0 or x=1 by TARSKI:def 2;
     hence x in NAT;
    end;
    then NAT \/ {0,1} c= NAT & NAT c= NAT \/ {0,1} by TARSKI:def 3,XBOOLE_1:7;
    hence thesis by XBOOLE_0:def 10;
   end;
  then A2: dom((a,b) followed_by c)=NAT
  & rng((a,b) followed_by c) c= {c} \/ {a,b} by A1,Def1;
    {c} c= X & {a,b} c= X by ZFMISC_1:37,38;
  then {c} \/ {a,b} c= X by XBOOLE_1:8;
  then rng((a,b) followed_by c) c= X by A2,XBOOLE_1:1;
  hence (a,b) followed_by c is Function of NAT, X by A2,FUNCT_2:4;
 end;
end;

 Lm1:
 for X being non empty set
  for a,b,c being Element of X holds
   (a,b) followed_by c is Function of NAT,X;

definition
 let Omega be non empty set;
 let a,b,c be Subset of Omega;
 redefine func (a,b) followed_by c -> SetSequence of Omega;
 coherence
 proof
  thus (a,b) followed_by c is SetSequence of Omega;
 end;
end;

canceled 2;

theorem Th5:
for a,b,c being set holds
 ((a,b) followed_by c).0 = a &
 ((a,b) followed_by c).1 = b &
 for n st n <> 0 & n <> 1 holds
 ((a,b) followed_by c).n = c
proof
 let a,b,c be set;
 A1: dom(NAT --> c) = NAT & rng(NAT --> c) = {c}
  & dom((0,1) --> (a,b)) = {0,1} & rng((0,1) --> (a,b)) = {a,b}
   by FUNCOP_1:14,19,FUNCT_4:65,67;
 A2: ((0,1) --> (a,b)).0=a &((0,1) --> (a,b)).1=b by FUNCT_4:66;
    0 in {0,1} & 1 in {0,1} by TARSKI:def 2;
 then ((NAT --> c) +* ((0,1) --> (a,b))).0=a
    & ((NAT --> c) +* ((0,1) --> (a,b))).1=b
  by A1,A2,FUNCT_4:14;
 hence ((a,b) followed_by c).0=a & ((a,b) followed_by c).1 = b
  by Def1;
 let n such that A3: n <> 0 & n <> 1;
 A4: not n in dom((0,1) --> (a,b)) by A1,A3,TARSKI:def 2;
 thus ((a,b) followed_by c).n=((NAT --> c) +* ((0,1) --> (a,b))).n
  by Def1
 .= (NAT --> c).n by A4,FUNCT_4:12
 .= c by FUNCOP_1:13;
end;

theorem Th6:
 for a,b being Subset of Omega holds
 union rng ((a,b) followed_by {}) = a \/ b
proof
 let a,b be Subset of Omega;
  ((a,b) followed_by {} Omega) is SetSequence of Omega;
 then reconsider r=((a,b) followed_by {}) as Function of NAT, bool Omega;
   r.0=a & r.1=b by Th5;
 then a in rng r & b in rng r by FUNCT_2:6;
 then a c= union rng r & b c= union rng r by ZFMISC_1:92;
 then A1: a \/ b c= union rng r by XBOOLE_1:8;
 A2: for x st x in dom r holds r.x=a or r.x=b or r.x={}
 proof
  let x such that A3: x in dom r;
  reconsider n=x as Nat by A3,FUNCT_2:def 1;
    r.0=a & r.1=b & (n<>0 & n<>1 implies r.n={}) by Th5;
  hence thesis;
 end;
 A4: for y st y in rng r holds y=a or y=b or y={}
 proof
  let y such that A5: y in rng r;
  consider x such that A6: x in dom r & y=r.x by A5,FUNCT_1:def 5;
  thus thesis by A2,A6;
 end;
   for z holds z in union rng r implies z in a \/ b
 proof
  let z;
  assume z in union rng r;
  then consider y such that A7: z in y & y in rng r by TARSKI:def 4;
    z in a or z in b or z in {} by A4,A7;
  hence z in a \/ b by XBOOLE_0:def 2;
 end;
 then union rng r c= a \/ b by TARSKI:def 3;
 hence thesis by A1,XBOOLE_0:def 10;
end;

definition
 let Omega be non empty set;
 let f be SetSequence of Omega;
 let X be Subset of Omega;
 func seqIntersection(X,f) -> SetSequence of Omega
 means :Def2:
 for n holds it.n = X /\ f.n;
 existence
 proof
  deffunc F(Nat) = X /\ f.$1;
  consider g being Function of NAT, bool Omega such that
   A1: for x being Element of NAT holds g.x = F(x) from LambdaD;
  take g;
  let n;
  thus g.n= X /\ f.n by A1;
 end;
 uniqueness
 proof
  let i1,i2 be SetSequence of Omega;
  assume A2: for n holds i1.n=X/\ f.n;
  assume A3: for n holds i2.n=X/\ f.n;
    now
   let n be Element of NAT;
     i1.n=X/\ f.n & i2.n=X/\ f.n by A2,A3;
   hence i1.n=i2.n;
  end;
  hence i1=i2 by FUNCT_2:113;
 end;
end;

begin
::::::::::::::::::::::::::::::::::::::::::::::::
:: disjoint-valued functions and intersection ::
::::::::::::::::::::::::::::::::::::::::::::::::

definition let Omega; let f;
  redefine attr f is disjoint_valued means :Def3:
    n<m implies f.n misses f.m;
  compatibility
  proof
    thus f is disjoint_valued implies
      for n,m holds (n<m implies f.n misses f.m) by PROB_2:def 3;
    assume A1: n<m implies f.n misses f.m;
      now let x,y be set; assume A2: x <> y;
      per cases;
      suppose x in dom f & y in dom f;
      then reconsider n = x, m = y as Nat by FUNCT_2:def 1;
        n < m or n > m by A2,REAL_1:def 5;
      hence f.x misses f.y by A1;
      suppose not (x in dom f & y in dom f);
      then f.x = {} or f.y = {} by FUNCT_1:def 4;
      hence f.x misses f.y by XBOOLE_1:65;
    end;
    hence thesis by PROB_2:def 3;
  end;
end;

theorem Th7:
for Y being non empty set holds
 for x holds
  x c= meet Y iff for y being Element of Y holds x c= y
proof
 let Y be non empty set;
 let x;
 hereby
  assume A1: x c= meet Y;
  let y be Element of Y;
    for z st z in x holds z in y by A1,SETFAM_1:def 1;
  hence x c= y by TARSKI:def 3;
 end;
 assume A2: for y being Element of Y holds x c= y;
   for z holds z in x implies z in meet Y
  proof
   let z;
   assume A3: z in x;
     now
    let u such that A4: u in Y;
      x c= u by A2,A4;
    hence z in u by A3;
   end;
   hence z in meet Y by SETFAM_1:def 1;
  end;
  hence x c= meet Y by TARSKI:def 3;
end;

definition let x be set;
 redefine attr x is multiplicative;
 synonym x is intersection_stable;
end;

definition
  let Omega be non empty set;
  let f be SetSequence of Omega;
  let n be Element of NAT;
 canceled;

  func disjointify(f,n) -> Element of bool Omega equals
:Def5:
  f.n \ union rng (f|PSeg(n));
  coherence
  proof
     f.n \ union rng (f|PSeg(n)) c= f.n by XBOOLE_1:36;
   hence f.n \ union rng (f|PSeg(n)) is Element of bool Omega by XBOOLE_1:1;
  end;
end;

definition
 let Omega be non empty set;
 let g be SetSequence of Omega;
 func disjointify(g) -> SetSequence of Omega means
:Def6:
 for n holds it.n=disjointify(g,n);
 existence
 proof
  deffunc F(Nat) = disjointify(g,$1);
  consider f being Function of NAT, bool Omega such that
   A1: for x being Element of NAT holds f.x = F(x) from LambdaD;
  take f;
  let n;
  thus f.n= disjointify(g,n) by A1;
 end;
 uniqueness
 proof
  let i1,i2 be SetSequence of Omega;
  assume A2: for n holds i1.n=disjointify(g,n);
  assume A3: for n holds i2.n=disjointify(g,n);
    now
   let n be Element of NAT;
     i1.n=disjointify(g,n) & i2.n=disjointify(g,n) by A2,A3;
   hence i1.n=i2.n;
  end;
  hence i1=i2 by FUNCT_2:113;
 end;
end;

theorem Th8:
 for n holds (disjointify(f)).n=f.n \ union rng(f|PSeg(n))
proof
 let n;
   (disjointify(f)).n=disjointify(f,n)
 & disjointify(f,n)=f.n \ union rng(f|PSeg(n)) by Def5,Def6;
 hence thesis;
end;

theorem Th9:
 for f being SetSequence of Omega holds
  disjointify(f) is disjoint_valued
proof
 let f be SetSequence of Omega;
   now
  let n,m;
  assume n<m;
  then A1: n in PSeg(m) by ALGSEQ_1:10;
    dom f=NAT by FUNCT_2:def 1;
  then dom(f|PSeg(m))=PSeg(m)/\ NAT by RELAT_1:90;
  then n in dom(f|PSeg(m)) by A1,XBOOLE_0:def 3;
  then A2: (f|PSeg(m)).n in rng(f|PSeg(m)) by FUNCT_1:def 5;
    (f|PSeg(m)).n=f.n by A1,FUNCT_1:72;
  then f.n c= union rng(f|PSeg(m)) by A2,ZFMISC_1:92;
  then f.n misses f.m \ union rng(f|PSeg(m)) by XBOOLE_1:85;
  then A3: f.n misses (disjointify(f)).m by Th8;
    f.n \ union rng(f|PSeg(n)) c= f.n by XBOOLE_1:36;
  then (disjointify(f)).n c= f.n by Th8;
  hence (disjointify(f)).n misses (disjointify(f)).m by A3,XBOOLE_1:63;
 end;
 hence thesis by Def3;
end;

theorem Th10:
 for f being SetSequence of Omega holds
  union rng disjointify(f) = union rng f
proof
 let f be SetSequence of Omega;
 A1: dom f=NAT & dom(disjointify(f))=NAT by FUNCT_2:def 1;
   now
  let x;
  assume x in union rng disjointify(f);
  then consider y such that A2: x in y & y in rng disjointify(f)
   by TARSKI:def 4;
  consider z such that A3: z in dom(disjointify(f)) & y=(disjointify(f)).z
   by A2,FUNCT_1:def 5;
  reconsider n=z as Nat by A3,FUNCT_2:def 1;
  A4: x in f.n\ union rng (f|PSeg(n)) by A2,A3,Th8;
  A5: f.n\ union rng (f|PSeg(n)) c= f.n by XBOOLE_1:36;
    f.n in rng(f) by A1,FUNCT_1:def 5;
  hence x in union rng f by A4,A5,TARSKI:def 4;
 end;
 then A6: union rng disjointify(f) c= union rng f by TARSKI:def 3;
   now
  let x;
  assume x in union rng f;
  then consider y such that A7: x in y & y in rng f
   by TARSKI:def 4;
  consider z such that A8: z in dom(f) & y=f.z
   by A7,FUNCT_1:def 5;
  reconsider n=z as Nat by A8,FUNCT_2:def 1;
  defpred P[Nat] means x in f.$1;
  A9: ex k st P[k]
  proof
   take n;
   thus thesis by A7,A8;
  end;
  consider k such that
  A10: P[k] & for m st P[m] holds k <= m from Min(A9);
    now
   assume x in union rng(f|PSeg(k));
   then consider y such that A11: x in y & y in rng(f|PSeg(k))
    by TARSKI:def 4;
   consider z such that A12: z in dom(f|PSeg(k)) & y=(f|PSeg(k)).z
    by A11,FUNCT_1:def 5;
     dom(f|PSeg(k)) c= NAT by A1,RELAT_1:89;
   then reconsider n=z as Nat by A12;
   A13: dom(f|PSeg(k)) c= PSeg(k) by RELAT_1:87;
   then A14: n<k by A12,ALGSEQ_1:10;
     y=f.n by A12,A13,FUNCT_1:72;
   hence contradiction by A10,A11,A14;
  end;
  then x in f.k \ union rng(f|PSeg(k)) by A10,XBOOLE_0:def 4;
  then A15: x in (disjointify(f)).k by Th8;
    (disjointify(f)).k in rng disjointify(f) by A1,FUNCT_1:def 5;
  hence x in union rng disjointify(f) by A15,TARSKI:def 4;
 end;
 then union rng f c= union rng disjointify(f) by TARSKI:def 3;
 hence thesis by A6,XBOOLE_0:def 10;
end;

theorem Th11:
 for x,y being Subset of Omega st x misses y holds
  (x,y) followed_by {} Omega is disjoint_valued
proof
 let x,y be Subset of Omega such that A1: x misses y;
 reconsider r=(x,y) followed_by {} Omega as Function of NAT, bool Omega;
   now
  let n,m;
  assume A2: n<m;
  A3: n=0 & m=1 or m<>0 & m<>1
  proof
     now
    assume A4: m=0 or m=1;
      0+1=1;
    then n <= 0 by A2,A4,NAT_1:38;
    hence n=0 & m=1 by A2,A4,NAT_1:19;
   end;
   hence thesis;
  end;
  A5:r.0=x & r.1=y by Th5;
    m<>0 & m<>1 implies r.m={} by Th5;
  hence r.n misses r.m by A1,A3,A5,XBOOLE_1:65;
 end;
 hence thesis by Def3;
end;

theorem Th12:
for f being SetSequence of Omega holds
 f is disjoint_valued implies
 for X being Subset of Omega holds seqIntersection(X,f) is disjoint_valued
proof
 let f be SetSequence of Omega;
 assume A1: f is disjoint_valued;
 let X be Subset of Omega;
   for n,m holds n<m
  implies (seqIntersection(X,f)).n misses (seqIntersection(X,f)).m
 proof
  let n,m;
  assume n<m;
  then f.n misses f.m by A1,PROB_2:def 3;
  then A2: X/\ f.n misses f.m by XBOOLE_1:74;
    (seqIntersection(X,f)).n=X/\ f.n &
  (seqIntersection(X,f)).m=X/\ f.m by Def2;
  hence thesis by A2,XBOOLE_1:74;
 end;
 hence seqIntersection(X,f) is disjoint_valued by Def3;
end;

theorem Th13:
for f being SetSequence of Omega
 for X being Subset of Omega holds
  X/\ Union f= Union seqIntersection(X,f)
proof
 let f be SetSequence of Omega;
 let X be Subset of Omega;
 A1: dom f=NAT & dom seqIntersection(X,f)=NAT by FUNCT_2:def 1;
   now
  let z;
  assume z in X/\ Union f;
  then A2: z in X & z in Union f by XBOOLE_0:def 3;
  then z in X & z in union rng f by PROB_1:def 3;
  then consider u such that A3: z in u & u in rng f by TARSKI:def 4;
  consider v such that A4: v in dom f & u=f.v by A3,FUNCT_1:def 5;
  reconsider n=v as Nat by A4,FUNCT_2:def 1;
  A5: z in X/\ f.n by A2,A3,A4,XBOOLE_0:def 3;
    X/\ f.n = (seqIntersection(X,f)).n by Def2;
  then X/\ f.n in rng seqIntersection(X,f) by A1,FUNCT_1:def 5;
  then z in union rng seqIntersection(X,f) by A5,TARSKI:def 4;
  hence z in Union seqIntersection(X,f) by PROB_1:def 3;
 end;
 then A6:  X/\ Union f c= Union seqIntersection(X,f) by TARSKI:def 3;
   now
  let z;
  assume z in Union seqIntersection(X,f);
  then A7: z in union rng seqIntersection(X,f) by PROB_1:def 3;
  reconsider g=seqIntersection(X,f) as SetSequence of Omega;
  consider u such that A8: z in u & u in rng g by A7,TARSKI:def 4;
  consider v such that A9: v in dom g & u=g.v by A8,FUNCT_1:def 5;
  reconsider n=v as Nat by A9,FUNCT_2:def 1;
    z in X/\ f.n by A8,A9,Def2;
  then A10: z in X & z in f.n by XBOOLE_0:def 3;
    f.n in rng f by A1,FUNCT_1:def 5;
  then z in union rng f by A10,TARSKI:def 4;
  then z in Union f by PROB_1:def 3;
  hence z in X/\ Union f by A10,XBOOLE_0:def 3;
 end;
 then Union seqIntersection(X,f) c= X/\ Union f by TARSKI:def 3;
 hence thesis by A6,XBOOLE_0:def 10;
end;

begin

:::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Dynkin Systems:definition and closure properties ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::

definition let Omega;
  mode Dynkin_System of Omega -> Subset of bool Omega means
  :Def7:
  (for f holds rng f c= it & f is disjoint_valued implies Union f in it)
  & (for X holds X in it implies X` in it)
  & {} in it;
  existence
  proof
     bool Omega c= bool Omega;
   then reconsider D = bool Omega as non empty Subset of bool Omega;
   take D;
      {} c= Omega by XBOOLE_1:2;
   hence thesis;
  end;
end;

definition let Omega;
  cluster -> non empty Dynkin_System of Omega;
coherence by Def7;
end;

theorem Th14: bool Omega is Dynkin_System of Omega
proof
   A1: (for f holds rng f c= bool Omega & f is disjoint_valued implies
                   Union f in bool Omega)
       &(for X holds X in bool Omega implies X`in bool Omega);
     {} c= Omega by XBOOLE_1:2;
   then bool Omega c= bool Omega & {} in bool Omega;
   hence thesis by A1,Def7;
end;

theorem Th15:
  (for Y st Y in F holds Y is Dynkin_System of Omega) implies
  meet F is Dynkin_System of Omega
proof
 assume A1: for Y st Y in F holds Y is Dynkin_System of Omega;
 A2: now
      let f;
      assume A3: rng f c= meet F & f is disjoint_valued;
        now
       let Y such that A4: Y in F;
       A5: Y is Dynkin_System of Omega by A1,A4;
         meet F c= Y by A4,SETFAM_1:4;
       then rng f c= Y by A3,XBOOLE_1:1;
       hence Union f in Y by A3,A5,Def7;
      end;
      hence Union f in meet F by SETFAM_1:def 1;
     end;
 A6: now
      let X;
      assume A7: X in meet F;
        for Y st Y in F holds X` in Y
      proof
       let Y such that A8: Y in F;
       A9: Y is Dynkin_System of Omega by A1,A8;
         meet F c= Y by A8,SETFAM_1:4;
       hence X` in Y by A7,A9,Def7;
      end;
      hence X` in meet F by SETFAM_1:def 1;
     end;
 consider Y being Element of F;
 A10: Y is Dynkin_System of Omega by A1;
   meet F c= Y by SETFAM_1:4;
 then A11: meet F is Subset of bool Omega by A10,XBOOLE_1:1;
   now
  let Y such that A12: Y in F;
    Y is Dynkin_System of Omega by A1,A12;
  hence {} in Y by Def7;
 end;
 then {} in meet F by SETFAM_1:def 1;
 hence thesis by A2,A6,A11,Def7;
end;

theorem Th16:
 D is Dynkin_System of Omega & D is intersection_stable
 implies
 (A in D & B in D implies A\B in D)
proof
 assume A1: D is Dynkin_System of Omega & D is intersection_stable;
 assume A2: A in D & B in D;
 then B`in D by A1,Def7;
 then A /\ (B`) in D by A1,A2,FINSUB_1:def 2;
 hence A\B in D by SUBSET_1:32;
end;

theorem Th17:
 D is Dynkin_System of Omega & D is intersection_stable
 implies
 (A in D & B in D implies A \/ B in D)
proof
 assume
 A1: D is Dynkin_System of Omega & D is intersection_stable;
 assume A in D & B in D;
 then A`in D & B`in D by A1,Def7;
 then A`/\ B`in D by A1,FINSUB_1:def 2;
 then (A \/ B)`in D by SUBSET_1:29;
 then (A \/ B)``in D by A1,Def7;
 hence thesis;
end;

theorem Th18:
 D is Dynkin_System of Omega & D is intersection_stable
 implies
 for x being finite set holds
 x c= D implies union x in D
proof
 assume
 A1: D is Dynkin_System of Omega & D is intersection_stable;
 let x be finite set;
 assume A2: x c= D;
 defpred P[set] means union $1 in D;
 A3: x is finite;
 A4: P[{}] by A1,Def7,ZFMISC_1:2;
 A5: for y,b being set st y in x & b c= x & P[b] holds P[b \/ {y}]
 proof
  let y,b be set such that A6: y in x & b c= x & union b in D;
  A7: union {y}=y by ZFMISC_1:31;
  reconsider union_b = union b as Subset of Omega by A6;
    y in D by A2,A6;
  then reconsider y1=y as Subset of Omega;
    union_b \/ y1 in D by A1,A2,A6,Th17;
  hence union(b \/ {y})in D by A7,ZFMISC_1:96;
 end;
 thus P[x] from Finite(A3,A4,A5);
end;

theorem Th19:
  D is Dynkin_System of Omega & D is intersection_stable
 implies
 for f being SetSequence of Omega holds
   rng f c= D implies rng disjointify(f) c= D
proof
 assume
 A1: D is Dynkin_System of Omega & D is intersection_stable;
 let f be SetSequence of Omega;
 assume A2: rng f c= D;
 A3: for n holds (disjointify(f)).n in D
 proof
  let n;
  A4: rng (f|PSeg(n)) c= rng(f) by RELAT_1:99;
  then A5: rng(f|PSeg(n)) c= D by A2,XBOOLE_1:1;
    dom(f|PSeg(n)) c= PSeg(n) by RELAT_1:87;
  then A6: dom(f|PSeg(n)) is finite by FINSET_1:13;
    rng(f) is Subset of bool Omega by RELSET_1:12;
  then rng(f|PSeg(n)) is finite Subset of bool Omega by A4,A6,FINSET_1:26,
XBOOLE_1:1;
  then A7: union rng(f|PSeg(n))in D by A1,A5,Th18;
    dom(f)=NAT by FUNCT_2:def 1;
  then A8: f.n in rng f by FUNCT_1:def 5;
  reconsider urf=union rng(f|PSeg(n)) as Subset of Omega by A7;
    f.n \ urf in D by A1,A2,A7,A8,Th16;
  hence (disjointify(f)).n in D by Th8;
 end;
   now
  let y;
  assume y in rng disjointify(f);
  then consider x such that A9:
   x in dom(disjointify(f)) & y=(disjointify(f)).x by FUNCT_1:def 5;
  reconsider n=x as Nat by A9,FUNCT_2:def 1;
    y=(disjointify(f)).n by A9;
  hence y in D by A3;
 end;
 hence rng disjointify(f) c= D by TARSKI:def 3;
end;

theorem Th20:
 D is Dynkin_System of Omega & D is intersection_stable
 implies
 for f being SetSequence of Omega holds
   rng f c= D implies union rng f in D
proof
  assume
 A1: D is Dynkin_System of Omega & D is intersection_stable;
 let f be SetSequence of Omega;
 assume rng f c= D;
 then A2: rng disjointify(f) c= D by A1,Th19;
   disjointify(f) is disjoint_valued by Th9;
 then Union disjointify(f) in D by A1,A2,Def7;
 then union rng disjointify(f) in D by PROB_1:def 3;
 hence union rng f in D by Th10;
end;

theorem Th21:
 for D being Dynkin_System of Omega
  for x,y being Element of D holds
  x misses y implies x \/ y in D
proof
 let D be Dynkin_System of Omega;
 let x,y be Element of D;
 assume A1: x misses y;
 reconsider e={} as Element of D by Def7;
 reconsider x1=x as Subset of Omega;
 reconsider y1=y as Subset of Omega;
 reconsider r= (x1,y1) followed_by {} Omega as SetSequence of Omega;
 A2: r is disjoint_valued by A1,Th11;
   (x,y) followed_by e is Function of NAT,D by Lm1;
 then rng r c= D by RELSET_1:12;
 then Union r in D by A2,Def7;
 then union rng r in D by PROB_1:def 3;
 hence x \/ y in D by Th6;
end;

theorem Th22:
 for D being Dynkin_System of Omega
  for x,y being Element of D holds
  x c= y implies y\x in D
proof
 let D be Dynkin_System of Omega;
 let x,y be Element of D;
 assume A1: x c= y;
 A2: y`in D by Def7;
   x c= y`` by A1;
 then x misses y` by SUBSET_1:43;
 then A3: x \/ y` in D by A2,Th21;
   (x \/ y`)` = x` /\ y`` by SUBSET_1:29
          .= y\x by SUBSET_1:32;
 hence thesis by A3,Def7;
end;

begin

:::::::::::::::::::::::::::::::::::
:: Main steps for Dynkin's Lemma ::
:::::::::::::::::::::::::::::::::::

theorem Th23:
 D is Dynkin_System of Omega & D is intersection_stable implies
 D is SigmaField of Omega
proof
 assume A1:
  D is Dynkin_System of Omega & D is intersection_stable;
 then A2: for X st X in D holds X`in D by Def7;
   for f st (for n holds f.n in D) holds Intersection f in D
 proof
  let f such that A3: for n holds f.n in D;
  A4: for n holds (f.n)`in D
    proof
     let n;
       f.n in D by A3;
     hence thesis by A1,Def7;
    end;
  A5: for n holds (Complement f).n in D
    proof
     let n;
       (Complement f).n=(f.n)` by PROB_1:def 4;
     hence thesis by A4;
    end;
     for x st x in rng Complement f holds x in D
   proof
     let x such that A6: x in rng Complement f;
     consider z such that A7: z in dom Complement f & x=(Complement f).z
      by A6,FUNCT_1:def 5;
     reconsider n=z as Nat by A7,FUNCT_2:def 1;
       x=(Complement f).n by A7;
     hence x in D by A5;
   end;
  then rng Complement f c= D by TARSKI:def 3;
  then union rng Complement f in D by A1,Th20;
  then Union Complement f in D by PROB_1:def 3;
  then (Union Complement f)` in D by A1,Def7;
  hence Intersection f in D by PROB_1:def 5;
 end;
 hence thesis by A2,PROB_1:32;
end;

definition
 let Omega be non empty set;
 let E be Subset of bool Omega;
 func generated_Dynkin_System(E) -> Dynkin_System of Omega means
 :Def8:
 E c= it & for D being Dynkin_System of Omega holds
  (E c= D implies it c= D);
 existence
 proof
  defpred P[set] means $1 is Dynkin_System of Omega & E c= $1;
  consider Y such that
  A1: for x holds x in Y iff x in bool bool Omega & P[x] from Separation;
    bool Omega is Dynkin_System of Omega by Th14;
  then reconsider Y as non empty set by A1;
    for z st z in Y holds z is Dynkin_System of Omega by A1;
  then reconsider I=meet Y as Dynkin_System of Omega by Th15;
  take I;
    for y being Element of Y holds E c= y by A1;
  hence E c= I by Th7;
  let D be Dynkin_System of Omega;
  assume E c= D;
  then D in Y by A1;
  hence I c= D by SETFAM_1:4;
 end;
 uniqueness
 proof
  let I1,I2 be Dynkin_System of Omega;
  assume A2: E c= I1 & for D being Dynkin_System of Omega holds
   (E c= D implies I1 c= D);
  assume E c= I2 & for D being Dynkin_System of Omega holds
   (E c= D implies I2 c= D);
  then I1 c= I2 & I2 c= I1 by A2;
  hence I1=I2 by XBOOLE_0:def 10;
 end;
end;

definition
 let Omega be non empty set;
 let G be set;
 let X be Subset of Omega;
 func DynSys(X,G) -> Subset of bool Omega
 means :Def9:
 for A being Subset of Omega holds
  A in it iff A /\ X in G;
 existence
 proof
  defpred P[set] means $1 /\ X in G;
  consider I such that
  A1: for x holds x in I iff x in bool Omega & P[x] from Separation;
    for x holds x in I implies x in bool Omega by A1;
  then reconsider I as Subset of bool Omega by TARSKI:def 3;
  take I;
  let A be Subset of Omega;
  thus thesis by A1;
 end;
 uniqueness
 proof
  let I1,I2 be Subset of bool Omega;
  assume A2: for A being Subset of Omega holds
   A in I1 iff A /\ X in G;
  assume A3: for A being Subset of Omega holds
   A in I2 iff A/\ X in G;
    now
   let A be Element of bool Omega;
     (A in I1 iff A /\ X in G) & (A in I2 iff A /\ X in G) by A2,A3;
   hence A in I1 iff A in I2;
  end;
  hence thesis by SUBSET_1:8;
 end;
end;

definition
 let Omega be non empty set;
 let G be Dynkin_System of Omega;
 let X be Element of G;
 redefine func DynSys(X,G) -> Dynkin_System of Omega;
 coherence
 proof
    {}/\ X={} &{}in G by Def7;
  then A1:{}in DynSys(X,G) by Def9;
  A2: for f being SetSequence of Omega holds
   rng f c= DynSys(X,G) & f is disjoint_valued implies Union f in DynSys(X,G)
  proof
   let f be SetSequence of Omega;
   assume A3:  rng f c= DynSys(X,G) & f is disjoint_valued;
   reconsider X1=X as Subset of Omega;
   A4: seqIntersection(X,f) is disjoint_valued by A3,Th12;
     now
    let x;
    assume x in rng seqIntersection(X1,f);
    then consider n such that A5: x=(seqIntersection(X1,f)).n by Th1;
    A6: x=X/\ f.n by A5,Def2;
      f.n in rng f by Th1;
    hence x in G by A3,A6,Def9;
   end;
   then rng seqIntersection(X1,f) c= G by TARSKI:def 3;
   then Union seqIntersection(X1,f) in G by A4,Def7;
   then X/\ Union f in G by Th13;
   hence thesis by Def9;
  end;
    for A being Subset of Omega holds
       A in DynSys(X,G) implies A` in DynSys(X,G)
  proof
   let A be Subset of Omega;
   assume A in DynSys(X,G);
   then A7: X /\ A in G by Def9;
     X/\ A c= X by XBOOLE_1:17;
   then A8: X\(X/\ A)in G by A7,Th22;
     X misses X` by SUBSET_1:26;
then A9: X /\ X` = {} by XBOOLE_0:def 7;
     X\(X/\ A) = X /\ (X/\ A)` by SUBSET_1:32
   .= X /\ (X` \/ A`) by SUBSET_1:30
   .= (X/\ X`) \/ (X/\ A`) by XBOOLE_1:23
   .= X/\ A` by A9;
   hence thesis by A8,Def9;
  end;
  hence thesis by A1,A2,Def7;
 end;
end;

theorem Th24:
 for E being Subset of bool Omega
  for X,Y being Subset of Omega holds
   X in E & Y in generated_Dynkin_System(E) & E is intersection_stable
   implies
   X/\ Y in generated_Dynkin_System(E)
proof
 let E be Subset of bool Omega;
 let X,Y be Subset of Omega;
 assume A1: X in E & Y in generated_Dynkin_System(E)
            & E is intersection_stable;
 reconsider G=generated_Dynkin_System(E) as Dynkin_System of Omega;
   E c= generated_Dynkin_System(E) by Def8;
 then reconsider X as Element of G by A1;
   for x holds x in E implies x in DynSys(X,G)
 proof
  let x;
  assume A2: x in E;
  then reconsider x as Subset of Omega;
  A3: x /\ X in E by A1,A2,FINSUB_1:def 2;
    E c= G by Def8;
  hence thesis by A3,Def9;
 end;
 then E c= DynSys(X,G) & DynSys(X,G) is Dynkin_System of Omega by TARSKI:def 3
;
 then generated_Dynkin_System(E) c= DynSys(X,G) by Def8;
 hence thesis by A1,Def9;
end;

theorem Th25:
 for E being Subset of bool Omega
  for X,Y being Subset of Omega holds
   X in generated_Dynkin_System(E) & Y in generated_Dynkin_System(E)
   & E is intersection_stable
   implies
   X/\ Y in generated_Dynkin_System(E)
proof
 let E be Subset of bool Omega;
 let X,Y be Subset of Omega;
 assume A1: X in generated_Dynkin_System(E)
   & Y in generated_Dynkin_System(E) & E is intersection_stable;
 reconsider G=generated_Dynkin_System(E) as Dynkin_System of Omega;
 defpred P[set] means ex X being Element of G st $1=DynSys(X,G);
 consider h such that A2: for x holds x in h iff x in bool bool Omega & P[x]
   from Separation;
 A3: for Y st Y in h holds Y is Dynkin_System of Omega
 proof
  let Y;
  assume Y in h;
  then ex X being Element of G st Y=DynSys(X,G) by A2;
  hence thesis;
 end;
   h is non empty
 proof
  consider X being Element of G;
    DynSys(X,G) in h by A2;
  hence thesis;
 end;
 then reconsider h as non empty set;
 A4: meet h is Dynkin_System of Omega by A3,Th15;
   for x holds x in E implies x in meet h
 proof
  let x;
  assume A5: x in E;
    for Y st Y in h holds x in Y
  proof
   let Y such that A6: Y in h;
   consider X being Element of G such that A7: Y=DynSys(X,G) by A2,A6;
     x/\ X in G by A1,A5,Th24;
   hence x in Y by A5,A7,Def9;
  end;
  hence x in meet h by SETFAM_1:def 1;
 end;
 then E c= meet h by TARSKI:def 3;
 then A8: G c= meet h by A4,Def8;
   DynSys(X,G)in h by A1,A2;
 then meet h c= DynSys(X,G) by SETFAM_1:4;
 then G c= DynSys(X,G) by A8,XBOOLE_1:1;
 hence thesis by A1,Def9;
end;

theorem Th26:
 for E being Subset of bool Omega st E is intersection_stable holds
  generated_Dynkin_System(E) is intersection_stable
proof
 let E be Subset of bool Omega such that A1: E is intersection_stable;
 reconsider G=generated_Dynkin_System(E) as Subset of bool Omega;
   for a,b being set st a in G & b in G holds a/\ b in G by A1,Th25;
 hence thesis by FINSUB_1:def 2;
end;

theorem
   for E being Subset of bool Omega st E is intersection_stable
  for D being Dynkin_System of Omega st E c= D holds
   sigma(E) c= D
proof
 let E be Subset of bool Omega such that A1: E is intersection_stable;
 let D be Dynkin_System of Omega such that A2: E c= D;
 reconsider G=generated_Dynkin_System(E) as Dynkin_System of Omega;
   G is intersection_stable by A1,Th26;
 then A3: G is SigmaField of Omega by Th23;
   E c= G by Def8;
 then A4: sigma(E) c= G by A3,PROB_1:def 14;
   G c= D by A2,Def8;
 hence thesis by A4,XBOOLE_1:1;
end;

Back to top