zf_fund2.miz
    
    begin
    
    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;
    
    definition
    
      let H, M, v;
    
      :: 
    
    ZF_FUND2:def1
    
      func
    
    Section (H,v) -> 
    Subset of M equals 
    
      :
    
    Def1: { m : (M,(v 
    / (( 
    x.  
    0 ),m))) 
    |= H } if ( 
    x.  
    0 ) 
    in ( 
    Free H) 
    
      otherwise
    {} ; 
    
      coherence
    
      proof
    
        thus (
    x.  
    0 ) 
    in ( 
    Free H) implies { m where m be 
    Element of M : (M,(v 
    / (( 
    x.  
    0 ),m))) 
    |= H } is 
    Subset of M 
    
        proof
    
          set X = { m where m be
    Element of M : (M,(v 
    / (( 
    x.  
    0 ),m))) 
    |= H }; 
    
          assume (
    x.  
    0 ) 
    in ( 
    Free H); 
    
          X
    c= M 
    
          proof
    
            let u be
    object;
    
            assume u
    in X; 
    
            then ex m be
    Element of M st u 
    = m & (M,(v 
    / (( 
    x.  
    0 ),m))) 
    |= H; 
    
            hence thesis;
    
          end;
    
          hence thesis;
    
        end;
    
        thus thesis by
    XBOOLE_1: 2;
    
      end;
    
      consistency ;
    
    end
    
    definition
    
      let M;
    
      :: 
    
    ZF_FUND2:def2
    
      attr M is
    
    predicatively_closed means for H, E, f st E 
    in M holds ( 
    Section (H,f)) 
    in M; 
    
    end
    
    theorem :: 
    
    ZF_FUND2:1
    
    
    
    
    
    Th1: E is 
    epsilon-transitive implies ( 
    Section (( 
    All (( 
    x. 2),((( 
    x. 2) 
    'in' ( 
    x.  
    0 )) 
    => (( 
    x. 2) 
    'in' ( 
    x. 1))))),(f 
    / (( 
    x. 1),e)))) 
    = (E 
    /\ ( 
    bool e)) 
    
    proof
    
      set H = (
    All (( 
    x. 2),((( 
    x. 2) 
    'in' ( 
    x.  
    0 )) 
    => (( 
    x. 2) 
    'in' ( 
    x. 1))))), v = (f 
    / (( 
    x. 1),e)); 
    
      set S = (
    Section (H,v)); 
    
      (
    Free H) 
    = (( 
    Free ((( 
    x. 2) 
    'in' ( 
    x.  
    0 )) 
    => (( 
    x. 2) 
    'in' ( 
    x. 1)))) 
    \  
    {(
    x. 2)}) by 
    ZF_LANG1: 62
    
      .= (((
    Free (( 
    x. 2) 
    'in' ( 
    x.  
    0 ))) 
    \/ ( 
    Free (( 
    x. 2) 
    'in' ( 
    x. 1)))) 
    \  
    {(
    x. 2)}) by 
    ZF_LANG1: 64
    
      .= (((
    Free (( 
    x. 2) 
    'in' ( 
    x.  
    0 ))) 
    \/  
    {(
    x. 2), ( 
    x. 1)}) 
    \  
    {(
    x. 2)}) by 
    ZF_LANG1: 59
    
      .= ((
    {(
    x. 2), ( 
    x.  
    0 )} 
    \/  
    {(
    x. 2), ( 
    x. 1)}) 
    \  
    {(
    x. 2)}) by 
    ZF_LANG1: 59
    
      .= ((
    {(
    x. 2), ( 
    x.  
    0 )} 
    \  
    {(
    x. 2)}) 
    \/ ( 
    {(
    x. 2), ( 
    x. 1)} 
    \  
    {(
    x. 2)})) by 
    XBOOLE_1: 42
    
      .= ((
    {(
    x. 2), ( 
    x.  
    0 )} 
    \  
    {(
    x. 2)}) 
    \/  
    {(
    x. 1)}) by 
    ZFMISC_1: 17,
    ZF_LANG1: 76
    
      .= (
    {(
    x.  
    0 )} 
    \/  
    {(
    x. 1)}) by 
    ZFMISC_1: 17,
    ZF_LANG1: 76
    
      .=
    {(
    x.  
    0 ), ( 
    x. 1)} by 
    ENUMSET1: 1;
    
      then (
    x.  
    0 ) 
    in ( 
    Free H) by 
    TARSKI:def 2;
    
      then
    
      
    
    A1: S 
    = { m where m be 
    Element of E : (E,(v 
    / (( 
    x.  
    0 ),m))) 
    |= H } by 
    Def1;
    
      assume
    
      
    
    A2: X 
    in E implies X 
    c= E; 
    
      thus S
    c= (E 
    /\ ( 
    bool e)) 
    
      proof
    
        let u be
    object;
    
        assume u
    in S; 
    
        then
    
        consider m be
    Element of E such that 
    
        
    
    A3: u 
    = m and 
    
        
    
    A4: (E,(v 
    / (( 
    x.  
    0 ),m))) 
    |= H by 
    A1;
    
        
    
        
    
    A5: m 
    c= E by 
    A2;
    
        m
    c= e 
    
        proof
    
          let u1 be
    object;
    
          assume
    
          
    
    A6: u1 
    in m; 
    
          then
    
          reconsider u1 as
    Element of E by 
    A5;
    
          
    
          
    
    A7: (((v 
    / (( 
    x.  
    0 ),m)) 
    / (( 
    x. 2),u1)) 
    . ( 
    x. 2)) 
    = u1 by 
    FUNCT_7: 128;
    
          
    
          
    
    A8: (E,((v 
    / (( 
    x.  
    0 ),m)) 
    / (( 
    x. 2),u1))) 
    |= ((( 
    x. 2) 
    'in' ( 
    x.  
    0 )) 
    => (( 
    x. 2) 
    'in' ( 
    x. 1))) by 
    A4,
    ZF_LANG1: 71;
    
          
    
          
    
    A9: (((v 
    / (( 
    x.  
    0 ),m)) 
    / (( 
    x. 2),u1)) 
    . ( 
    x. 1)) 
    = ((v 
    / (( 
    x.  
    0 ),m)) 
    . ( 
    x. 1)) & (v 
    . ( 
    x. 1)) 
    = ((v 
    / (( 
    x.  
    0 ),m)) 
    . ( 
    x. 1)) by 
    FUNCT_7: 32,
    ZF_LANG1: 76;
    
          m
    = ((v 
    / (( 
    x.  
    0 ),m)) 
    . ( 
    x.  
    0 )) & (((v 
    / (( 
    x.  
    0 ),m)) 
    / (( 
    x. 2),u1)) 
    . ( 
    x.  
    0 )) 
    = ((v 
    / (( 
    x.  
    0 ),m)) 
    . ( 
    x.  
    0 )) by 
    FUNCT_7: 32,
    FUNCT_7: 128,
    ZF_LANG1: 76;
    
          then (E,((v
    / (( 
    x.  
    0 ),m)) 
    / (( 
    x. 2),u1))) 
    |= (( 
    x. 2) 
    'in' ( 
    x.  
    0 )) by 
    A6,
    A7,
    ZF_MODEL: 13;
    
          then (v
    . ( 
    x. 1)) 
    = e & (E,((v 
    / (( 
    x.  
    0 ),m)) 
    / (( 
    x. 2),u1))) 
    |= (( 
    x. 2) 
    'in' ( 
    x. 1)) by 
    A8,
    FUNCT_7: 128,
    ZF_MODEL: 18;
    
          hence thesis by
    A7,
    A9,
    ZF_MODEL: 13;
    
        end;
    
        then u
    in ( 
    bool e) by 
    A3,
    ZFMISC_1:def 1;
    
        hence thesis by
    A3,
    XBOOLE_0:def 4;
    
      end;
    
      let u be
    object;
    
      assume
    
      
    
    A10: u 
    in (E 
    /\ ( 
    bool e)); 
    
      then
    
      
    
    A11: u 
    in ( 
    bool e) by 
    XBOOLE_0:def 4;
    
      reconsider u as
    Element of E by 
    A10,
    XBOOLE_0:def 4;
    
      now
    
        
    
        
    
    A12: (v 
    . ( 
    x. 1)) 
    = e by 
    FUNCT_7: 128;
    
        let m be
    Element of E; 
    
        
    
        
    
    A13: (((v 
    / (( 
    x.  
    0 ),u)) 
    / (( 
    x. 2),m)) 
    . ( 
    x. 2)) 
    = m by 
    FUNCT_7: 128;
    
        
    
        
    
    A14: u 
    = ((v 
    / (( 
    x.  
    0 ),u)) 
    . ( 
    x.  
    0 )) & (((v 
    / (( 
    x.  
    0 ),u)) 
    / (( 
    x. 2),m)) 
    . ( 
    x.  
    0 )) 
    = ((v 
    / (( 
    x.  
    0 ),u)) 
    . ( 
    x.  
    0 )) by 
    FUNCT_7: 32,
    FUNCT_7: 128,
    ZF_LANG1: 76;
    
        
    
        
    
    A15: (((v 
    / (( 
    x.  
    0 ),u)) 
    / (( 
    x. 2),m)) 
    . ( 
    x. 1)) 
    = ((v 
    / (( 
    x.  
    0 ),u)) 
    . ( 
    x. 1)) & (v 
    . ( 
    x. 1)) 
    = ((v 
    / (( 
    x.  
    0 ),u)) 
    . ( 
    x. 1)) by 
    FUNCT_7: 32,
    ZF_LANG1: 76;
    
        now
    
          assume (E,((v
    / (( 
    x.  
    0 ),u)) 
    / (( 
    x. 2),m))) 
    |= (( 
    x. 2) 
    'in' ( 
    x.  
    0 )); 
    
          then m
    in u by 
    A13,
    A14,
    ZF_MODEL: 13;
    
          hence (E,((v
    / (( 
    x.  
    0 ),u)) 
    / (( 
    x. 2),m))) 
    |= (( 
    x. 2) 
    'in' ( 
    x. 1)) by 
    A11,
    A13,
    A15,
    A12,
    ZF_MODEL: 13;
    
        end;
    
        hence (E,((v
    / (( 
    x.  
    0 ),u)) 
    / (( 
    x. 2),m))) 
    |= ((( 
    x. 2) 
    'in' ( 
    x.  
    0 )) 
    => (( 
    x. 2) 
    'in' ( 
    x. 1))) by 
    ZF_MODEL: 18;
    
      end;
    
      then (E,(v
    / (( 
    x.  
    0 ),u))) 
    |= H by 
    ZF_LANG1: 71;
    
      hence thesis by
    A1;
    
    end;
    
    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; 
    
    
    
    
    
    Lm1: u1 
    in ( 
    Union g) implies ex u2 st u2 
    in ( 
    dom g) & u1 
    in (g 
    . u2) 
    
    proof
    
      assume u1
    in ( 
    Union g); 
    
      then u1
    in ( 
    union ( 
    rng g)) by 
    CARD_3:def 4;
    
      then
    
      consider X such that
    
      
    
    A1: u1 
    in X and 
    
      
    
    A2: X 
    in ( 
    rng g) by 
    TARSKI:def 4;
    
      consider u2 be
    object such that 
    
      
    
    A3: u2 
    in ( 
    dom g) & X 
    = (g 
    . u2) by 
    A2,
    FUNCT_1:def 3;
    
      take u2;
    
      thus thesis by
    A1,
    A3;
    
    end;
    
    theorem :: 
    
    ZF_FUND2:2
    
    
    
    
    
    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 be 
    Element of D holds 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 be
    Function such that 
    
        
    
    A13: ( 
    dom f) 
    = D & for d be 
    Element of D holds 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 be
    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;
    
    
    
    
    
    Lm2: not x 
    in ( 
    variables_in H) & 
    {(
    x.  
    0 ), ( 
    x. 1), ( 
    x. 2)} 
    misses ( 
    Free H) & (M,v) 
    |= ( 
    All (( 
    x. 3),( 
    Ex (( 
    x.  
    0 ),( 
    All (( 
    x. 4),(H 
    <=> (( 
    x. 4) 
    '=' ( 
    x.  
    0 ))))))))) implies 
    {(
    x.  
    0 ), ( 
    x. 1), ( 
    x. 2)} 
    misses ( 
    Free (H 
    / (( 
    x.  
    0 ),x))) & (M,v) 
    |= ( 
    All (( 
    x. 3),( 
    Ex (( 
    x.  
    0 ),( 
    All (( 
    x. 4),((H 
    / (( 
    x.  
    0 ),x)) 
    <=> (( 
    x. 4) 
    '=' ( 
    x.  
    0 ))))))))) & ( 
    def_func' (H,v)) 
    = ( 
    def_func' ((H 
    / (( 
    x.  
    0 ),x)),v)) 
    
    proof
    
      assume that
    
      
    
    A1: not x 
    in ( 
    variables_in H) and 
    
      
    
    A2: 
    {(
    x.  
    0 ), ( 
    x. 1), ( 
    x. 2)} 
    misses ( 
    Free H) and 
    
      
    
    A3: (M,v) 
    |= ( 
    All (( 
    x. 3),( 
    Ex (( 
    x.  
    0 ),( 
    All (( 
    x. 4),(H 
    <=> (( 
    x. 4) 
    '=' ( 
    x.  
    0 ))))))))); 
    
      (
    x.  
    0 ) 
    in  
    {(
    x.  
    0 ), ( 
    x. 1), ( 
    x. 2)} by 
    ENUMSET1:def 1;
    
      then
    
      
    
    A4: not ( 
    x.  
    0 ) 
    in ( 
    Free H) by 
    A2,
    XBOOLE_0: 3;
    
      hence
    {(
    x.  
    0 ), ( 
    x. 1), ( 
    x. 2)} 
    misses ( 
    Free (H 
    / (( 
    x.  
    0 ),x))) by 
    A1,
    A2,
    ZFMODEL2: 2;
    
      
    
      
    
    A5: not ( 
    x.  
    0 ) 
    in ( 
    Free (H 
    / (( 
    x.  
    0 ),x))) by 
    A1,
    A4,
    ZFMODEL2: 2;
    
      
    
    A6: 
    
      now
    
        let m3 be
    Element of M; 
    
        consider m0 be
    Element of M such that 
    
        
    
    A7: (M,((v 
    / (( 
    x. 3),m3)) 
    / (( 
    x. 4),m))) 
    |= H iff m 
    = m0 by 
    A3,
    A4,
    ZFMODEL2: 19;
    
        take m0;
    
        let m4 be
    Element of M; 
    
        thus (M,((v
    / (( 
    x. 3),m3)) 
    / (( 
    x. 4),m4))) 
    |= (H 
    / (( 
    x.  
    0 ),x)) implies m4 
    = m0 
    
        proof
    
          assume (M,((v
    / (( 
    x. 3),m3)) 
    / (( 
    x. 4),m4))) 
    |= (H 
    / (( 
    x.  
    0 ),x)); 
    
          then (M,(((v
    / (( 
    x. 3),m3)) 
    / (( 
    x. 4),m4)) 
    / (( 
    x.  
    0 ),(((v 
    / (( 
    x. 3),m3)) 
    / (( 
    x. 4),m4)) 
    . x)))) 
    |= H by 
    A1,
    ZFMODEL2: 12;
    
          then (M,((v
    / (( 
    x. 3),m3)) 
    / (( 
    x. 4),m4))) 
    |= H by 
    A4,
    ZFMODEL2: 9;
    
          hence thesis by
    A7;
    
        end;
    
        assume m4
    = m0; 
    
        then (M,((v
    / (( 
    x. 3),m3)) 
    / (( 
    x. 4),m4))) 
    |= H by 
    A7;
    
        then (M,(((v
    / (( 
    x. 3),m3)) 
    / (( 
    x. 4),m4)) 
    / (( 
    x.  
    0 ),(((v 
    / (( 
    x. 3),m3)) 
    / (( 
    x. 4),m4)) 
    . x)))) 
    |= H by 
    A4,
    ZFMODEL2: 9;
    
        hence (M,((v
    / (( 
    x. 3),m3)) 
    / (( 
    x. 4),m4))) 
    |= (H 
    / (( 
    x.  
    0 ),x)) by 
    A1,
    ZFMODEL2: 12;
    
      end;
    
      (
    Free H) 
    = ( 
    Free (H 
    / (( 
    x.  
    0 ),x))) by 
    A1,
    A4,
    ZFMODEL2: 2;
    
      hence
    
      
    
    A8: (M,v) 
    |= ( 
    All (( 
    x. 3),( 
    Ex (( 
    x.  
    0 ),( 
    All (( 
    x. 4),((H 
    / (( 
    x.  
    0 ),x)) 
    <=> (( 
    x. 4) 
    '=' ( 
    x.  
    0 ))))))))) by 
    A4,
    A6,
    ZFMODEL2: 19;
    
      now
    
        let u be
    object;
    
        assume u
    in M; 
    
        then
    
        reconsider u9 = u as
    Element of M; 
    
        set m = ((
    def_func' (H,v)) 
    . u9); 
    
        (M,((v
    / (( 
    x. 3),u9)) 
    / (( 
    x. 4),m))) 
    |= H by 
    A3,
    A4,
    ZFMODEL2: 10;
    
        then (M,(((v
    / (( 
    x. 3),u9)) 
    / (( 
    x. 4),m)) 
    / (( 
    x.  
    0 ),(((v 
    / (( 
    x. 3),u9)) 
    / (( 
    x. 4),m)) 
    . x)))) 
    |= H by 
    A4,
    ZFMODEL2: 9;
    
        then (M,((v
    / (( 
    x. 3),u9)) 
    / (( 
    x. 4),m))) 
    |= (H 
    / (( 
    x.  
    0 ),x)) by 
    A1,
    ZFMODEL2: 12;
    
        hence ((
    def_func' (H,v)) 
    . u) 
    = (( 
    def_func' ((H 
    / (( 
    x.  
    0 ),x)),v)) 
    . u) by 
    A5,
    A8,
    ZFMODEL2: 10;
    
      end;
    
      hence thesis by
    FUNCT_2: 12;
    
    end;
    
    
    
    
    
    Lm3: (M,v) 
    |= ( 
    All (( 
    x. 3),( 
    Ex (( 
    x.  
    0 ),( 
    All (( 
    x. 4),(H 
    <=> (( 
    x. 4) 
    '=' ( 
    x.  
    0 ))))))))) & not ( 
    x. 4) 
    in ( 
    Free H) implies for m holds (( 
    def_func' (H,v)) 
    .: m) 
    =  
    {}  
    
    proof
    
      set m3 = the
    Element of M; 
    
      assume that
    
      
    
    A1: (M,v) 
    |= ( 
    All (( 
    x. 3),( 
    Ex (( 
    x.  
    0 ),( 
    All (( 
    x. 4),(H 
    <=> (( 
    x. 4) 
    '=' ( 
    x.  
    0 ))))))))) and 
    
      
    
    A2: not ( 
    x. 4) 
    in ( 
    Free H); 
    
      (M,(v
    / (( 
    x. 3),m3))) 
    |= ( 
    Ex (( 
    x.  
    0 ),( 
    All (( 
    x. 4),(H 
    <=> (( 
    x. 4) 
    '=' ( 
    x.  
    0 ))))))) by 
    A1,
    ZF_LANG1: 71;
    
      then
    
      consider m0 such that
    
      
    
    A3: (M,((v 
    / (( 
    x. 3),m3)) 
    / (( 
    x.  
    0 ),m0))) 
    |= ( 
    All (( 
    x. 4),(H 
    <=> (( 
    x. 4) 
    '=' ( 
    x.  
    0 ))))) by 
    ZF_LANG1: 73;
    
      let m;
    
      set u = the
    Element of (( 
    def_func' (H,v)) 
    .: m); 
    
      assume ((
    def_func' (H,v)) 
    .: m) 
    <>  
    {} ; 
    
      then
    
      consider u1 be
    object such that 
    
      
    
    A4: u1 
    in ( 
    dom ( 
    def_func' (H,v))) and 
    
      
    
    A5: u1 
    in m and u 
    = (( 
    def_func' (H,v)) 
    . u1) by 
    FUNCT_1:def 6;
    
      set f = ((v
    / (( 
    x. 3),m3)) 
    / (( 
    x.  
    0 ),m0)); 
    
      reconsider u1 as
    Element of M by 
    A4;
    
      
    
    A6: 
    
      now
    
        let m4;
    
        (M,(f
    / (( 
    x. 4),m4))) 
    |= (H 
    <=> (( 
    x. 4) 
    '=' ( 
    x.  
    0 ))) by 
    A3,
    ZF_LANG1: 71;
    
        then (M,(f
    / (( 
    x. 4),m4))) 
    |= H iff (M,(f 
    / (( 
    x. 4),m4))) 
    |= (( 
    x. 4) 
    '=' ( 
    x.  
    0 )) by 
    ZF_MODEL: 19;
    
        then
    
        
    
    A7: (M,f) 
    |= H iff ((f 
    / (( 
    x. 4),m4)) 
    . ( 
    x. 4)) 
    = ((f 
    / (( 
    x. 4),m4)) 
    . ( 
    x.  
    0 )) by 
    A2,
    ZFMODEL2: 9,
    ZF_MODEL: 12;
    
        ((f
    / (( 
    x. 4),m4)) 
    . ( 
    x. 4)) 
    = m4 & (f 
    . ( 
    x.  
    0 )) 
    = m0 by 
    FUNCT_7: 128;
    
        hence (M,f)
    |= H iff m4 
    = m0 by 
    A7,
    FUNCT_7: 32,
    ZF_LANG1: 76;
    
      end;
    
      then (M,f)
    |= H; 
    
      then
    
      
    
    A: u1 
    = m0 & m 
    = m0 by 
    A6;
    
      reconsider uu1 = u1 as
    set;
    
       not uu1
    in uu1; 
    
      hence contradiction by
    A5,
    A;
    
    end;
    
    
    
    
    
    Lm4: not y 
    in ( 
    variables_in H) & x 
    <> ( 
    x.  
    0 ) & y 
    <> ( 
    x.  
    0 ) & y 
    <> ( 
    x. 4) implies (( 
    x. 4) 
    in ( 
    Free H) iff ( 
    x.  
    0 ) 
    in ( 
    Free ( 
    Ex (( 
    x. 3),((( 
    x. 3) 
    'in' x) 
    '&' ((H 
    / (( 
    x.  
    0 ),y)) 
    / (( 
    x. 4),( 
    x.  
    0 )))))))) 
    
    proof
    
      
    
      
    
    A1: ( 
    x.  
    0 ) 
    <> ( 
    x. 3) by 
    ZF_LANG1: 76;
    
      assume that
    
      
    
    A2: not y 
    in ( 
    variables_in H) and 
    
      
    
    A3: x 
    <> ( 
    x.  
    0 ) and 
    
      
    
    A4: y 
    <> ( 
    x.  
    0 ) and 
    
      
    
    A5: y 
    <> ( 
    x. 4); 
    
      set G = ((H
    / (( 
    x.  
    0 ),y)) 
    / (( 
    x. 4),( 
    x.  
    0 ))); 
    
      
    
      
    
    A6: ( 
    Free ( 
    Ex (( 
    x. 3),((( 
    x. 3) 
    'in' x) 
    '&' G)))) 
    = (( 
    Free ((( 
    x. 3) 
    'in' x) 
    '&' G)) 
    \  
    {(
    x. 3)}) by 
    ZF_LANG1: 66
    
      .= (((
    Free (( 
    x. 3) 
    'in' x)) 
    \/ ( 
    Free G)) 
    \  
    {(
    x. 3)}) by 
    ZF_LANG1: 61
    
      .= ((
    {(
    x. 3), x} 
    \/ ( 
    Free G)) 
    \  
    {(
    x. 3)}) by 
    ZF_LANG1: 59
    
      .= ((
    {(
    x. 3), x} 
    \  
    {(
    x. 3)}) 
    \/ (( 
    Free G) 
    \  
    {(
    x. 3)})) by 
    XBOOLE_1: 42;
    
      
    
      
    
    A7: ( 
    x.  
    0 ) 
    <> ( 
    x. 4) by 
    ZF_LANG1: 76;
    
      
    
    A8: 
    
      now
    
        assume
    
        
    
    A9: ( 
    x. 4) 
    in ( 
    Free H); 
    
        
    
        
    
    A10: ( 
    x. 4) 
    in ( 
    Free (H 
    / (( 
    x.  
    0 ),y))) 
    
        proof
    
          now
    
            per cases ;
    
              suppose
    
              
    
    A11: ( 
    x.  
    0 ) 
    in ( 
    Free H); 
    
               not (
    x. 4) 
    in  
    {(
    x.  
    0 )} by 
    A7,
    TARSKI:def 1;
    
              then
    
              
    
    A12: ( 
    x. 4) 
    in (( 
    Free H) 
    \  
    {(
    x.  
    0 )}) by 
    A9,
    XBOOLE_0:def 5;
    
              (
    Free (H 
    / (( 
    x.  
    0 ),y))) 
    = ((( 
    Free H) 
    \  
    {(
    x.  
    0 )}) 
    \/  
    {y}) by
    A2,
    A11,
    ZFMODEL2: 2;
    
              hence thesis by
    A12,
    XBOOLE_0:def 3;
    
            end;
    
              suppose not (
    x.  
    0 ) 
    in ( 
    Free H); 
    
              hence thesis by
    A2,
    A9,
    ZFMODEL2: 2;
    
            end;
    
          end;
    
          hence thesis;
    
        end;
    
        
    
        
    
    A13: ( 
    x.  
    0 ) 
    in  
    {(
    x.  
    0 )} by 
    TARSKI:def 1;
    
         not (
    x.  
    0 ) 
    in ( 
    variables_in (H 
    / (( 
    x.  
    0 ),y))) by 
    A4,
    ZF_LANG1: 184;
    
        then (
    Free G) 
    = ((( 
    Free (H 
    / (( 
    x.  
    0 ),y))) 
    \  
    {(
    x. 4)}) 
    \/  
    {(
    x.  
    0 )}) by 
    A10,
    ZFMODEL2: 2;
    
        then
    
        
    
    A14: ( 
    x.  
    0 ) 
    in ( 
    Free G) by 
    A13,
    XBOOLE_0:def 3;
    
         not (
    x.  
    0 ) 
    in  
    {(
    x. 3)} by 
    A1,
    TARSKI:def 1;
    
        then (
    x.  
    0 ) 
    in (( 
    Free G) 
    \  
    {(
    x. 3)}) by 
    A14,
    XBOOLE_0:def 5;
    
        hence (
    x.  
    0 ) 
    in ( 
    Free ( 
    Ex (( 
    x. 3),((( 
    x. 3) 
    'in' x) 
    '&' G)))) by 
    A6,
    XBOOLE_0:def 3;
    
      end;
    
      now
    
        assume (
    x.  
    0 ) 
    in ( 
    Free ( 
    Ex (( 
    x. 3),((( 
    x. 3) 
    'in' x) 
    '&' G)))); 
    
        then (
    x.  
    0 ) 
    in ( 
    {(
    x. 3), x} 
    \  
    {(
    x. 3)}) or ( 
    x.  
    0 ) 
    in (( 
    Free G) 
    \  
    {(
    x. 3)}) by 
    A6,
    XBOOLE_0:def 3;
    
        then
    
        
    
    A15: ( 
    x.  
    0 ) 
    in  
    {(
    x. 3), x} or ( 
    x.  
    0 ) 
    in ( 
    Free G) by 
    XBOOLE_0:def 5;
    
        
    
        
    
    A16: not ( 
    x.  
    0 ) 
    in ( 
    variables_in (H 
    / (( 
    x.  
    0 ),y))) by 
    A4,
    ZF_LANG1: 184;
    
        
    
    A17: 
    
        now
    
          assume not (
    x. 4) 
    in ( 
    Free (H 
    / (( 
    x.  
    0 ),y))); 
    
          then
    
          
    
    A18: ( 
    x.  
    0 ) 
    in ( 
    Free (H 
    / (( 
    x.  
    0 ),y))) by 
    A3,
    A1,
    A15,
    A16,
    TARSKI:def 2,
    ZFMODEL2: 2;
    
          (
    Free (H 
    / (( 
    x.  
    0 ),y))) 
    c= ( 
    variables_in (H 
    / (( 
    x.  
    0 ),y))) by 
    ZF_LANG1: 151;
    
          hence contradiction by
    A4,
    A18,
    ZF_LANG1: 184;
    
        end;
    
        (
    Free (H 
    / (( 
    x.  
    0 ),y))) 
    c= ((( 
    Free H) 
    \  
    {(
    x.  
    0 )}) 
    \/  
    {y}) by
    ZFMODEL2: 1;
    
        then (
    x. 4) 
    in (( 
    Free H) 
    \  
    {(
    x.  
    0 )}) or ( 
    x. 4) 
    in  
    {y} by
    A17,
    XBOOLE_0:def 3;
    
        hence (
    x. 4) 
    in ( 
    Free H) by 
    A5,
    TARSKI:def 1,
    XBOOLE_0:def 5;
    
      end;
    
      hence thesis by
    A8;
    
    end;
    
    theorem :: 
    
    ZF_FUND2:3
    
    
    
    
    
    Th3: 
    omega  
    in W & (for a, b st a 
    in b holds (L 
    . a) 
    c= (L 
    . b)) & (for a st a 
    <>  
    {} & a is 
    limit_ordinal holds (L 
    . a) 
    = ( 
    Union (L 
    | a))) & (for a holds (L 
    . a) 
    in ( 
    Union L) & (L 
    . a) is 
    epsilon-transitive) & (
    Union L) is 
    predicatively_closed implies for H st 
    {(
    x.  
    0 ), ( 
    x. 1), ( 
    x. 2)} 
    misses ( 
    Free H) holds ( 
    Union L) 
    |= ( 
    the_axiom_of_substitution_for H) 
    
    proof
    
      assume that
    
      
    
    A1: 
    omega  
    in W and 
    
      
    
    A2: for a, b st a 
    in b holds (L 
    . a) 
    c= (L 
    . b) and 
    
      
    
    A3: for a st a 
    <>  
    {} & a is 
    limit_ordinal holds (L 
    . a) 
    = ( 
    Union (L 
    | a)) and 
    
      
    
    A4: for a holds (L 
    . a) 
    in ( 
    Union L) & (L 
    . a) is 
    epsilon-transitive and 
    
      
    
    A5: ( 
    Union L) is 
    predicatively_closed;
    
      set M = (
    Union L); 
    
      
    
    A6: 
    
      now
    
        defpred
    
    P[
    set, 
    set] means $1
    in (L 
    . $2); 
    
        let H;
    
        let f be
    Function of 
    VAR , M such that 
    
        
    
    A7: 
    {(
    x.  
    0 ), ( 
    x. 1), ( 
    x. 2)} 
    misses ( 
    Free H) and 
    
        
    
    A8: (M,f) 
    |= ( 
    All (( 
    x. 3),( 
    Ex (( 
    x.  
    0 ),( 
    All (( 
    x. 4),(H 
    <=> (( 
    x. 4) 
    '=' ( 
    x.  
    0 ))))))))); 
    
        consider k be
    Element of 
    NAT such that 
    
        
    
    A9: for i st ( 
    x. i) 
    in ( 
    variables_in H) holds i 
    < k by 
    ZFMODEL2: 3;
    
        set p = (H
    / (( 
    x.  
    0 ),( 
    x. (k 
    + 5)))); 
    
        (k
    +  
    0 ) 
    = k; 
    
        then
    
        
    
    A10: not ( 
    x. (k 
    + 5)) 
    in ( 
    variables_in H) by 
    A9,
    XREAL_1: 7;
    
        then
    
        
    
    A11: (M,f) 
    |= ( 
    All (( 
    x. 3),( 
    Ex (( 
    x.  
    0 ),( 
    All (( 
    x. 4),(p 
    <=> (( 
    x. 4) 
    '=' ( 
    x.  
    0 ))))))))) & ( 
    def_func' (H,f)) 
    = ( 
    def_func' (p,f)) by 
    A7,
    A8,
    Lm2;
    
        set F = (
    def_func' (H,f)); 
    
        
    
        
    
    A12: for d be 
    Element of M qua non 
    empty  
    set holds ex a st 
    P[d, a]
    
        proof
    
          let d be
    Element of M qua non 
    empty  
    set;
    
          consider u such that
    
          
    
    A13: u 
    in ( 
    dom L) and 
    
          
    
    A14: d 
    in (L 
    . u) by 
    Lm1;
    
          u
    in ( 
    On W) by 
    A13,
    ZF_REFLE:def 2;
    
          then
    
          reconsider u as
    Ordinal of W by 
    ZF_REFLE: 7;
    
          take u;
    
          thus thesis by
    A14;
    
        end;
    
        consider g be
    Function such that 
    
        
    
    A15: ( 
    dom g) 
    = M & for d be 
    Element of M qua non 
    empty  
    set holds ex a st a 
    = (g 
    . d) & 
    P[d, a] & for b st
    P[d, b] holds a
    c= b from 
    ZF_REFLE:sch 1(
    A12);
    
        
    
        
    
    A16: ( 
    rng g) 
    c= W 
    
        proof
    
          let u1 be
    object;
    
          assume u1
    in ( 
    rng g); 
    
          then
    
          consider u2 be
    object such that 
    
          
    
    A17: u2 
    in ( 
    dom g) and 
    
          
    
    A18: u1 
    = (g 
    . u2) by 
    FUNCT_1:def 3;
    
          reconsider d = u2 as
    Element of M by 
    A15,
    A17;
    
          ex a st a
    = (g 
    . d) & d 
    in (L 
    . a) & for b st d 
    in (L 
    . b) holds a 
    c= b by 
    A15;
    
          hence thesis by
    A18;
    
        end;
    
        (
    card  
    VAR ) 
    =  
    omega & 
    omega  
    in ( 
    card W) by 
    A1,
    CARD_1: 5,
    CARD_1: 47,
    CLASSES2: 1,
    ZF_REFLE: 17;
    
        then
    
        
    
    A19: ( 
    card ( 
    dom f)) 
    in ( 
    card W) by 
    FUNCT_2:def 1;
    
        (
    rng f) 
    = (f 
    .: ( 
    dom f)) by 
    RELAT_1: 113;
    
        then (
    card ( 
    rng f)) 
    in ( 
    card W) by 
    A19,
    CARD_1: 67,
    ORDINAL1: 12;
    
        then
    
        
    
    A20: ( 
    card (g 
    .: ( 
    rng f))) 
    in ( 
    card W) by 
    CARD_1: 67,
    ORDINAL1: 12;
    
        (g
    .: ( 
    rng f)) 
    c= ( 
    rng g) by 
    RELAT_1: 111;
    
        then (g
    .: ( 
    rng f)) 
    c= W by 
    A16;
    
        then (g
    .: ( 
    rng f)) 
    in W by 
    A20,
    CLASSES1: 1;
    
        then
    
        reconsider b2 = (
    sup (g 
    .: ( 
    rng f))) as 
    Ordinal of W by 
    ZF_REFLE: 19;
    
        
    
        
    
    A21: ( 
    x.  
    0 ) 
    in  
    {(
    x.  
    0 ), ( 
    x. 1), ( 
    x. 2)} by 
    ENUMSET1:def 1;
    
        
    {(
    x.  
    0 ), ( 
    x. 1), ( 
    x. 2)} 
    misses ( 
    Free p) by 
    A7,
    A8,
    A10,
    Lm2;
    
        then
    
        
    
    A22: not ( 
    x.  
    0 ) 
    in ( 
    Free p) by 
    A21,
    XBOOLE_0: 3;
    
        
    
        
    
    A23: X 
    c= M & ( 
    sup (g 
    .: X)) 
    c= a implies X 
    c= (L 
    . a) 
    
        proof
    
          assume that
    
          
    
    A24: X 
    c= M and 
    
          
    
    A25: ( 
    sup (g 
    .: X)) 
    c= a; 
    
          let u1 be
    object;
    
          assume
    
          
    
    A26: u1 
    in X; 
    
          then
    
          reconsider d = u1 as
    Element of M by 
    A24;
    
          consider b such that
    
          
    
    A27: b 
    = (g 
    . d) and 
    
          
    
    A28: d 
    in (L 
    . b) and for a st d 
    in (L 
    . a) holds b 
    c= a by 
    A15;
    
          b
    in (g 
    .: X) by 
    A15,
    A26,
    A27,
    FUNCT_1:def 6;
    
          then b
    in ( 
    sup (g 
    .: X)) by 
    ORDINAL2: 19;
    
          then (L
    . b) 
    c= (L 
    . a) by 
    A2,
    A25;
    
          hence thesis by
    A28;
    
        end;
    
        let u be
    Element of M; 
    
        consider b0 be
    Ordinal of W such that b0 
    = (g 
    . u) and 
    
        
    
    A29: u 
    in (L 
    . b0) and for b st u 
    in (L 
    . b) holds b0 
    c= b by 
    A15;
    
        
    
        
    
    A30: ( 
    card u) 
    in ( 
    card W) by 
    CLASSES2: 1;
    
        (k
    +  
    0 ) 
    = k; 
    
        then
    
        
    
    A31: 
    0  
    <= k & k 
    < (k 
    + 5) by 
    NAT_1: 2,
    XREAL_1: 6;
    
        then
    
        
    
    A32: not ( 
    x.  
    0 ) 
    in ( 
    variables_in p) by 
    ZF_LANG1: 76,
    ZF_LANG1: 184;
    
        (g
    .: (F 
    .: u)) 
    c= ( 
    rng g) by 
    RELAT_1: 111;
    
        then
    
        
    
    A33: (g 
    .: (F 
    .: u)) 
    c= W by 
    A16;
    
        (
    card (g 
    .: (F 
    .: u))) 
    c= ( 
    card (F 
    .: u)) & ( 
    card (F 
    .: u)) 
    c= ( 
    card u) by 
    CARD_1: 67;
    
        then (
    card (g 
    .: (F 
    .: u))) 
    in ( 
    card W) by 
    A30,
    ORDINAL1: 12,
    XBOOLE_1: 1;
    
        then (g
    .: (F 
    .: u)) 
    in W by 
    A33,
    CLASSES1: 1;
    
        then
    
        reconsider b1 = (
    sup (g 
    .: (F 
    .: u))) as 
    Ordinal of W by 
    ZF_REFLE: 19;
    
        set b = (b0
    \/ b1); 
    
        set a = (b
    \/ b2); 
    
        
    
        
    
    A34: (F 
    .: u) 
    c= (L 
    . b) by 
    A23,
    XBOOLE_1: 7;
    
        consider phi be
    Ordinal-Sequence of W such that 
    
        
    
    A35: phi is 
    increasing & phi is 
    continuous and 
    
        
    
    A36: for a st (phi 
    . a) 
    = a & 
    {}  
    <> a holds for v be 
    Function of 
    VAR , (L 
    . a) holds (M,(M 
    ! v)) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) iff ((L 
    . a),v) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) by 
    A1,
    A2,
    A3,
    ZF_REFLE: 20;
    
        consider a1 such that
    
        
    
    A37: a 
    in a1 and 
    
        
    
    A38: (phi 
    . a1) 
    = a1 by 
    A1,
    A35,
    ZFREFLE1: 28;
    
        
    
        
    
    A39: ( 
    rng f) 
    c= (L 
    . a1) 
    
        proof
    
          let u be
    object;
    
          
    
          
    
    A40: b2 
    c= a by 
    XBOOLE_1: 7;
    
          assume
    
          
    
    A41: u 
    in ( 
    rng f); 
    
          then
    
          consider u1 be
    object such that 
    
          
    
    A42: u1 
    in ( 
    dom f) and 
    
          
    
    A43: u 
    = (f 
    . u1) by 
    FUNCT_1:def 3;
    
          reconsider u1 as
    Variable by 
    A42;
    
          consider a2 be
    Ordinal of W such that 
    
          
    
    A44: a2 
    = (g 
    . (f 
    . u1)) and 
    
          
    
    A45: (f 
    . u1) 
    in (L 
    . a2) and for b st (f 
    . u1) 
    in (L 
    . b) holds a2 
    c= b by 
    A15;
    
          a2
    in (g 
    .: ( 
    rng f)) by 
    A15,
    A41,
    A43,
    A44,
    FUNCT_1:def 6;
    
          then a2
    in b2 by 
    ORDINAL2: 19;
    
          then (L
    . a2) 
    c= (L 
    . a1) by 
    A2,
    A37,
    A40,
    ORDINAL1: 10;
    
          hence thesis by
    A43,
    A45;
    
        end;
    
        set x = (
    x. (k 
    + 10)); 
    
        (k
    +  
    0 ) 
    = k; 
    
        then not (k
    + 10) 
    < k by 
    XREAL_1: 6;
    
        then not x
    in ( 
    variables_in H) by 
    A9;
    
        then
    
        
    
    A46: not x 
    in (( 
    variables_in H) 
    \  
    {(
    x.  
    0 )}) by 
    XBOOLE_0:def 5;
    
        set q = (
    Ex (( 
    x. 3),((( 
    x. 3) 
    'in' x) 
    '&' (p 
    / (( 
    x. 4),( 
    x.  
    0 )))))); 
    
        
    
        
    
    A47: 10 
    <= (10 
    + k) by 
    NAT_1: 11;
    
        b0
    c= b & b 
    c= a by 
    XBOOLE_1: 7;
    
        then b0
    c= a; 
    
        then
    
        
    
    A48: (L 
    . b0) 
    c= (L 
    . a1) by 
    A2,
    A37,
    ORDINAL1: 12;
    
        then
    
        reconsider mu = u as
    Element of (L 
    . a1) by 
    A29;
    
        (
    dom f) 
    =  
    VAR by 
    FUNCT_2:def 1;
    
        then
    
        reconsider v = f as
    Function of 
    VAR , (L 
    . a1) by 
    A39,
    FUNCT_2:def 1,
    RELSET_1: 4;
    
        set w = ((v
    / (( 
    x.  
    0 ),(v 
    . ( 
    x. 4)))) 
    / (x,mu)); 
    
        
    
        
    
    A49: x 
    <> ( 
    x. (k 
    + 5)) implies not x 
    in  
    {(
    x. (k 
    + 5))} by 
    TARSKI:def 1;
    
        (
    variables_in p) 
    c= ((( 
    variables_in H) 
    \  
    {(
    x.  
    0 )}) 
    \/  
    {(
    x. (k 
    + 5))}) & (k 
    + 5) 
    <> (k 
    + 10) by 
    ZF_LANG1: 187;
    
        then not x
    in ( 
    variables_in p) by 
    A46,
    A49,
    XBOOLE_0:def 3,
    ZF_LANG1: 76;
    
        then
    
        
    
    A50: ( 
    variables_in (p 
    / (( 
    x. 4),( 
    x.  
    0 )))) 
    c= ((( 
    variables_in p) 
    \  
    {(
    x. 4)}) 
    \/  
    {(
    x.  
    0 )}) & not x 
    in (( 
    variables_in p) 
    \  
    {(
    x. 4)}) by 
    XBOOLE_0:def 5,
    ZF_LANG1: 187;
    
        
    
        
    
    A51: 10 
    >  
    0 ; 
    
        then
    
        
    
    A52: x 
    <> ( 
    x.  
    0 ) by 
    A47,
    ZF_LANG1: 76;
    
        then not x
    in  
    {(
    x.  
    0 )} by 
    TARSKI:def 1;
    
        then
    
        
    
    A53: not x 
    in ( 
    variables_in (p 
    / (( 
    x. 4),( 
    x.  
    0 )))) by 
    A50,
    XBOOLE_0:def 3;
    
        
    
        
    
    A54: 10 
    > 3; 
    
        then
    
        
    
    A55: ( 
    x.  
    0 ) 
    <> ( 
    x. 3) & x 
    <> ( 
    x. 3) by 
    A47,
    ZF_LANG1: 76;
    
        b
    in a1 by 
    A37,
    ORDINAL1: 12,
    XBOOLE_1: 7;
    
        then (L
    . b) 
    c= (L 
    . a1) by 
    A2;
    
        then
    
        
    
    A56: (F 
    .: u) 
    c= (L 
    . a1) by 
    A34;
    
        
    
        
    
    A57: (F 
    .: u) 
    = ( 
    Section (q,w)) 
    
        proof
    
          now
    
            per cases ;
    
              suppose
    
              
    
    A58: ( 
    x. 4) 
    in ( 
    Free H); 
    
              4
    <> (k 
    + 5) by 
    NAT_1: 11;
    
              then
    
              
    
    A59: ( 
    x. (k 
    + 5)) 
    <> ( 
    x. 4) by 
    ZF_LANG1: 76;
    
              
    
              
    
    A60: ( 
    x. (k 
    + 10)) 
    <> ( 
    x.  
    0 ) by 
    A51,
    A47,
    ZF_LANG1: 76;
    
              ( not (
    x. (k 
    + 5)) 
    in ( 
    variables_in H)) & ( 
    x. (k 
    + 5)) 
    <> ( 
    x.  
    0 ) by 
    A9,
    A31,
    ZF_LANG1: 76;
    
              then
    
              
    
    A61: ( 
    x.  
    0 ) 
    in ( 
    Free q) by 
    A58,
    A60,
    A59,
    Lm4;
    
              
    
              
    
    A62: (F 
    .: u) 
    c= ( 
    Section (q,w)) 
    
              proof
    
                let u1 be
    object;
    
                assume
    
                
    
    A63: u1 
    in (F 
    .: u); 
    
                then
    
                consider u2 be
    object such that 
    
                
    
    A64: u2 
    in ( 
    dom F) and 
    
                
    
    A65: u2 
    in u and 
    
                
    
    A66: u1 
    = (F 
    . u2) by 
    FUNCT_1:def 6;
    
                reconsider m1 = u1 as
    Element of (L 
    . a1) by 
    A56,
    A63;
    
                reconsider u2 as
    Element of M by 
    A64;
    
                (L
    . a1) is 
    epsilon-transitive by 
    A4;
    
                then u
    c= (L 
    . a1) by 
    A29,
    A48;
    
                then
    
                reconsider m2 = u2 as
    Element of (L 
    . a1) by 
    A65;
    
                
    
                
    
    A67: ((f 
    / (( 
    x. 3),u2)) 
    / (( 
    x.  
    0 ),(F 
    . u2))) 
    = (M 
    ! ((v 
    / (( 
    x. 3),m2)) 
    / (( 
    x.  
    0 ),m1))) by 
    A66,
    ZF_LANG1:def 1,
    ZF_REFLE: 16;
    
                (M,((f
    / (( 
    x. 3),u2)) 
    / (( 
    x. 4),(F 
    . u2)))) 
    |= p & (((f 
    / (( 
    x. 3),u2)) 
    / (( 
    x. 4),(F 
    . u2))) 
    . ( 
    x. 4)) 
    = (F 
    . u2) by 
    A11,
    A22,
    FUNCT_7: 128,
    ZFMODEL2: 10;
    
                then (M,(((f
    / (( 
    x. 3),u2)) 
    / (( 
    x. 4),(F 
    . u2))) 
    / (( 
    x.  
    0 ),(F 
    . u2)))) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) by 
    A32,
    ZFMODEL2: 13;
    
                then
    
                
    
    A68: (M,(((f 
    / (( 
    x. 3),u2)) 
    / (( 
    x.  
    0 ),(F 
    . u2))) 
    / (( 
    x. 4),(F 
    . u2)))) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) by 
    FUNCT_7: 33,
    ZF_LANG1: 76;
    
                 not (
    x. 4) 
    in ( 
    variables_in (p 
    / (( 
    x. 4),( 
    x.  
    0 )))) by 
    ZF_LANG1: 76,
    ZF_LANG1: 184;
    
                then (M,((f
    / (( 
    x. 3),u2)) 
    / (( 
    x.  
    0 ),(F 
    . u2)))) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) by 
    A68,
    ZFMODEL2: 5;
    
                then ((L
    . a1),((v 
    / (( 
    x. 3),m2)) 
    / (( 
    x.  
    0 ),m1))) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) by 
    A36,
    A37,
    A38,
    A67;
    
                then
    
                
    
    A69: ((L 
    . a1),(((v 
    / (( 
    x. 3),m2)) 
    / (( 
    x.  
    0 ),m1)) 
    / (x,mu))) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) by 
    A53,
    ZFMODEL2: 5;
    
                
    
                
    
    A70: (w 
    . x) 
    = ((w 
    / (( 
    x.  
    0 ),m1)) 
    . x) & (w 
    . x) 
    = mu by 
    A51,
    A47,
    FUNCT_7: 32,
    FUNCT_7: 128,
    ZF_LANG1: 76;
    
                (((w
    / (( 
    x.  
    0 ),m1)) 
    / (( 
    x. 3),m2)) 
    . ( 
    x. 3)) 
    = m2 & (((w 
    / (( 
    x.  
    0 ),m1)) 
    / (( 
    x. 3),m2)) 
    . x) 
    = ((w 
    / (( 
    x.  
    0 ),m1)) 
    . x) by 
    A54,
    A47,
    FUNCT_7: 32,
    FUNCT_7: 128,
    ZF_LANG1: 76;
    
                then
    
                
    
    A71: ((L 
    . a1),((w 
    / (( 
    x.  
    0 ),m1)) 
    / (( 
    x. 3),m2))) 
    |= (( 
    x. 3) 
    'in' x) by 
    A65,
    A70,
    ZF_MODEL: 13;
    
                (w
    / (( 
    x.  
    0 ),m1)) 
    = ((v 
    / (x,mu)) 
    / (( 
    x.  
    0 ),m1)) by 
    ZFMODEL2: 8;
    
                then ((L
    . a1),((w 
    / (( 
    x.  
    0 ),m1)) 
    / (( 
    x. 3),m2))) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) by 
    A52,
    A55,
    A69,
    ZFMODEL2: 6;
    
                then ((L
    . a1),((w 
    / (( 
    x.  
    0 ),m1)) 
    / (( 
    x. 3),m2))) 
    |= ((( 
    x. 3) 
    'in' x) 
    '&' (p 
    / (( 
    x. 4),( 
    x.  
    0 )))) by 
    A71,
    ZF_MODEL: 15;
    
                then ((L
    . a1),(w 
    / (( 
    x.  
    0 ),m1))) 
    |= q by 
    ZF_LANG1: 73;
    
                then u1
    in { m where m be 
    Element of (L 
    . a1) : ((L 
    . a1),(w 
    / (( 
    x.  
    0 ),m))) 
    |= q }; 
    
                hence thesis by
    A61,
    Def1;
    
              end;
    
              (
    Section (q,w)) 
    c= (F 
    .: u) 
    
              proof
    
                let u1 be
    object;
    
                
    
                
    
    A72: (L 
    . a1) 
    c= M by 
    ZF_REFLE: 16;
    
                assume u1
    in ( 
    Section (q,w)); 
    
                then u1
    in { m where m be 
    Element of (L 
    . a1) : ((L 
    . a1),(w 
    / (( 
    x.  
    0 ),m))) 
    |= q } by 
    A61,
    Def1;
    
                then
    
                consider m1 be
    Element of (L 
    . a1) such that 
    
                
    
    A73: u1 
    = m1 and 
    
                
    
    A74: ((L 
    . a1),(w 
    / (( 
    x.  
    0 ),m1))) 
    |= q; 
    
                consider m2 be
    Element of (L 
    . a1) such that 
    
                
    
    A75: ((L 
    . a1),((w 
    / (( 
    x.  
    0 ),m1)) 
    / (( 
    x. 3),m2))) 
    |= ((( 
    x. 3) 
    'in' x) 
    '&' (p 
    / (( 
    x. 4),( 
    x.  
    0 )))) by 
    A74,
    ZF_LANG1: 73;
    
                reconsider u9 = m1, u2 = m2 as
    Element of M by 
    A72;
    
                
    
                
    
    A76: (w 
    / (( 
    x.  
    0 ),m1)) 
    = ((v 
    / (x,mu)) 
    / (( 
    x.  
    0 ),m1)) by 
    ZFMODEL2: 8;
    
                ((L
    . a1),((w 
    / (( 
    x.  
    0 ),m1)) 
    / (( 
    x. 3),m2))) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) by 
    A75,
    ZF_MODEL: 15;
    
                then ((L
    . a1),(((v 
    / (( 
    x. 3),m2)) 
    / (( 
    x.  
    0 ),m1)) 
    / (x,mu))) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) by 
    A52,
    A55,
    A76,
    ZFMODEL2: 6;
    
                then
    
                
    
    A77: ((L 
    . a1),((v 
    / (( 
    x. 3),m2)) 
    / (( 
    x.  
    0 ),m1))) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) by 
    A53,
    ZFMODEL2: 5;
    
                
    
                
    
    A78: (((f 
    / (( 
    x. 3),u2)) 
    / (( 
    x.  
    0 ),u9)) 
    / (( 
    x. 4),u9)) 
    = (((f 
    / (( 
    x. 3),u2)) 
    / (( 
    x. 4),u9)) 
    / (( 
    x.  
    0 ),u9)) & (((f 
    / (( 
    x. 3),u2)) 
    / (( 
    x.  
    0 ),u9)) 
    . ( 
    x.  
    0 )) 
    = u9 by 
    FUNCT_7: 33,
    FUNCT_7: 128,
    ZF_LANG1: 76;
    
                ((f
    / (( 
    x. 3),u2)) 
    / (( 
    x.  
    0 ),u9)) 
    = (M 
    ! ((v 
    / (( 
    x. 3),m2)) 
    / (( 
    x.  
    0 ),m1))) by 
    ZF_LANG1:def 1,
    ZF_REFLE: 16;
    
                then (M,((f
    / (( 
    x. 3),u2)) 
    / (( 
    x.  
    0 ),u9))) 
    |= (p 
    / (( 
    x. 4),( 
    x.  
    0 ))) by 
    A36,
    A37,
    A38,
    A77;
    
                then (M,(((f
    / (( 
    x. 3),u2)) 
    / (( 
    x. 4),u9)) 
    / (( 
    x.  
    0 ),u9))) 
    |= p by 
    A32,
    A78,
    ZFMODEL2: 12;
    
                then (M,((f
    / (( 
    x. 3),u2)) 
    / (( 
    x. 4),u9))) 
    |= p by 
    A32,
    ZFMODEL2: 5;
    
                then
    
                
    
    A79: (F 
    . u2) 
    = u9 by 
    A11,
    A22,
    ZFMODEL2: 10;
    
                
    
                
    
    A80: (w 
    . x) 
    = ((w 
    / (( 
    x.  
    0 ),m1)) 
    . x) & (w 
    . x) 
    = mu by 
    A51,
    A47,
    FUNCT_7: 32,
    FUNCT_7: 128,
    ZF_LANG1: 76;
    
                
    
                
    
    A81: ((L 
    . a1),((w 
    / (( 
    x.  
    0 ),m1)) 
    / (( 
    x. 3),m2))) 
    |= (( 
    x. 3) 
    'in' x) by 
    A75,
    ZF_MODEL: 15;
    
                
    
                
    
    A82: ( 
    dom F) 
    = M by 
    FUNCT_2:def 1;
    
                (((w
    / (( 
    x.  
    0 ),m1)) 
    / (( 
    x. 3),m2)) 
    . ( 
    x. 3)) 
    = m2 & (((w 
    / (( 
    x.  
    0 ),m1)) 
    / (( 
    x. 3),m2)) 
    . x) 
    = ((w 
    / (( 
    x.  
    0 ),m1)) 
    . x) by 
    A54,
    A47,
    FUNCT_7: 32,
    FUNCT_7: 128,
    ZF_LANG1: 76;
    
                then m2
    in u by 
    A81,
    A80,
    ZF_MODEL: 13;
    
                hence thesis by
    A73,
    A79,
    A82,
    FUNCT_1:def 6;
    
              end;
    
              hence thesis by
    A62;
    
            end;
    
              suppose
    
              
    
    A83: not ( 
    x. 4) 
    in ( 
    Free H); 
    
              4
    <> (k 
    + 5) by 
    NAT_1: 11;
    
              then
    
              
    
    A84: ( 
    x. (k 
    + 5)) 
    <> ( 
    x. 4) by 
    ZF_LANG1: 76;
    
              
    
              
    
    A85: ( 
    x. (k 
    + 10)) 
    <> ( 
    x.  
    0 ) by 
    A51,
    A47,
    ZF_LANG1: 76;
    
              ( not (
    x. (k 
    + 5)) 
    in ( 
    variables_in H)) & ( 
    x. (k 
    + 5)) 
    <> ( 
    x.  
    0 ) by 
    A9,
    A31,
    ZF_LANG1: 76;
    
              then not (
    x.  
    0 ) 
    in ( 
    Free q) by 
    A83,
    A85,
    A84,
    Lm4;
    
              then (
    Section (q,w)) 
    =  
    {} by 
    Def1;
    
              hence thesis by
    A8,
    A83,
    Lm3;
    
            end;
    
          end;
    
          hence thesis;
    
        end;
    
        (L
    . a1) 
    in M by 
    A4;
    
        hence ((
    def_func' (H,f)) 
    .: u) 
    in M by 
    A5,
    A57;
    
      end;
    
      (
    Union L) is 
    epsilon-transitive
    
      proof
    
        let X;
    
        assume X
    in ( 
    Union L); 
    
        then
    
        consider u such that
    
        
    
    A86: u 
    in ( 
    dom L) and 
    
        
    
    A87: X 
    in (L 
    . u) by 
    Lm1;
    
        reconsider u as
    Ordinal by 
    A86;
    
        u
    in ( 
    On W) by 
    A86,
    ZF_REFLE:def 2;
    
        then
    
        reconsider u as
    Ordinal of W by 
    ZF_REFLE: 7;
    
        (L
    . u) is 
    epsilon-transitive by 
    A4;
    
        then
    
        
    
    A88: X 
    c= (L 
    . u) by 
    A87;
    
        let u1 be
    object;
    
        
    
        
    
    A89: (L 
    . u) 
    c= ( 
    Union L) by 
    ZF_REFLE: 16;
    
        assume u1
    in X; 
    
        then u1
    in (L 
    . u) by 
    A88;
    
        hence thesis by
    A89;
    
      end;
    
      hence thesis by
    A6,
    ZFMODEL1: 15;
    
    end;
    
    
    
    
    
    Lm5: ( 
    x. i) 
    in ( 
    Free H) implies ( 
    {
    [i, m]}
    \/ ((v 
    *  
    decode ) 
    | (( 
    code ( 
    Free H)) 
    \  
    {i})))
    = (((v 
    / (( 
    x. i),m)) 
    *  
    decode ) 
    | ( 
    code ( 
    Free H))) 
    
    proof
    
      set e = ((v
    / (( 
    x. i),m)) 
    *  
    decode ); 
    
      set f = (v
    *  
    decode ); 
    
      set b = (f
    | (( 
    code ( 
    Free H)) 
    \  
    {i}));
    
      
    
      
    
    A1: i 
    in  
    {i} by
    TARSKI:def 1;
    
      
    
      
    
    A2: ( 
    dom (e 
    |  
    {i}))
    = (( 
    dom e) 
    /\  
    {i}) by
    RELAT_1: 61
    
      .= (
    omega  
    /\  
    {i}) by
    ZF_FUND1: 31
    
      .=
    {i} by
    ZFMISC_1: 46;
    
      
    
      then
    
      
    
    A3: (e 
    |  
    {i})
    =  
    {
    [i, ((e
    |  
    {i})
    . i)]} by 
    GRFUNC_1: 7
    
      .=
    {
    [i, (e
    . i)]} by 
    A1,
    A2,
    FUNCT_1: 47
    
      .=
    {
    [i, (e
    . ( 
    x". ( 
    x. i)))]} by 
    ZF_FUND1:def 3
    
      .=
    {
    [i, ((v
    / (( 
    x. i),m)) 
    . ( 
    x. i))]} by 
    ZF_FUND1: 32
    
      .=
    {
    [i, m]} by
    FUNCT_7: 128;
    
      
    
      
    
    A4: ( 
    dom b) 
    = (( 
    dom f) 
    /\ (( 
    code ( 
    Free H)) 
    \  
    {i})) by
    RELAT_1: 61
    
      .= (
    omega  
    /\ (( 
    code ( 
    Free H)) 
    \  
    {i})) by
    ZF_FUND1: 31
    
      .= ((
    dom e) 
    /\ (( 
    code ( 
    Free H)) 
    \  
    {i})) by
    ZF_FUND1: 31
    
      .= (
    dom (e 
    | (( 
    code ( 
    Free H)) 
    \  
    {i}))) by
    RELAT_1: 61;
    
      now
    
        let u be
    object;
    
        assume
    
        
    
    A5: u 
    in ( 
    dom b); 
    
        then u
    in (( 
    dom f) 
    /\ (( 
    code ( 
    Free H)) 
    \  
    {i})) by
    RELAT_1: 61;
    
        then
    
        
    
    A6: u 
    in (( 
    code ( 
    Free H)) 
    \  
    {i}) by
    XBOOLE_0:def 4;
    
        then u
    in ( 
    code ( 
    Free H)) by 
    XBOOLE_0:def 5;
    
        then
    
        consider x such that x
    in ( 
    Free H) and 
    
        
    
    A7: u 
    = ( 
    x". x) by 
    ZF_FUND1: 33;
    
         not u
    in  
    {i} by
    A6,
    XBOOLE_0:def 5;
    
        then i
    <> ( 
    x". x) by 
    A7,
    TARSKI:def 1;
    
        then
    
        
    
    A8: x 
    <> ( 
    x. i) by 
    ZF_FUND1:def 3;
    
        
    
        thus (b
    . u) 
    = (f 
    . u) by 
    A5,
    FUNCT_1: 47
    
        .= (v
    . x) by 
    A7,
    ZF_FUND1: 32
    
        .= ((v
    / (( 
    x. i),m)) 
    . x) by 
    A8,
    FUNCT_7: 32
    
        .= (e
    . u) by 
    A7,
    ZF_FUND1: 32
    
        .= ((e
    | (( 
    code ( 
    Free H)) 
    \  
    {i}))
    . u) by 
    A4,
    A5,
    FUNCT_1: 47;
    
      end;
    
      then
    
      
    
    A9: b 
    = (e 
    | (( 
    code ( 
    Free H)) 
    \  
    {i})) by
    A4,
    FUNCT_1: 2;
    
      assume (
    x. i) 
    in ( 
    Free H); 
    
      then (
    x". ( 
    x. i)) 
    in ( 
    code ( 
    Free H)) by 
    ZF_FUND1: 33;
    
      then i
    in ( 
    code ( 
    Free H)) by 
    ZF_FUND1:def 3;
    
      then
    {i}
    c= ( 
    code ( 
    Free H)) by 
    ZFMISC_1: 31;
    
      
    
      then (e
    | ( 
    code ( 
    Free H))) 
    = (e 
    | ( 
    {i}
    \/ (( 
    code ( 
    Free H)) 
    \  
    {i}))) by
    XBOOLE_1: 45
    
      .= (
    {
    [i, m]}
    \/ b) by 
    A3,
    A9,
    RELAT_1: 78;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_FUND2:4
    
    
    
    
    
    Th4: ( 
    Section (H,v)) 
    = { m : ( 
    {
    [
    {} , m]} 
    \/ ((v 
    *  
    decode ) 
    | (( 
    code ( 
    Free H)) 
    \  
    {
    {} }))) 
    in ( 
    Diagram (H,M)) } 
    
    proof
    
      set S = (
    Section (H,v)); 
    
      set D = { m : (
    {
    [
    {} , m]} 
    \/ ((v 
    *  
    decode ) 
    | (( 
    code ( 
    Free H)) 
    \  
    {
    {} }))) 
    in ( 
    Diagram (H,M)) }; 
    
      now
    
        per cases ;
    
          suppose
    
          
    
    A1: ( 
    x.  
    0 ) 
    in ( 
    Free H); 
    
          then
    
          
    
    A2: S 
    = { m : (M,(v 
    / (( 
    x.  
    0 ),m))) 
    |= H } by 
    Def1;
    
          
    
          
    
    A3: D 
    c= S 
    
          proof
    
            let u be
    object;
    
            assume u
    in D; 
    
            then
    
            consider m such that
    
            
    
    A4: m 
    = u and 
    
            
    
    A5: ( 
    {
    [
    {} , m]} 
    \/ ((v 
    *  
    decode ) 
    | (( 
    code ( 
    Free H)) 
    \  
    {
    {} }))) 
    in ( 
    Diagram (H,M)); 
    
            (((v
    / (( 
    x.  
    0 ),m)) 
    *  
    decode ) 
    | ( 
    code ( 
    Free H))) 
    in ( 
    Diagram (H,M)) by 
    A1,
    A5,
    Lm5;
    
            then ex v1 st (((v
    / (( 
    x.  
    0 ),m)) 
    *  
    decode ) 
    | ( 
    code ( 
    Free H))) 
    = ((v1 
    *  
    decode ) 
    | ( 
    code ( 
    Free H))) & v1 
    in ( 
    St (H,M)) by 
    ZF_FUND1:def 5;
    
            then (v
    / (( 
    x.  
    0 ),m)) 
    in ( 
    St (H,M)) by 
    ZF_FUND1: 36;
    
            then (M,(v
    / (( 
    x.  
    0 ),m))) 
    |= H by 
    ZF_MODEL:def 4;
    
            hence thesis by
    A2,
    A4;
    
          end;
    
          S
    c= D 
    
          proof
    
            let u be
    object;
    
            assume u
    in S; 
    
            then
    
            consider m such that
    
            
    
    A6: m 
    = u and 
    
            
    
    A7: (M,(v 
    / (( 
    x.  
    0 ),m))) 
    |= H by 
    A2;
    
            (v
    / (( 
    x.  
    0 ),m)) 
    in ( 
    St (H,M)) by 
    A7,
    ZF_MODEL:def 4;
    
            then (((v
    / (( 
    x.  
    0 ),m)) 
    *  
    decode ) 
    | ( 
    code ( 
    Free H))) 
    in ( 
    Diagram (H,M)) by 
    ZF_FUND1:def 5;
    
            then (
    {
    [
    {} , m]} 
    \/ ((v 
    *  
    decode ) 
    | (( 
    code ( 
    Free H)) 
    \  
    {
    {} }))) 
    in ( 
    Diagram (H,M)) by 
    A1,
    Lm5;
    
            hence thesis by
    A6;
    
          end;
    
          hence thesis by
    A3;
    
        end;
    
          suppose
    
          
    
    A8: not ( 
    x.  
    0 ) 
    in ( 
    Free H); 
    
          now
    
            set u = the
    Element of D; 
    
            assume D
    <>  
    {} ; 
    
            then u
    in D; 
    
            then
    
            consider m such that m
    = u and 
    
            
    
    A9: ( 
    {
    [
    {} , m]} 
    \/ ((v 
    *  
    decode ) 
    | (( 
    code ( 
    Free H)) 
    \  
    {
    {} }))) 
    in ( 
    Diagram (H,M)); 
    
            consider v2 such that
    
            
    
    A10: ( 
    {
    [
    {} , m]} 
    \/ ((v 
    *  
    decode ) 
    | (( 
    code ( 
    Free H)) 
    \  
    {
    {} }))) 
    = ((v2 
    *  
    decode ) 
    | ( 
    code ( 
    Free H))) and v2 
    in ( 
    St (H,M)) by 
    A9,
    ZF_FUND1:def 5;
    
            reconsider w = (
    {
    [
    {} , m]} 
    \/ ((v 
    *  
    decode ) 
    | (( 
    code ( 
    Free H)) 
    \  
    {
    {} }))) as 
    Function by 
    A10;
    
            
    [
    {} , m] 
    in  
    {
    [
    {} , m]} by 
    TARSKI:def 1;
    
            then
    [
    {} , m] 
    in w by 
    XBOOLE_0:def 3;
    
            then
    {}  
    in ( 
    dom w) by 
    FUNCT_1: 1;
    
            then
    {}  
    in (( 
    dom (v2 
    *  
    decode )) 
    /\ ( 
    code ( 
    Free H))) by 
    A10,
    RELAT_1: 61;
    
            then
    {}  
    in ( 
    code ( 
    Free H)) by 
    XBOOLE_0:def 4;
    
            then ex y st y
    in ( 
    Free H) & 
    {}  
    = ( 
    x". y) by 
    ZF_FUND1: 33;
    
            hence contradiction by
    A8,
    ZF_FUND1:def 3;
    
          end;
    
          hence thesis by
    A8,
    Def1;
    
        end;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_FUND2:5
    
    
    
    
    
    Th5: Y is 
    closed_wrt_A1-A7 & Y is 
    epsilon-transitive implies Y is 
    predicatively_closed
    
    proof
    
      assume that
    
      
    
    A1: Y is 
    closed_wrt_A1-A7 and 
    
      
    
    A2: Y is 
    epsilon-transitive;
    
      let H, E, f such that
    
      
    
    A3: E 
    in Y; 
    
      now
    
        per cases ;
    
          suppose not (
    x.  
    0 ) 
    in ( 
    Free H); 
    
          then (
    Section (H,f)) 
    =  
    {} by 
    Def1;
    
          hence thesis by
    A1,
    ZF_FUND1: 3;
    
        end;
    
          suppose
    
          
    
    A4: ( 
    x.  
    0 ) 
    in ( 
    Free H); 
    
          reconsider a = E as
    Element of W by 
    A3;
    
          reconsider n =
    {} as 
    Element of 
    omega by 
    ORDINAL1:def 11;
    
          set fs = ((
    code ( 
    Free H)) 
    \  
    {n});
    
          
    
          
    
    A5: ( 
    Diagram (H,E)) 
    in Y by 
    A1,
    A3,
    ZF_FUND1: 22;
    
          then
    
          reconsider b = (
    Diagram (H,E)) as 
    Element of W; 
    
          
    
          
    
    A6: b 
    c= ( 
    Funcs ((fs 
    \/  
    {n}),a))
    
          proof
    
            let u be
    object;
    
            assume u
    in b; 
    
            then ex f1 st u
    = ((f1 
    *  
    decode ) 
    | ( 
    code ( 
    Free H))) & f1 
    in ( 
    St (H,E)) by 
    ZF_FUND1:def 5;
    
            then
    
            
    
    A7: u 
    in ( 
    Funcs (( 
    code ( 
    Free H)),a)) by 
    ZF_FUND1: 31;
    
            (
    x". ( 
    x.  
    0 )) 
    in ( 
    code ( 
    Free H)) by 
    A4,
    ZF_FUND1: 33;
    
            then n
    in ( 
    code ( 
    Free H)) by 
    ZF_FUND1:def 3;
    
            then
    {n}
    c= ( 
    code ( 
    Free H)) by 
    ZFMISC_1: 31;
    
            hence thesis by
    A7,
    XBOOLE_1: 45;
    
          end;
    
          n
    in  
    {n} by
    TARSKI:def 1;
    
          then
    
          
    
    A8: not n 
    in fs by 
    XBOOLE_0:def 5;
    
          
    
          
    
    A9: ((f 
    *  
    decode ) 
    | fs) 
    in ( 
    Funcs (fs,a)) by 
    ZF_FUND1: 31;
    
          (
    Funcs (fs,a)) 
    in Y by 
    A1,
    A3,
    ZF_FUND1: 9;
    
          then
    
          reconsider y = ((f
    *  
    decode ) 
    | fs) as 
    Element of W by 
    A9,
    ZF_FUND1: 1;
    
          set B = { e : (
    {
    [n, e]}
    \/ y) 
    in b }; 
    
          set A = { w : w
    in a & ( 
    {
    [n, w]}
    \/ y) 
    in b }; 
    
          
    
          
    
    A10: A 
    = B 
    
          proof
    
            thus A
    c= B 
    
            proof
    
              let u be
    object;
    
              assume u
    in A; 
    
              then ex w st u
    = w & w 
    in a & ( 
    {
    [n, w]}
    \/ y) 
    in b; 
    
              hence thesis;
    
            end;
    
            let u be
    object;
    
            assume u
    in B; 
    
            then
    
            consider e such that
    
            
    
    A11: u 
    = e and 
    
            
    
    A12: ( 
    {
    [n, e]}
    \/ y) 
    in b; 
    
            reconsider e as
    Element of W by 
    A3,
    ZF_FUND1: 1;
    
            e
    in A by 
    A12;
    
            hence thesis by
    A11;
    
          end;
    
          a
    c= Y by 
    A2,
    A3;
    
          then A
    in Y by 
    A1,
    A3,
    A5,
    A9,
    A8,
    A6,
    ZF_FUND1: 16;
    
          hence thesis by
    A10,
    Th4;
    
        end;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_FUND2:6
    
    
    omega  
    in W & (for a, b st a 
    in b holds (L 
    . a) 
    c= (L 
    . b)) & (for a st a 
    <>  
    {} & a is 
    limit_ordinal holds (L 
    . a) 
    = ( 
    Union (L 
    | a))) & (for a holds (L 
    . a) 
    in ( 
    Union L) & (L 
    . a) is 
    epsilon-transitive) & (
    Union L) is 
    closed_wrt_A1-A7 implies ( 
    Union L) is 
    being_a_model_of_ZF
    
    proof
    
      assume that
    
      
    
    A1: 
    omega  
    in W and 
    
      
    
    A2: for a, b st a 
    in b holds (L 
    . a) 
    c= (L 
    . b) and 
    
      
    
    A3: for a st a 
    <>  
    {} & a is 
    limit_ordinal holds (L 
    . a) 
    = ( 
    Union (L 
    | a)) and 
    
      
    
    A4: for a holds (L 
    . a) 
    in ( 
    Union L) & (L 
    . a) is 
    epsilon-transitive and 
    
      
    
    A5: ( 
    Union L) is 
    closed_wrt_A1-A7;
    
      
    
      
    
    A6: ( 
    Union L) is 
    epsilon-transitive
    
      proof
    
        let X;
    
        assume X
    in ( 
    Union L); 
    
        then
    
        consider u such that
    
        
    
    A7: u 
    in ( 
    dom L) and 
    
        
    
    A8: X 
    in (L 
    . u) by 
    Lm1;
    
        reconsider u as
    Ordinal by 
    A7;
    
        u
    in ( 
    On W) by 
    A7,
    ZF_REFLE:def 2;
    
        then
    
        reconsider u as
    Ordinal of W by 
    ZF_REFLE: 7;
    
        (L
    . u) is 
    epsilon-transitive by 
    A4;
    
        then
    
        
    
    A9: X 
    c= (L 
    . u) by 
    A8;
    
        let u1 be
    object;
    
        
    
        
    
    A10: (L 
    . u) 
    c= ( 
    Union L) by 
    ZF_REFLE: 16;
    
        assume u1
    in X; 
    
        then u1
    in (L 
    . u) by 
    A9;
    
        hence thesis by
    A10;
    
      end;
    
      then (
    Union L) is 
    predicatively_closed by 
    A5,
    Th5;
    
      then
    
      
    
    A11: ( 
    Union L) 
    |=  
    the_axiom_of_power_sets & for H st 
    {(
    x.  
    0 ), ( 
    x. 1), ( 
    x. 2)} 
    misses ( 
    Free H) holds ( 
    Union L) 
    |= ( 
    the_axiom_of_substitution_for H) by 
    A1,
    A2,
    A3,
    A4,
    Th2,
    Th3;
    
      for u st u
    in ( 
    Union L) holds ( 
    union u) 
    in ( 
    Union L) by 
    A5,
    ZF_FUND1: 2;
    
      then
    
      
    
    A12: ( 
    Union L) 
    |=  
    the_axiom_of_unions by 
    A6,
    ZFMODEL1: 5;
    
      for u1, u2 st u1
    in ( 
    Union L) & u2 
    in ( 
    Union L) holds 
    {u1, u2}
    in ( 
    Union L) by 
    A5,
    ZF_FUND1: 6;
    
      then
    
      
    
    A13: ( 
    Union L) 
    |=  
    the_axiom_of_pairs by 
    A6,
    ZFMODEL1: 3;
    
      ex u st u
    in ( 
    Union L) & u 
    <>  
    {} & for u1 st u1 
    in u holds ex u2 st u1 
    c< u2 & u2 
    in u 
    
      proof
    
        
    
        
    
    A14: ( 
    card  
    omega ) 
    in ( 
    card W) by 
    A1,
    CLASSES2: 1;
    
        deffunc
    
    G(
    set, 
    set) = (
    inf { w : (L 
    . $2) 
    in (L 
    . w) }); 
    
        consider ksi be
    Function such that 
    
        
    
    A15: ( 
    dom ksi) 
    =  
    NAT & (ksi 
    .  
    0 ) 
    = ( 
    0-element_of W) & for i be 
    Nat holds (ksi 
    . (i 
    + 1)) 
    =  
    G(i,.) from
    NAT_1:sch 11;
    
        (
    card ( 
    rng ksi)) 
    c= ( 
    card  
    NAT ) by 
    A15,
    CARD_1: 12;
    
        then
    
        
    
    A16: ( 
    card ( 
    rng ksi)) 
    in ( 
    card W) by 
    A14,
    ORDINAL1: 12;
    
        set lambda = (
    sup ( 
    rng ksi)); 
    
        
    
        
    
    A17: for i be 
    Nat holds (ksi 
    . i) 
    in ( 
    On W) & (ksi 
    . i) is 
    Ordinal of W 
    
        proof
    
          defpred
    
    P[
    Nat] means (ksi
    . $1) 
    in ( 
    On W) & (ksi 
    . $1) is 
    Ordinal of W; 
    
          
    
    A18: 
    
          now
    
            let i be
    Nat;
    
            assume
    P[i];
    
            then
    
            reconsider a = (ksi
    . i) as 
    Ordinal of W; 
    
            
    
            
    
    A19: (ksi 
    . (i 
    + 1)) 
    = ( 
    inf { w : (L 
    . a) 
    in (L 
    . w) }) by 
    A15;
    
            consider u such that
    
            
    
    A20: u 
    in ( 
    dom L) and 
    
            
    
    A21: (L 
    . a) 
    in (L 
    . u) by 
    A4,
    Lm1;
    
            (
    dom L) 
    = ( 
    On W) by 
    ZF_REFLE:def 2;
    
            then
    
            reconsider b = u as
    Ordinal of W by 
    A20,
    ZF_REFLE: 7;
    
            b
    in { w : (L 
    . a) 
    in (L 
    . w) } by 
    A21;
    
            then (
    inf { w : (L 
    . a) 
    in (L 
    . w) }) 
    c= b by 
    ORDINAL2: 14;
    
            then (ksi
    . (i 
    + 1)) 
    in W by 
    A19,
    CLASSES1:def 1;
    
            hence
    P[(i
    + 1)] by 
    A19,
    ORDINAL1:def 9;
    
          end;
    
          
    
          
    
    A22: 
    P[
    0 ] by 
    A15,
    ZF_REFLE: 7;
    
          thus for i be
    Nat holds 
    P[i] from
    NAT_1:sch 2(
    A22,
    A18);
    
        end;
    
        (
    rng ksi) 
    c= W 
    
        proof
    
          let a be
    object;
    
          assume a
    in ( 
    rng ksi); 
    
          then
    
          consider i be
    object such that 
    
          
    
    A23: i 
    in ( 
    dom ksi) and 
    
          
    
    A24: a 
    = (ksi 
    . i) by 
    FUNCT_1:def 3;
    
          reconsider i as
    Element of 
    NAT by 
    A15,
    A23;
    
          (ksi
    . i) 
    in ( 
    On W) by 
    A17;
    
          hence thesis by
    A24,
    ORDINAL1:def 9;
    
        end;
    
        then (
    rng ksi) 
    in W by 
    A16,
    CLASSES1: 1;
    
        then
    
        reconsider l = lambda as
    Ordinal of W by 
    ZF_REFLE: 19;
    
        
    
        
    
    A25: for i holds (L 
    . (ksi 
    . i)) 
    in (L 
    . (ksi 
    . (i 
    + 1))) 
    
        proof
    
          let i;
    
          reconsider a = (ksi
    . i) as 
    Ordinal of W by 
    A17;
    
          consider b be
    set such that 
    
          
    
    A26: b 
    in ( 
    dom L) and 
    
          
    
    A27: (L 
    . a) 
    in (L 
    . b) by 
    A4,
    Lm1;
    
          b
    in ( 
    On W) by 
    A26,
    ZF_REFLE:def 2;
    
          then
    
          reconsider b as
    Ordinal of W by 
    ZF_REFLE: 7;
    
          
    
          
    
    A28: b 
    in { w : (L 
    . a) 
    in (L 
    . w) } by 
    A27;
    
          (ksi
    . (i 
    + 1)) 
    = ( 
    inf { w : (L 
    . (ksi 
    . i)) 
    in (L 
    . w) }) by 
    A15;
    
          then (ksi
    . (i 
    + 1)) 
    in { w : (L 
    . (ksi 
    . i)) 
    in (L 
    . w) } by 
    A28,
    ORDINAL2: 17;
    
          then ex w st w
    = (ksi 
    . (i 
    + 1)) & (L 
    . a) 
    in (L 
    . w); 
    
          hence thesis;
    
        end;
    
        
    
        
    
    A29: for i holds (ksi 
    . i) 
    in (ksi 
    . (i 
    + 1)) 
    
        proof
    
          let i;
    
          reconsider b = (ksi
    . (i 
    + 1)) as 
    Ordinal of W by 
    A17;
    
          reconsider a = (ksi
    . i) as 
    Ordinal of W by 
    A17;
    
          assume not (ksi
    . i) 
    in (ksi 
    . (i 
    + 1)); 
    
          then b
    = a or b 
    in a by 
    ORDINAL1: 14;
    
          then (L
    . b) 
    c= (L 
    . a) by 
    A2;
    
          hence contradiction by
    A25,
    ORDINAL1: 5;
    
        end;
    
        
    
        
    
    A30: l 
    c= ( 
    union l) 
    
        proof
    
          let u1 be
    Ordinal;
    
          assume u1
    in l; 
    
          then
    
          consider u2 be
    Ordinal such that 
    
          
    
    A31: u2 
    in ( 
    rng ksi) and 
    
          
    
    A32: u1 
    c= u2 by 
    ORDINAL2: 21;
    
          consider i be
    object such that 
    
          
    
    A33: i 
    in ( 
    dom ksi) and 
    
          
    
    A34: u2 
    = (ksi 
    . i) by 
    A31,
    FUNCT_1:def 3;
    
          reconsider i as
    Element of 
    NAT by 
    A15,
    A33;
    
          reconsider u3 = (ksi
    . (i 
    + 1)) as 
    Ordinal of W by 
    A17;
    
          u3
    in ( 
    rng ksi) by 
    A15,
    FUNCT_1:def 3;
    
          then
    
          
    
    A35: u3 
    in l by 
    ORDINAL2: 19;
    
          u1
    in u3 by 
    A29,
    A32,
    A34,
    ORDINAL1: 12;
    
          hence thesis by
    A35,
    TARSKI:def 4;
    
        end;
    
        (
    union l) 
    c= l by 
    ORDINAL2: 5;
    
        then l
    = ( 
    union l) by 
    A30;
    
        then
    
        
    
    A36: l is 
    limit_ordinal;
    
        
    
        
    
    A37: ( 
    union the set of all (L 
    . (ksi 
    . n))) 
    = (L 
    . l) 
    
        proof
    
          set A = the set of all (L
    . (ksi 
    . n)); 
    
          thus (
    union A) 
    c= (L 
    . l) 
    
          proof
    
            let u1 be
    object;
    
            assume u1
    in ( 
    union A); 
    
            then
    
            consider X such that
    
            
    
    A38: u1 
    in X and 
    
            
    
    A39: X 
    in A by 
    TARSKI:def 4;
    
            consider n such that
    
            
    
    A40: X 
    = (L 
    . (ksi 
    . n)) by 
    A39;
    
            reconsider a = (ksi
    . n) as 
    Ordinal of W by 
    A17;
    
            a
    in ( 
    rng ksi) by 
    A15,
    FUNCT_1:def 3;
    
            then (L
    . a) 
    c= (L 
    . l) by 
    A2,
    ORDINAL2: 19;
    
            hence thesis by
    A38,
    A40;
    
          end;
    
          (
    0-element_of W) 
    in ( 
    rng ksi) by 
    A15,
    FUNCT_1:def 3;
    
          then l
    <>  
    {} by 
    ORDINAL2: 19;
    
          then
    
          
    
    A41: (L 
    . l) 
    = ( 
    Union (L 
    | l)) by 
    A3,
    A36;
    
          let u1 be
    object;
    
          assume u1
    in (L 
    . l); 
    
          then
    
          consider u2 such that
    
          
    
    A42: u2 
    in ( 
    dom (L 
    | l)) and 
    
          
    
    A43: u1 
    in ((L 
    | l) 
    . u2) by 
    A41,
    Lm1;
    
          
    
          
    
    A44: u1 
    in (L 
    . u2) by 
    A42,
    A43,
    FUNCT_1: 47;
    
          
    
          
    
    A45: u2 
    in (( 
    dom L) 
    /\ l) by 
    A42,
    RELAT_1: 61;
    
          then
    
          
    
    A46: u2 
    in l by 
    XBOOLE_0:def 4;
    
          u2
    in ( 
    dom L) by 
    A45,
    XBOOLE_0:def 4;
    
          then u2
    in ( 
    On W) by 
    ZF_REFLE:def 2;
    
          then
    
          reconsider u2 as
    Ordinal of W by 
    ZF_REFLE: 7;
    
          consider b be
    Ordinal such that 
    
          
    
    A47: b 
    in ( 
    rng ksi) and 
    
          
    
    A48: u2 
    c= b by 
    A46,
    ORDINAL2: 21;
    
          consider i be
    object such that 
    
          
    
    A49: i 
    in ( 
    dom ksi) and 
    
          
    
    A50: b 
    = (ksi 
    . i) by 
    A47,
    FUNCT_1:def 3;
    
          reconsider i as
    Element of 
    NAT by 
    A15,
    A49;
    
          b
    = (ksi 
    . i) by 
    A50;
    
          then
    
          reconsider b as
    Ordinal of W by 
    A17;
    
          u2
    c< b iff u2 
    c= b & u2 
    <> b; 
    
          then
    
          
    
    A51: (L 
    . u2) 
    c= (L 
    . b) by 
    A2,
    A48,
    ORDINAL1: 11;
    
          (L
    . (ksi 
    . i)) 
    in A; 
    
          hence thesis by
    A44,
    A50,
    A51,
    TARSKI:def 4;
    
        end;
    
        take u = (L
    . lambda); 
    
        (L
    . l) 
    in ( 
    Union L) by 
    A4;
    
        hence u
    in ( 
    Union L) & u 
    <>  
    {} ; 
    
        let u1;
    
        assume u1
    in u; 
    
        then
    
        consider u2 such that
    
        
    
    A52: u1 
    in u2 & u2 
    in the set of all (L 
    . (ksi 
    . n)) by 
    A37,
    TARSKI:def 4;
    
        take u2;
    
        consider i such that
    
        
    
    A53: u2 
    = (L 
    . (ksi 
    . i)) by 
    A52;
    
        
    
        
    
    A54: u1 
    <> u2 by 
    A52;
    
        reconsider a = (ksi
    . i) as 
    Ordinal of W by 
    A17;
    
        (L
    . a) is 
    epsilon-transitive by 
    A4;
    
        then u1
    c= u2 by 
    A52,
    A53;
    
        hence u1
    c< u2 by 
    A54;
    
        
    
        
    
    A55: (L 
    . (ksi 
    . (i 
    + 1))) 
    in the set of all (L 
    . (ksi 
    . n)); 
    
        (L
    . (ksi 
    . i)) 
    in (L 
    . (ksi 
    . (i 
    + 1))) by 
    A25;
    
        hence u2
    in u by 
    A37,
    A53,
    A55,
    TARSKI:def 4;
    
      end;
    
      then (
    Union L) 
    |=  
    the_axiom_of_infinity by 
    A6,
    ZFMODEL1: 7;
    
      hence thesis by
    A6,
    A13,
    A12,
    A11,
    ZF_MODEL:def 12;
    
    end;