reserve H for ZF-formula,
  M,E for non empty set,
  e for Element of E,
  m,m0,m3, m4 for Element of M,
  v,v1,v2 for Function of VAR,M,
  f,f1 for Function of VAR,E,
  g for Function,
  u,u1,u2 for set,
  x,y for Variable,
  i,n for Element of NAT,
  X for set;
reserve W for Universe,
  w for Element of W,
  Y for Subclass of W,
  a,a1,b,c for Ordinal of W,
  L for DOMAIN-Sequence of W;

theorem Th2:
  (for a,b st a in b holds L.a c= L.b) & (for a holds L.a in Union
L & L.a is epsilon-transitive) & Union L is predicatively_closed implies Union
  L |= the_axiom_of_power_sets
proof
  assume that
A1: for a,b st a in b holds L.a c= L.b and
A2: for a holds L.a in Union L & L.a is epsilon-transitive and
A3: Union L is predicatively_closed;
  set M = Union L;
A4: X in L.a implies L.a /\ bool X in M
  proof
    set f = the Function of VAR,L.a;
    assume X in L.a;
    then reconsider e = X as Element of L.a;
    L.a in M by A2;
    then
A5: Section(All(x.2,x.2 'in' x.0 => x.2 'in' x.1),f/(x.1,e)) in M by A3;
    L.a is epsilon-transitive by A2;
    hence thesis by A5,Th1;
  end;
A6: now
    defpred P[set,set] means $1 in L.$2;
    let X such that
A7: X in M;
A8: X in bool X by ZFMISC_1:def 1;
    then reconsider D = M /\ bool X as non empty set by A7,XBOOLE_0:def 4;
A9: X in M /\ bool X by A7,A8,XBOOLE_0:def 4;
A10: for d being Element of D ex a st P[d,a]
    proof
      let d be Element of D;
      d in M by XBOOLE_0:def 4;
      then consider u2 such that
A11:  u2 in dom L and
A12:  d in L.u2 by Lm1;
      u2 in On W by A11,ZF_REFLE:def 2;
      then reconsider u2 as Ordinal of W by ZF_REFLE:7;
      take u2;
      thus thesis by A12;
    end;
    consider f being Function such that
A13: dom f = D & for d being Element of D ex a st a = f.d & P[d,a] &
    for b st P[d,b] holds a c= b from ZF_REFLE:sch 1(A10);
A14: rng f c= W
    proof
      let u be object;
      assume u in rng f;
      then consider u1 being object such that
A15:  u1 in D and
A16:  u = f.u1 by A13,FUNCT_1:def 3;
      reconsider u1 as Element of D by A15;
      ex a st a = f.u1 & u1 in L.a & for b st u1 in L.b holds a c= b by A13;
      hence thesis by A16;
    end;
A17: M /\ bool X c= bool X by XBOOLE_1:17;
    bool X in W by A7,CLASSES2:59;
    then D in W by A17,CLASSES1:def 1;
    then rng f = f.:(dom f) & card D in card W by CLASSES2:1,RELAT_1:113;
    then card rng f in card W by A13,CARD_1:67,ORDINAL1:12;
    then rng f in W by A14,CLASSES1:1;
    then reconsider a = sup rng f as Ordinal of W by ZF_REFLE:19;
A18: D c= L.a
    proof
      let u2 be object;
      assume u2 in D;
      then reconsider d = u2 as Element of D;
      consider c such that
A19:  c = f.d and
A20:  d in L.c and
      for b st d in L.b holds c c= b by A13;
      c in rng f by A13,A19,FUNCT_1:def 3;
      then L.c c= L.a by A1,ORDINAL2:19;
      hence thesis by A20;
    end;
A21: L.a /\ bool X c= D by XBOOLE_1:26,ZF_REFLE:16;
    D /\ bool X = M /\ (bool X /\ bool X) by XBOOLE_1:16;
    then D c= L.a /\ bool X by A18,XBOOLE_1:26;
    then D = L.a /\ bool X by A21;
    hence M /\ bool X in M by A4,A9,A18;
  end;
  Union L is epsilon-transitive
  proof
    let X;
    assume X in Union L;
    then consider u such that
A22: u in dom L and
A23: X in L.u by Lm1;
    reconsider u as Ordinal by A22;
    u in On W by A22,ZF_REFLE:def 2;
    then reconsider u as Ordinal of W by ZF_REFLE:7;
    L.u is epsilon-transitive by A2;
    then
A24: X c= L.u by A23;
    let u1 be object;
A25: L.u c= Union L by ZF_REFLE:16;
    assume u1 in X;
    then u1 in L.u by A24;
    hence thesis by A25;
  end;
  hence thesis by A6,ZFMODEL1:9;
end;
