zf_lang1.miz
    
    begin
    
    reserve p,p1,p2,q,r,F,G,G1,G2,H,H1,H2 for
    ZF-formula, 
    
x,x1,x2,y,y1,y2,z,z1,z2,s,t for
    Variable, 
    
a,X for
    set;
    
    theorem :: 
    
    ZF_LANG1:1
    
    
    
    
    
    Th1: ( 
    Var1 (x 
    '=' y)) 
    = x & ( 
    Var2 (x 
    '=' y)) 
    = y 
    
    proof
    
      (x
    '=' y) is 
    being_equality;
    
      then (x
    '=' y) 
    = (( 
    Var1 (x 
    '=' y)) 
    '=' ( 
    Var2 (x 
    '=' y))) by 
    ZF_LANG: 36;
    
      hence thesis by
    ZF_LANG: 1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:2
    
    
    
    
    
    Th2: ( 
    Var1 (x 
    'in' y)) 
    = x & ( 
    Var2 (x 
    'in' y)) 
    = y 
    
    proof
    
      (x
    'in' y) is 
    being_membership;
    
      then (x
    'in' y) 
    = (( 
    Var1 (x 
    'in' y)) 
    'in' ( 
    Var2 (x 
    'in' y))) by 
    ZF_LANG: 37;
    
      hence thesis by
    ZF_LANG: 2;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:3
    
    
    
    
    
    Th3: ( 
    the_argument_of ( 
    'not' p)) 
    = p 
    
    proof
    
      (
    'not' p) is 
    negative;
    
      hence thesis by
    ZF_LANG:def 30;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:4
    
    
    
    
    
    Th4: ( 
    the_left_argument_of (p 
    '&' q)) 
    = p & ( 
    the_right_argument_of (p 
    '&' q)) 
    = q 
    
    proof
    
      (p
    '&' q) is 
    conjunctive;
    
      then (p
    '&' q) 
    = (( 
    the_left_argument_of (p 
    '&' q)) 
    '&' ( 
    the_right_argument_of (p 
    '&' q))) by 
    ZF_LANG: 40;
    
      hence thesis by
    ZF_LANG: 30;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:5
    
    (
    the_left_argument_of (p 
    'or' q)) 
    = p & ( 
    the_right_argument_of (p 
    'or' q)) 
    = q 
    
    proof
    
      (p
    'or' q) is 
    disjunctive;
    
      then (p
    'or' q) 
    = (( 
    the_left_argument_of (p 
    'or' q)) 
    'or' ( 
    the_right_argument_of (p 
    'or' q))) by 
    ZF_LANG: 41;
    
      hence thesis by
    ZF_LANG: 31;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:6
    
    
    
    
    
    Th6: ( 
    the_antecedent_of (p 
    => q)) 
    = p & ( 
    the_consequent_of (p 
    => q)) 
    = q 
    
    proof
    
      (p
    => q) is 
    conditional;
    
      then (p
    => q) 
    = (( 
    the_antecedent_of (p 
    => q)) 
    => ( 
    the_consequent_of (p 
    => q))) by 
    ZF_LANG: 47;
    
      hence thesis by
    ZF_LANG: 32;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:7
    
    (
    the_left_side_of (p 
    <=> q)) 
    = p & ( 
    the_right_side_of (p 
    <=> q)) 
    = q 
    
    proof
    
      (p
    <=> q) is 
    biconditional;
    
      then (p
    <=> q) 
    = (( 
    the_left_side_of (p 
    <=> q)) 
    <=> ( 
    the_right_side_of (p 
    <=> q))) by 
    ZF_LANG: 49;
    
      hence thesis by
    ZF_LANG: 33;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:8
    
    
    
    
    
    Th8: ( 
    bound_in ( 
    All (x,p))) 
    = x & ( 
    the_scope_of ( 
    All (x,p))) 
    = p 
    
    proof
    
      (
    All (x,p)) is 
    universal;
    
      then (
    All (x,p)) 
    = ( 
    All (( 
    bound_in ( 
    All (x,p))),( 
    the_scope_of ( 
    All (x,p))))) by 
    ZF_LANG: 44;
    
      hence thesis by
    ZF_LANG: 3;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:9
    
    
    
    
    
    Th9: ( 
    bound_in ( 
    Ex (x,p))) 
    = x & ( 
    the_scope_of ( 
    Ex (x,p))) 
    = p 
    
    proof
    
      (
    Ex (x,p)) is 
    existential;
    
      then (
    Ex (x,p)) 
    = ( 
    Ex (( 
    bound_in ( 
    Ex (x,p))),( 
    the_scope_of ( 
    Ex (x,p))))) by 
    ZF_LANG: 45;
    
      hence thesis by
    ZF_LANG: 34;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:10
    
    (p
    'or' q) 
    = (( 
    'not' p) 
    => q); 
    
    theorem :: 
    
    ZF_LANG1:11
    
    (
    All (x,y,p)) is 
    universal & ( 
    bound_in ( 
    All (x,y,p))) 
    = x & ( 
    the_scope_of ( 
    All (x,y,p))) 
    = ( 
    All (y,p)) by 
    Th8;
    
    theorem :: 
    
    ZF_LANG1:12
    
    (
    Ex (x,y,p)) is 
    existential & ( 
    bound_in ( 
    Ex (x,y,p))) 
    = x & ( 
    the_scope_of ( 
    Ex (x,y,p))) 
    = ( 
    Ex (y,p)) by 
    Th9;
    
    theorem :: 
    
    ZF_LANG1:13
    
    (
    All (x,y,z,p)) 
    = ( 
    All (x,( 
    All (y,( 
    All (z,p)))))) & ( 
    All (x,y,z,p)) 
    = ( 
    All (x,y,( 
    All (z,p)))); 
    
    theorem :: 
    
    ZF_LANG1:14
    
    
    
    
    
    Th14: ( 
    All (x1,y1,p1)) 
    = ( 
    All (x2,y2,p2)) implies x1 
    = x2 & y1 
    = y2 & p1 
    = p2 
    
    proof
    
      assume
    
      
    
    A1: ( 
    All (x1,y1,p1)) 
    = ( 
    All (x2,y2,p2)); 
    
      then (
    All (y1,p1)) 
    = ( 
    All (y2,p2)) by 
    ZF_LANG: 3;
    
      hence thesis by
    A1,
    ZF_LANG: 3;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:15
    
    (
    All (x1,y1,z1,p1)) 
    = ( 
    All (x2,y2,z2,p2)) implies x1 
    = x2 & y1 
    = y2 & z1 
    = z2 & p1 
    = p2 
    
    proof
    
      assume
    
      
    
    A1: ( 
    All (x1,y1,z1,p1)) 
    = ( 
    All (x2,y2,z2,p2)); 
    
      then (
    All (y1,z1,p1)) 
    = ( 
    All (y2,z2,p2)) by 
    ZF_LANG: 3;
    
      hence thesis by
    A1,
    Th14,
    ZF_LANG: 3;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:16
    
    (
    All (x,y,z,p)) 
    = ( 
    All (t,s,q)) implies x 
    = t & y 
    = s & ( 
    All (z,p)) 
    = q 
    
    proof
    
      (
    All (x,y,z,p)) 
    = ( 
    All (x,y,( 
    All (z,p)))); 
    
      hence thesis by
    Th14;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:17
    
    
    
    
    
    Th17: ( 
    Ex (x1,y1,p1)) 
    = ( 
    Ex (x2,y2,p2)) implies x1 
    = x2 & y1 
    = y2 & p1 
    = p2 
    
    proof
    
      assume
    
      
    
    A1: ( 
    Ex (x1,y1,p1)) 
    = ( 
    Ex (x2,y2,p2)); 
    
      then (
    Ex (y1,p1)) 
    = ( 
    Ex (y2,p2)) by 
    ZF_LANG: 34;
    
      hence thesis by
    A1,
    ZF_LANG: 34;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:18
    
    (
    Ex (x,y,z,p)) 
    = ( 
    Ex (x,( 
    Ex (y,( 
    Ex (z,p)))))) & ( 
    Ex (x,y,z,p)) 
    = ( 
    Ex (x,y,( 
    Ex (z,p)))); 
    
    theorem :: 
    
    ZF_LANG1:19
    
    (
    Ex (x1,y1,z1,p1)) 
    = ( 
    Ex (x2,y2,z2,p2)) implies x1 
    = x2 & y1 
    = y2 & z1 
    = z2 & p1 
    = p2 
    
    proof
    
      assume
    
      
    
    A1: ( 
    Ex (x1,y1,z1,p1)) 
    = ( 
    Ex (x2,y2,z2,p2)); 
    
      then (
    Ex (y1,z1,p1)) 
    = ( 
    Ex (y2,z2,p2)) by 
    ZF_LANG: 34;
    
      hence thesis by
    A1,
    Th17,
    ZF_LANG: 34;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:20
    
    (
    Ex (x,y,z,p)) 
    = ( 
    Ex (t,s,q)) implies x 
    = t & y 
    = s & ( 
    Ex (z,p)) 
    = q 
    
    proof
    
      (
    Ex (x,y,z,p)) 
    = ( 
    Ex (x,y,( 
    Ex (z,p)))); 
    
      hence thesis by
    Th17;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:21
    
    (
    All (x,y,z,p)) is 
    universal & ( 
    bound_in ( 
    All (x,y,z,p))) 
    = x & ( 
    the_scope_of ( 
    All (x,y,z,p))) 
    = ( 
    All (y,z,p)) by 
    Th8;
    
    theorem :: 
    
    ZF_LANG1:22
    
    (
    Ex (x,y,z,p)) is 
    existential & ( 
    bound_in ( 
    Ex (x,y,z,p))) 
    = x & ( 
    the_scope_of ( 
    Ex (x,y,z,p))) 
    = ( 
    Ex (y,z,p)) by 
    Th9;
    
    theorem :: 
    
    ZF_LANG1:23
    
    H is
    disjunctive implies ( 
    the_left_argument_of H) 
    = ( 
    the_argument_of ( 
    the_left_argument_of ( 
    the_argument_of H))) 
    
    proof
    
      assume H is
    disjunctive;
    
      then H
    = (( 
    the_left_argument_of H) 
    'or' ( 
    the_right_argument_of H)) by 
    ZF_LANG: 41;
    
      then (
    the_argument_of H) 
    = (( 
    'not' ( 
    the_left_argument_of H)) 
    '&' ( 
    'not' ( 
    the_right_argument_of H))) by 
    Th3;
    
      then (
    the_left_argument_of ( 
    the_argument_of H)) 
    = ( 
    'not' ( 
    the_left_argument_of H)) by 
    Th4;
    
      hence thesis by
    Th3;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:24
    
    H is
    disjunctive implies ( 
    the_right_argument_of H) 
    = ( 
    the_argument_of ( 
    the_right_argument_of ( 
    the_argument_of H))) 
    
    proof
    
      assume H is
    disjunctive;
    
      then H
    = (( 
    the_left_argument_of H) 
    'or' ( 
    the_right_argument_of H)) by 
    ZF_LANG: 41;
    
      then (
    the_argument_of H) 
    = (( 
    'not' ( 
    the_left_argument_of H)) 
    '&' ( 
    'not' ( 
    the_right_argument_of H))) by 
    Th3;
    
      then (
    the_right_argument_of ( 
    the_argument_of H)) 
    = ( 
    'not' ( 
    the_right_argument_of H)) by 
    Th4;
    
      hence thesis by
    Th3;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:25
    
    H is
    conditional implies ( 
    the_antecedent_of H) 
    = ( 
    the_left_argument_of ( 
    the_argument_of H)) 
    
    proof
    
      assume H is
    conditional;
    
      then H
    = (( 
    the_antecedent_of H) 
    => ( 
    the_consequent_of H)) by 
    ZF_LANG: 47;
    
      then (
    the_argument_of H) 
    = (( 
    the_antecedent_of H) 
    '&' ( 
    'not' ( 
    the_consequent_of H))) by 
    Th3;
    
      hence thesis by
    Th4;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:26
    
    H is
    conditional implies ( 
    the_consequent_of H) 
    = ( 
    the_argument_of ( 
    the_right_argument_of ( 
    the_argument_of H))) 
    
    proof
    
      assume H is
    conditional;
    
      then H
    = (( 
    the_antecedent_of H) 
    => ( 
    the_consequent_of H)) by 
    ZF_LANG: 47;
    
      then (
    the_argument_of H) 
    = (( 
    the_antecedent_of H) 
    '&' ( 
    'not' ( 
    the_consequent_of H))) by 
    Th3;
    
      then (
    the_right_argument_of ( 
    the_argument_of H)) 
    = ( 
    'not' ( 
    the_consequent_of H)) by 
    Th4;
    
      hence thesis by
    Th3;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:27
    
    H is
    biconditional implies ( 
    the_left_side_of H) 
    = ( 
    the_antecedent_of ( 
    the_left_argument_of H)) & ( 
    the_left_side_of H) 
    = ( 
    the_consequent_of ( 
    the_right_argument_of H)) 
    
    proof
    
      assume H is
    biconditional;
    
      then H
    = (( 
    the_left_side_of H) 
    <=> ( 
    the_right_side_of H)) by 
    ZF_LANG: 49;
    
      then (
    the_left_argument_of H) 
    = (( 
    the_left_side_of H) 
    => ( 
    the_right_side_of H)) & ( 
    the_right_argument_of H) 
    = (( 
    the_right_side_of H) 
    => ( 
    the_left_side_of H)) by 
    Th4;
    
      hence thesis by
    Th6;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:28
    
    H is
    biconditional implies ( 
    the_right_side_of H) 
    = ( 
    the_consequent_of ( 
    the_left_argument_of H)) & ( 
    the_right_side_of H) 
    = ( 
    the_antecedent_of ( 
    the_right_argument_of H)) 
    
    proof
    
      assume H is
    biconditional;
    
      then H
    = (( 
    the_left_side_of H) 
    <=> ( 
    the_right_side_of H)) by 
    ZF_LANG: 49;
    
      then (
    the_left_argument_of H) 
    = (( 
    the_left_side_of H) 
    => ( 
    the_right_side_of H)) & ( 
    the_right_argument_of H) 
    = (( 
    the_right_side_of H) 
    => ( 
    the_left_side_of H)) by 
    Th4;
    
      hence thesis by
    Th6;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:29
    
    H is
    existential implies ( 
    bound_in H) 
    = ( 
    bound_in ( 
    the_argument_of H)) & ( 
    the_scope_of H) 
    = ( 
    the_argument_of ( 
    the_scope_of ( 
    the_argument_of H))) 
    
    proof
    
      assume H is
    existential;
    
      then H
    = ( 
    Ex (( 
    bound_in H),( 
    the_scope_of H))) by 
    ZF_LANG: 45;
    
      then
    
      
    
    A1: ( 
    the_argument_of H) 
    = ( 
    All (( 
    bound_in H),( 
    'not' ( 
    the_scope_of H)))) by 
    Th3;
    
      hence (
    bound_in H) 
    = ( 
    bound_in ( 
    the_argument_of H)) by 
    Th8;
    
      (
    'not' ( 
    the_scope_of H)) 
    = ( 
    the_scope_of ( 
    the_argument_of H)) by 
    A1,
    Th8;
    
      hence thesis by
    Th3;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:30
    
    (
    the_argument_of (F 
    'or' G)) 
    = (( 
    'not' F) 
    '&' ( 
    'not' G)) & ( 
    the_antecedent_of (F 
    'or' G)) 
    = ( 
    'not' F) & ( 
    the_consequent_of (F 
    'or' G)) 
    = G 
    
    proof
    
      thus (
    the_argument_of (F 
    'or' G)) 
    = (( 
    'not' F) 
    '&' ( 
    'not' G)) by 
    Th3;
    
      (F
    'or' G) 
    = (( 
    'not' F) 
    => G); 
    
      hence thesis by
    Th6;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:31
    
    (
    the_argument_of (F 
    => G)) 
    = (F 
    '&' ( 
    'not' G)) by 
    Th3;
    
    theorem :: 
    
    ZF_LANG1:32
    
    (
    the_left_argument_of (F 
    <=> G)) 
    = (F 
    => G) & ( 
    the_right_argument_of (F 
    <=> G)) 
    = (G 
    => F) by 
    Th4;
    
    theorem :: 
    
    ZF_LANG1:33
    
    (
    the_argument_of ( 
    Ex (x,H))) 
    = ( 
    All (x,( 
    'not' H))) by 
    Th3;
    
    theorem :: 
    
    ZF_LANG1:34
    
    H is
    disjunctive implies H is 
    conditional & H is 
    negative & ( 
    the_argument_of H) is 
    conjunctive & ( 
    the_left_argument_of ( 
    the_argument_of H)) is 
    negative & ( 
    the_right_argument_of ( 
    the_argument_of H)) is 
    negative
    
    proof
    
      assume H is
    disjunctive;
    
      then
    
      
    
    A1: H 
    = (( 
    the_left_argument_of H) 
    'or' ( 
    the_right_argument_of H)) by 
    ZF_LANG: 41;
    
      then H
    = (( 
    'not' ( 
    the_left_argument_of H)) 
    => ( 
    the_right_argument_of H)); 
    
      hence H is
    conditional & H is 
    negative;
    
      
    
      
    
    A2: ( 
    the_argument_of H) 
    = (( 
    'not' ( 
    the_left_argument_of H)) 
    '&' ( 
    'not' ( 
    the_right_argument_of H))) by 
    A1,
    Th3;
    
      hence (
    the_argument_of H) is 
    conjunctive;
    
      (
    the_left_argument_of ( 
    the_argument_of H)) 
    = ( 
    'not' ( 
    the_left_argument_of H)) & ( 
    the_right_argument_of ( 
    the_argument_of H)) 
    = ( 
    'not' ( 
    the_right_argument_of H)) by 
    A2,
    Th4;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:35
    
    H is
    conditional implies H is 
    negative & ( 
    the_argument_of H) is 
    conjunctive & ( 
    the_right_argument_of ( 
    the_argument_of H)) is 
    negative
    
    proof
    
      assume H is
    conditional;
    
      then
    
      
    
    A1: H 
    = (( 
    the_antecedent_of H) 
    => ( 
    the_consequent_of H)) by 
    ZF_LANG: 47;
    
      hence H is
    negative;
    
      
    
      
    
    A2: ( 
    the_argument_of H) 
    = (( 
    the_antecedent_of H) 
    '&' ( 
    'not' ( 
    the_consequent_of H))) by 
    A1,
    Th3;
    
      hence (
    the_argument_of H) is 
    conjunctive;
    
      (
    the_right_argument_of ( 
    the_argument_of H)) 
    = ( 
    'not' ( 
    the_consequent_of H)) by 
    A2,
    Th4;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:36
    
    H is
    biconditional implies H is 
    conjunctive & ( 
    the_left_argument_of H) is 
    conditional & ( 
    the_right_argument_of H) is 
    conditional by 
    Th4;
    
    theorem :: 
    
    ZF_LANG1:37
    
    H is
    existential implies H is 
    negative & ( 
    the_argument_of H) is 
    universal & ( 
    the_scope_of ( 
    the_argument_of H)) is 
    negative
    
    proof
    
      assume H is
    existential;
    
      then
    
      
    
    A1: H 
    = ( 
    Ex (( 
    bound_in H),( 
    the_scope_of H))) by 
    ZF_LANG: 45;
    
      hence H is
    negative;
    
      
    
      
    
    A2: ( 
    the_argument_of H) 
    = ( 
    All (( 
    bound_in H),( 
    'not' ( 
    the_scope_of H)))) by 
    A1,
    Th3;
    
      hence (
    the_argument_of H) is 
    universal;
    
      (
    'not' ( 
    the_scope_of H)) 
    = ( 
    the_scope_of ( 
    the_argument_of H)) by 
    A2,
    Th8;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:38
    
     not (H is
    being_equality & (H is 
    being_membership or H is 
    negative or H is 
    conjunctive or H is 
    universal)) & not (H is
    being_membership & (H is 
    negative or H is 
    conjunctive or H is 
    universal)) & not (H is
    negative & (H is 
    conjunctive or H is 
    universal)) & not (H is
    conjunctive & H is 
    universal)
    
    proof
    
      (H
    . 1) 
    =  
    0 or (H 
    . 1) 
    = 1 or (H 
    . 1) 
    = 2 or (H 
    . 1) 
    = 3 or (H 
    . 1) 
    = 4 by 
    ZF_LANG: 23;
    
      hence thesis by
    ZF_LANG: 18,
    ZF_LANG: 19,
    ZF_LANG: 20,
    ZF_LANG: 21,
    ZF_LANG: 22;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:39
    
    
    
    
    
    Th39: F 
    is_subformula_of G implies ( 
    len F) 
    <= ( 
    len G) by 
    ZF_LANG:def 41,
    ZF_LANG: 62;
    
    theorem :: 
    
    ZF_LANG1:40
    
    
    
    
    
    Th40: F 
    is_proper_subformula_of G & G 
    is_subformula_of H or F 
    is_subformula_of G & G 
    is_proper_subformula_of H or F 
    is_subformula_of G & G 
    is_immediate_constituent_of H or F 
    is_immediate_constituent_of G & G 
    is_subformula_of H or F 
    is_proper_subformula_of G & G 
    is_immediate_constituent_of H or F 
    is_immediate_constituent_of G & G 
    is_proper_subformula_of H implies F 
    is_proper_subformula_of H 
    
    proof
    
      
    
      
    
    A1: F 
    is_immediate_constituent_of G implies F 
    is_proper_subformula_of G by 
    ZF_LANG: 61;
    
      
    
    A2: 
    
      now
    
        assume
    
        
    
    A3: F 
    is_proper_subformula_of G; 
    
        then
    
        
    
    A4: ( 
    len F) 
    < ( 
    len G) by 
    ZF_LANG: 62;
    
        assume
    
        
    
    A5: G 
    is_subformula_of H; 
    
        F
    is_subformula_of G by 
    A3;
    
        then
    
        
    
    A6: F 
    is_subformula_of H by 
    A5,
    ZF_LANG: 65;
    
        (
    len G) 
    <= ( 
    len H) by 
    A5,
    Th39;
    
        hence F
    is_proper_subformula_of H by 
    A4,
    A6;
    
      end;
    
      G
    is_immediate_constituent_of H implies G 
    is_proper_subformula_of H by 
    ZF_LANG: 61;
    
      hence thesis by
    A2,
    A1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:41
    
     not H
    is_immediate_constituent_of H 
    
    proof
    
      assume H
    is_immediate_constituent_of H; 
    
      then H
    is_proper_subformula_of H by 
    ZF_LANG: 61;
    
      hence contradiction;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:42
    
     not (G
    is_proper_subformula_of H & H 
    is_subformula_of G) 
    
    proof
    
      assume G
    is_proper_subformula_of H & H 
    is_subformula_of G; 
    
      then G
    is_proper_subformula_of G by 
    Th40;
    
      hence contradiction;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:43
    
     not (G
    is_proper_subformula_of H & H 
    is_proper_subformula_of G) 
    
    proof
    
      assume G
    is_proper_subformula_of H & H 
    is_proper_subformula_of G; 
    
      then G
    is_proper_subformula_of G by 
    ZF_LANG: 64;
    
      hence contradiction;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:44
    
     not (G
    is_subformula_of H & H 
    is_immediate_constituent_of G) 
    
    proof
    
      assume G
    is_subformula_of H & H 
    is_immediate_constituent_of G; 
    
      then G
    is_proper_subformula_of G by 
    Th40;
    
      hence contradiction;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:45
    
     not (G
    is_proper_subformula_of H & H 
    is_immediate_constituent_of G) 
    
    proof
    
      assume G
    is_proper_subformula_of H & H 
    is_immediate_constituent_of G; 
    
      then G
    is_proper_subformula_of G by 
    Th40;
    
      hence contradiction;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:46
    
    (
    'not' F) 
    is_subformula_of H implies F 
    is_proper_subformula_of H 
    
    proof
    
      F
    is_immediate_constituent_of ( 
    'not' F); 
    
      hence thesis by
    Th40;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:47
    
    (F
    '&' G) 
    is_subformula_of H implies F 
    is_proper_subformula_of H & G 
    is_proper_subformula_of H 
    
    proof
    
      F
    is_immediate_constituent_of (F 
    '&' G) & G 
    is_immediate_constituent_of (F 
    '&' G); 
    
      hence thesis by
    Th40;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:48
    
    (
    All (x,H)) 
    is_subformula_of F implies H 
    is_proper_subformula_of F 
    
    proof
    
      H
    is_immediate_constituent_of ( 
    All (x,H)); 
    
      hence thesis by
    Th40;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:49
    
    (F
    '&' ( 
    'not' G)) 
    is_proper_subformula_of (F 
    => G) & F 
    is_proper_subformula_of (F 
    => G) & ( 
    'not' G) 
    is_proper_subformula_of (F 
    => G) & G 
    is_proper_subformula_of (F 
    => G) 
    
    proof
    
      (F
    '&' ( 
    'not' G)) 
    is_immediate_constituent_of (F 
    => G); 
    
      hence
    
      
    
    A1: (F 
    '&' ( 
    'not' G)) 
    is_proper_subformula_of (F 
    => G) by 
    ZF_LANG: 61;
    
      F
    is_immediate_constituent_of (F 
    '&' ( 
    'not' G)) & ( 
    'not' G) 
    is_immediate_constituent_of (F 
    '&' ( 
    'not' G)); 
    
      hence
    
      
    
    A2: F 
    is_proper_subformula_of (F 
    => G) & ( 
    'not' G) 
    is_proper_subformula_of (F 
    => G) by 
    A1,
    Th40;
    
      G
    is_immediate_constituent_of ( 
    'not' G); 
    
      hence thesis by
    A2,
    Th40;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:50
    
    ((
    'not' F) 
    '&' ( 
    'not' G)) 
    is_proper_subformula_of (F 
    'or' G) & ( 
    'not' F) 
    is_proper_subformula_of (F 
    'or' G) & ( 
    'not' G) 
    is_proper_subformula_of (F 
    'or' G) & F 
    is_proper_subformula_of (F 
    'or' G) & G 
    is_proper_subformula_of (F 
    'or' G) 
    
    proof
    
      ((
    'not' F) 
    '&' ( 
    'not' G)) 
    is_immediate_constituent_of (F 
    'or' G); 
    
      hence
    
      
    
    A1: (( 
    'not' F) 
    '&' ( 
    'not' G)) 
    is_proper_subformula_of (F 
    'or' G) by 
    ZF_LANG: 61;
    
      (
    'not' F) 
    is_immediate_constituent_of (( 
    'not' F) 
    '&' ( 
    'not' G)) & ( 
    'not' G) 
    is_immediate_constituent_of (( 
    'not' F) 
    '&' ( 
    'not' G)); 
    
      hence
    
      
    
    A2: ( 
    'not' F) 
    is_proper_subformula_of (F 
    'or' G) & ( 
    'not' G) 
    is_proper_subformula_of (F 
    'or' G) by 
    A1,
    Th40;
    
      F
    is_immediate_constituent_of ( 
    'not' F) & G 
    is_immediate_constituent_of ( 
    'not' G); 
    
      hence thesis by
    A2,
    Th40;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:51
    
    (
    All (x,( 
    'not' H))) 
    is_proper_subformula_of ( 
    Ex (x,H)) & ( 
    'not' H) 
    is_proper_subformula_of ( 
    Ex (x,H)) 
    
    proof
    
      (
    All (x,( 
    'not' H))) 
    is_immediate_constituent_of ( 
    Ex (x,H)); 
    
      hence
    
      
    
    A1: ( 
    All (x,( 
    'not' H))) 
    is_proper_subformula_of ( 
    Ex (x,H)) by 
    ZF_LANG: 61;
    
      (
    'not' H) 
    is_immediate_constituent_of ( 
    All (x,( 
    'not' H))); 
    
      hence thesis by
    A1,
    Th40;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:52
    
    G
    is_subformula_of H iff G 
    in ( 
    Subformulae H) by 
    ZF_LANG: 78,
    ZF_LANG:def 42;
    
    theorem :: 
    
    ZF_LANG1:53
    
    G
    in ( 
    Subformulae H) implies ( 
    Subformulae G) 
    c= ( 
    Subformulae H) by 
    ZF_LANG: 78,
    ZF_LANG: 79;
    
    theorem :: 
    
    ZF_LANG1:54
    
    H
    in ( 
    Subformulae H) 
    
    proof
    
      H
    is_subformula_of H by 
    ZF_LANG: 59;
    
      hence thesis by
    ZF_LANG:def 42;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:55
    
    
    
    
    
    Th55: ( 
    Subformulae (F 
    => G)) 
    = ((( 
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), (F 
    '&' ( 
    'not' G)), (F 
    => G)}) 
    
    proof
    
      
    
      thus (
    Subformulae (F 
    => G)) 
    = (( 
    Subformulae (F 
    '&' ( 
    'not' G))) 
    \/  
    {(F
    => G)}) by 
    ZF_LANG: 82
    
      .= ((((
    Subformulae F) 
    \/ ( 
    Subformulae ( 
    'not' G))) 
    \/  
    {(F
    '&' ( 
    'not' G))}) 
    \/  
    {(F
    => G)}) by 
    ZF_LANG: 83
    
      .= ((((
    Subformulae F) 
    \/ (( 
    Subformulae G) 
    \/  
    {(
    'not' G)})) 
    \/  
    {(F
    '&' ( 
    'not' G))}) 
    \/  
    {(F
    => G)}) by 
    ZF_LANG: 82
    
      .= (((((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G)}) 
    \/  
    {(F
    '&' ( 
    'not' G))}) 
    \/  
    {(F
    => G)}) by 
    XBOOLE_1: 4
    
      .= ((((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G)}) 
    \/ ( 
    {(F
    '&' ( 
    'not' G))} 
    \/  
    {(F
    => G)})) by 
    XBOOLE_1: 4
    
      .= (((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/ ( 
    {(
    'not' G)} 
    \/ ( 
    {(F
    '&' ( 
    'not' G))} 
    \/  
    {(F
    => G)}))) by 
    XBOOLE_1: 4
    
      .= (((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/ ( 
    {(
    'not' G)} 
    \/  
    {(F
    '&' ( 
    'not' G)), (F 
    => G)})) by 
    ENUMSET1: 1
    
      .= (((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), (F 
    '&' ( 
    'not' G)), (F 
    => G)}) by 
    ENUMSET1: 2;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:56
    
    (
    Subformulae (F 
    'or' G)) 
    = ((( 
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), ( 
    'not' F), (( 
    'not' F) 
    '&' ( 
    'not' G)), (F 
    'or' G)}) 
    
    proof
    
      
    
      thus (
    Subformulae (F 
    'or' G)) 
    = (( 
    Subformulae (( 
    'not' F) 
    '&' ( 
    'not' G))) 
    \/  
    {(F
    'or' G)}) by 
    ZF_LANG: 82
    
      .= ((((
    Subformulae ( 
    'not' F)) 
    \/ ( 
    Subformulae ( 
    'not' G))) 
    \/  
    {((
    'not' F) 
    '&' ( 
    'not' G))}) 
    \/  
    {(F
    'or' G)}) by 
    ZF_LANG: 83
    
      .= ((((
    Subformulae ( 
    'not' F)) 
    \/ (( 
    Subformulae G) 
    \/  
    {(
    'not' G)})) 
    \/  
    {((
    'not' F) 
    '&' ( 
    'not' G))}) 
    \/  
    {(F
    'or' G)}) by 
    ZF_LANG: 82
    
      .= (((((
    Subformulae F) 
    \/  
    {(
    'not' F)}) 
    \/ (( 
    Subformulae G) 
    \/  
    {(
    'not' G)})) 
    \/  
    {((
    'not' F) 
    '&' ( 
    'not' G))}) 
    \/  
    {(F
    'or' G)}) by 
    ZF_LANG: 82
    
      .= ((((
    Subformulae F) 
    \/ ((( 
    Subformulae G) 
    \/  
    {(
    'not' G)}) 
    \/  
    {(
    'not' F)})) 
    \/  
    {((
    'not' F) 
    '&' ( 
    'not' G))}) 
    \/  
    {(F
    'or' G)}) by 
    XBOOLE_1: 4
    
      .= ((((
    Subformulae F) 
    \/ (( 
    Subformulae G) 
    \/ ( 
    {(
    'not' G)} 
    \/  
    {(
    'not' F)}))) 
    \/  
    {((
    'not' F) 
    '&' ( 
    'not' G))}) 
    \/  
    {(F
    'or' G)}) by 
    XBOOLE_1: 4
    
      .= ((((
    Subformulae F) 
    \/ (( 
    Subformulae G) 
    \/  
    {(
    'not' G), ( 
    'not' F)})) 
    \/  
    {((
    'not' F) 
    '&' ( 
    'not' G))}) 
    \/  
    {(F
    'or' G)}) by 
    ENUMSET1: 1
    
      .= (((((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), ( 
    'not' F)}) 
    \/  
    {((
    'not' F) 
    '&' ( 
    'not' G))}) 
    \/  
    {(F
    'or' G)}) by 
    XBOOLE_1: 4
    
      .= ((((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), ( 
    'not' F)}) 
    \/ ( 
    {((
    'not' F) 
    '&' ( 
    'not' G))} 
    \/  
    {(F
    'or' G)})) by 
    XBOOLE_1: 4
    
      .= ((((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), ( 
    'not' F)}) 
    \/  
    {((
    'not' F) 
    '&' ( 
    'not' G)), (F 
    'or' G)}) by 
    ENUMSET1: 1
    
      .= (((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/ ( 
    {(
    'not' G), ( 
    'not' F)} 
    \/  
    {((
    'not' F) 
    '&' ( 
    'not' G)), (F 
    'or' G)})) by 
    XBOOLE_1: 4
    
      .= (((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), ( 
    'not' F), (( 
    'not' F) 
    '&' ( 
    'not' G)), (F 
    'or' G)}) by 
    ENUMSET1: 5;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:57
    
    (
    Subformulae (F 
    <=> G)) 
    = ((( 
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), (F 
    '&' ( 
    'not' G)), (F 
    => G), ( 
    'not' F), (G 
    '&' ( 
    'not' F)), (G 
    => F), (F 
    <=> G)}) 
    
    proof
    
      
    
      thus (
    Subformulae (F 
    <=> G)) 
    = ((( 
    Subformulae (F 
    => G)) 
    \/ ( 
    Subformulae (G 
    => F))) 
    \/  
    {(F
    <=> G)}) by 
    ZF_LANG: 83
    
      .= (((((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), (F 
    '&' ( 
    'not' G)), (F 
    => G)}) 
    \/ ( 
    Subformulae (G 
    => F))) 
    \/  
    {(F
    <=> G)}) by 
    Th55
    
      .= (((((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), (F 
    '&' ( 
    'not' G)), (F 
    => G)}) 
    \/ ((( 
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' F), (G 
    '&' ( 
    'not' F)), (G 
    => F)})) 
    \/  
    {(F
    <=> G)}) by 
    Th55
    
      .= ((((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/ (((( 
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), (F 
    '&' ( 
    'not' G)), (F 
    => G)}) 
    \/  
    {(
    'not' F), (G 
    '&' ( 
    'not' F)), (G 
    => F)})) 
    \/  
    {(F
    <=> G)}) by 
    XBOOLE_1: 4
    
      .= ((((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/ ((( 
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/ ( 
    {(
    'not' G), (F 
    '&' ( 
    'not' G)), (F 
    => G)} 
    \/  
    {(
    'not' F), (G 
    '&' ( 
    'not' F)), (G 
    => F)}))) 
    \/  
    {(F
    <=> G)}) by 
    XBOOLE_1: 4
    
      .= (((((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/ (( 
    Subformulae F) 
    \/ ( 
    Subformulae G))) 
    \/ ( 
    {(
    'not' G), (F 
    '&' ( 
    'not' G)), (F 
    => G)} 
    \/  
    {(
    'not' F), (G 
    '&' ( 
    'not' F)), (G 
    => F)})) 
    \/  
    {(F
    <=> G)}) by 
    XBOOLE_1: 4
    
      .= ((((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), (F 
    '&' ( 
    'not' G)), (F 
    => G), ( 
    'not' F), (G 
    '&' ( 
    'not' F)), (G 
    => F)}) 
    \/  
    {(F
    <=> G)}) by 
    ENUMSET1: 13
    
      .= (((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/ ( 
    {(
    'not' G), (F 
    '&' ( 
    'not' G)), (F 
    => G), ( 
    'not' F), (G 
    '&' ( 
    'not' F)), (G 
    => F)} 
    \/  
    {(F
    <=> G)})) by 
    XBOOLE_1: 4
    
      .= (((
    Subformulae F) 
    \/ ( 
    Subformulae G)) 
    \/  
    {(
    'not' G), (F 
    '&' ( 
    'not' G)), (F 
    => G), ( 
    'not' F), (G 
    '&' ( 
    'not' F)), (G 
    => F), (F 
    <=> G)}) by 
    ENUMSET1: 21;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:58
    
    
    
    
    
    Th58: ( 
    Free (x 
    '=' y)) 
    =  
    {x, y}
    
    proof
    
      
    
      
    
    A1: ( 
    Var2 (x 
    '=' y)) 
    = y by 
    Th1;
    
      (x
    '=' y) is 
    being_equality & ( 
    Var1 (x 
    '=' y)) 
    = x by 
    Th1;
    
      hence thesis by
    A1,
    ZF_MODEL: 1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:59
    
    
    
    
    
    Th59: ( 
    Free (x 
    'in' y)) 
    =  
    {x, y}
    
    proof
    
      
    
      
    
    A1: ( 
    Var2 (x 
    'in' y)) 
    = y by 
    Th2;
    
      (x
    'in' y) is 
    being_membership & ( 
    Var1 (x 
    'in' y)) 
    = x by 
    Th2;
    
      hence thesis by
    A1,
    ZF_MODEL: 1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:60
    
    
    
    
    
    Th60: ( 
    Free ( 
    'not' p)) 
    = ( 
    Free p) 
    
    proof
    
      (
    'not' p) is 
    negative & ( 
    the_argument_of ( 
    'not' p)) 
    = p by 
    Th3;
    
      hence thesis by
    ZF_MODEL: 1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:61
    
    
    
    
    
    Th61: ( 
    Free (p 
    '&' q)) 
    = (( 
    Free p) 
    \/ ( 
    Free q)) 
    
    proof
    
      
    
      
    
    A1: ( 
    the_right_argument_of (p 
    '&' q)) 
    = q by 
    Th4;
    
      (p
    '&' q) is 
    conjunctive & ( 
    the_left_argument_of (p 
    '&' q)) 
    = p by 
    Th4;
    
      hence thesis by
    A1,
    ZF_MODEL: 1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:62
    
    
    
    
    
    Th62: ( 
    Free ( 
    All (x,p))) 
    = (( 
    Free p) 
    \  
    {x})
    
    proof
    
      
    
      
    
    A1: ( 
    the_scope_of ( 
    All (x,p))) 
    = p by 
    Th8;
    
      (
    All (x,p)) is 
    universal & ( 
    bound_in ( 
    All (x,p))) 
    = x by 
    Th8;
    
      hence thesis by
    A1,
    ZF_MODEL: 1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:63
    
    (
    Free (p 
    'or' q)) 
    = (( 
    Free p) 
    \/ ( 
    Free q)) 
    
    proof
    
      
    
      thus (
    Free (p 
    'or' q)) 
    = ( 
    Free (( 
    'not' p) 
    '&' ( 
    'not' q))) by 
    Th60
    
      .= ((
    Free ( 
    'not' p)) 
    \/ ( 
    Free ( 
    'not' q))) by 
    Th61
    
      .= ((
    Free p) 
    \/ ( 
    Free ( 
    'not' q))) by 
    Th60
    
      .= ((
    Free p) 
    \/ ( 
    Free q)) by 
    Th60;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:64
    
    
    
    
    
    Th64: ( 
    Free (p 
    => q)) 
    = (( 
    Free p) 
    \/ ( 
    Free q)) 
    
    proof
    
      
    
      thus (
    Free (p 
    => q)) 
    = ( 
    Free (p 
    '&' ( 
    'not' q))) by 
    Th60
    
      .= ((
    Free p) 
    \/ ( 
    Free ( 
    'not' q))) by 
    Th61
    
      .= ((
    Free p) 
    \/ ( 
    Free q)) by 
    Th60;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:65
    
    (
    Free (p 
    <=> q)) 
    = (( 
    Free p) 
    \/ ( 
    Free q)) 
    
    proof
    
      
    
      thus (
    Free (p 
    <=> q)) 
    = (( 
    Free (p 
    => q)) 
    \/ ( 
    Free (q 
    => p))) by 
    Th61
    
      .= (((
    Free p) 
    \/ ( 
    Free q)) 
    \/ ( 
    Free (q 
    => p))) by 
    Th64
    
      .= (((
    Free p) 
    \/ ( 
    Free q)) 
    \/ (( 
    Free q) 
    \/ ( 
    Free p))) by 
    Th64
    
      .= ((((
    Free p) 
    \/ ( 
    Free q)) 
    \/ ( 
    Free q)) 
    \/ ( 
    Free p)) by 
    XBOOLE_1: 4
    
      .= (((
    Free p) 
    \/ (( 
    Free q) 
    \/ ( 
    Free q))) 
    \/ ( 
    Free p)) by 
    XBOOLE_1: 4
    
      .= (((
    Free p) 
    \/ ( 
    Free p)) 
    \/ ( 
    Free q)) by 
    XBOOLE_1: 4
    
      .= ((
    Free p) 
    \/ ( 
    Free q)); 
    
    end;
    
    theorem :: 
    
    ZF_LANG1:66
    
    
    
    
    
    Th66: ( 
    Free ( 
    Ex (x,p))) 
    = (( 
    Free p) 
    \  
    {x})
    
    proof
    
      
    
      thus (
    Free ( 
    Ex (x,p))) 
    = ( 
    Free ( 
    All (x,( 
    'not' p)))) by 
    Th60
    
      .= ((
    Free ( 
    'not' p)) 
    \  
    {x}) by
    Th62
    
      .= ((
    Free p) 
    \  
    {x}) by
    Th60;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:67
    
    
    
    
    
    Th67: ( 
    Free ( 
    All (x,y,p))) 
    = (( 
    Free p) 
    \  
    {x, y})
    
    proof
    
      
    
      thus (
    Free ( 
    All (x,y,p))) 
    = (( 
    Free ( 
    All (y,p))) 
    \  
    {x}) by
    Th62
    
      .= (((
    Free p) 
    \  
    {y})
    \  
    {x}) by
    Th62
    
      .= ((
    Free p) 
    \ ( 
    {x}
    \/  
    {y})) by
    XBOOLE_1: 41
    
      .= ((
    Free p) 
    \  
    {x, y}) by
    ENUMSET1: 1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:68
    
    (
    Free ( 
    All (x,y,z,p))) 
    = (( 
    Free p) 
    \  
    {x, y, z})
    
    proof
    
      
    
      thus (
    Free ( 
    All (x,y,z,p))) 
    = (( 
    Free ( 
    All (y,z,p))) 
    \  
    {x}) by
    Th62
    
      .= (((
    Free p) 
    \  
    {y, z})
    \  
    {x}) by
    Th67
    
      .= ((
    Free p) 
    \ ( 
    {x}
    \/  
    {y, z})) by
    XBOOLE_1: 41
    
      .= ((
    Free p) 
    \  
    {x, y, z}) by
    ENUMSET1: 2;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:69
    
    
    
    
    
    Th69: ( 
    Free ( 
    Ex (x,y,p))) 
    = (( 
    Free p) 
    \  
    {x, y})
    
    proof
    
      
    
      thus (
    Free ( 
    Ex (x,y,p))) 
    = (( 
    Free ( 
    Ex (y,p))) 
    \  
    {x}) by
    Th66
    
      .= (((
    Free p) 
    \  
    {y})
    \  
    {x}) by
    Th66
    
      .= ((
    Free p) 
    \ ( 
    {x}
    \/  
    {y})) by
    XBOOLE_1: 41
    
      .= ((
    Free p) 
    \  
    {x, y}) by
    ENUMSET1: 1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:70
    
    (
    Free ( 
    Ex (x,y,z,p))) 
    = (( 
    Free p) 
    \  
    {x, y, z})
    
    proof
    
      
    
      thus (
    Free ( 
    Ex (x,y,z,p))) 
    = (( 
    Free ( 
    Ex (y,z,p))) 
    \  
    {x}) by
    Th66
    
      .= (((
    Free p) 
    \  
    {y, z})
    \  
    {x}) by
    Th69
    
      .= ((
    Free p) 
    \ ( 
    {x}
    \/  
    {y, z})) by
    XBOOLE_1: 41
    
      .= ((
    Free p) 
    \  
    {x, y, z}) by
    ENUMSET1: 2;
    
    end;
    
    scheme :: 
    
    ZF_LANG1:sch1
    
    ZFInduction { P[
    ZF-formula] } :
    
for H holds P[H] 
    
      provided
    
      
    
    A1: for x1, x2 holds P[(x1 
    '=' x2)] & P[(x1 
    'in' x2)] 
    
       and 
    
      
    
    A2: for H st P[H] holds P[( 
    'not' H)] 
    
       and 
    
      
    
    A3: for H1, H2 st P[H1] & P[H2] holds P[(H1 
    '&' H2)] 
    
       and 
    
      
    
    A4: for H, x st P[H] holds P[( 
    All (x,H))]; 
    
      
    
      
    
    A5: for H st H is 
    conjunctive & P[( 
    the_left_argument_of H)] & P[( 
    the_right_argument_of H)] holds P[H] 
    
      proof
    
        let H;
    
        assume H is
    conjunctive;
    
        then H
    = (( 
    the_left_argument_of H) 
    '&' ( 
    the_right_argument_of H)) by 
    ZF_LANG: 40;
    
        hence thesis by
    A3;
    
      end;
    
      
    
      
    
    A6: for H st H is 
    atomic holds P[H] 
    
      proof
    
        let H such that
    
        
    
    A7: H is 
    being_equality or H is 
    being_membership;
    
        
    
        
    
    A8: H is 
    being_membership implies thesis by 
    A1;
    
        H is
    being_equality implies thesis by 
    A1;
    
        hence thesis by
    A7,
    A8;
    
      end;
    
      
    
      
    
    A9: for H st H is 
    universal & P[( 
    the_scope_of H)] holds P[H] 
    
      proof
    
        let H;
    
        assume H is
    universal;
    
        then H
    = ( 
    All (( 
    bound_in H),( 
    the_scope_of H))) by 
    ZF_LANG: 44;
    
        hence thesis by
    A4;
    
      end;
    
      
    
      
    
    A10: for H st H is 
    negative & P[( 
    the_argument_of H)] holds P[H] 
    
      proof
    
        let H;
    
        assume H is
    negative;
    
        then H
    = ( 
    'not' ( 
    the_argument_of H)) by 
    ZF_LANG:def 30;
    
        hence thesis by
    A2;
    
      end;
    
      thus for H holds P[H] from
    ZF_LANG:sch 1(
    A6,
    A10,
    A5,
    A9);
    
    end;
    
    reserve M for non
    empty  
    set, 
    
m,m9 for
    Element of M, 
    
v,v9 for
    Function of 
    VAR , M; 
    
    definition
    
      let D,D1,D2 be non
    empty  
    set, f be 
    Function of D, D1; 
    
      assume
    
      
    
    A1: D1 
    c= D2; 
    
      :: 
    
    ZF_LANG1:def1
    
      func D2
    
    ! f -> 
    Function of D, D2 equals f; 
    
      correctness
    
      proof
    
        (
    rng f) 
    c= D1 by 
    RELAT_1:def 19;
    
        then
    
        
    
    A2: ( 
    rng f) 
    c= D2 by 
    A1;
    
        (
    dom f) 
    = D by 
    FUNCT_2:def 1;
    
        hence thesis by
    A2,
    FUNCT_2:def 1,
    RELSET_1: 4;
    
      end;
    
    end
    
    notation
    
      let E be non
    empty  
    set, f be 
    Function of 
    VAR , E, x be 
    Variable, e be 
    Element of E; 
    
      synonym f 
    
    / (x,e) for f 
    +* (x,e); 
    
    end
    
    definition
    
      let E be non
    empty  
    set, f be 
    Function of 
    VAR , E, x be 
    Variable, e be 
    Element of E; 
    
      :: original:
    /
    
      redefine
    
      func f
    
    / (x,e) -> 
    Function of 
    VAR , E ; 
    
      coherence
    
      proof
    
        (f
    +* (x,e)) is 
    Function of 
    VAR , E; 
    
        hence thesis;
    
      end;
    
    end
    
    theorem :: 
    
    ZF_LANG1:71
    
    
    
    
    
    Th71: (M,v) 
    |= ( 
    All (x,H)) iff for m holds (M,(v 
    / (x,m))) 
    |= H 
    
    proof
    
      thus (M,v)
    |= ( 
    All (x,H)) implies for m holds (M,(v 
    / (x,m))) 
    |= H 
    
      proof
    
        assume
    
        
    
    A1: (M,v) 
    |= ( 
    All (x,H)); 
    
        let m;
    
        for y st ((v
    / (x,m)) 
    . y) 
    <> (v 
    . y) holds x 
    = y by 
    FUNCT_7: 32;
    
        hence thesis by
    A1,
    ZF_MODEL: 16;
    
      end;
    
      assume
    
      
    
    A2: for m holds (M,(v 
    / (x,m))) 
    |= H; 
    
      now
    
        let v9;
    
        assume for y st (v9
    . y) 
    <> (v 
    . y) holds x 
    = y; 
    
        then v9
    = (v 
    / (x,(v9 
    . x))) by 
    FUNCT_7: 129;
    
        hence (M,v9)
    |= H by 
    A2;
    
      end;
    
      hence thesis by
    ZF_MODEL: 16;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:72
    
    
    
    
    
    Th72: (M,v) 
    |= ( 
    All (x,H)) iff (M,(v 
    / (x,m))) 
    |= ( 
    All (x,H)) 
    
    proof
    
      
    
      
    
    A1: for v, m st (M,v) 
    |= ( 
    All (x,H)) holds (M,(v 
    / (x,m))) 
    |= ( 
    All (x,H)) 
    
      proof
    
        let v, m such that
    
        
    
    A2: (M,v) 
    |= ( 
    All (x,H)); 
    
        now
    
          let m9;
    
          ((v
    / (x,m)) 
    / (x,m9)) 
    = (v 
    / (x,m9)) by 
    FUNCT_7: 34;
    
          hence (M,((v
    / (x,m)) 
    / (x,m9))) 
    |= H by 
    A2,
    Th71;
    
        end;
    
        hence thesis by
    Th71;
    
      end;
    
      ((v
    / (x,m)) 
    / (x,(v 
    . x))) 
    = (v 
    / (x,(v 
    . x))) by 
    FUNCT_7: 34
    
      .= v by
    FUNCT_7: 35;
    
      hence thesis by
    A1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:73
    
    
    
    
    
    Th73: (M,v) 
    |= ( 
    Ex (x,H)) iff ex m st (M,(v 
    / (x,m))) 
    |= H 
    
    proof
    
      thus (M,v)
    |= ( 
    Ex (x,H)) implies ex m st (M,(v 
    / (x,m))) 
    |= H 
    
      proof
    
        assume (M,v)
    |= ( 
    Ex (x,H)); 
    
        then
    
        consider v9 such that
    
        
    
    A1: (for y st (v9 
    . y) 
    <> (v 
    . y) holds x 
    = y) & (M,v9) 
    |= H by 
    ZF_MODEL: 20;
    
        take (v9
    . x); 
    
        thus thesis by
    A1,
    FUNCT_7: 129;
    
      end;
    
      given m such that
    
      
    
    A2: (M,(v 
    / (x,m))) 
    |= H; 
    
      now
    
        take v9 = (v
    / (x,m)); 
    
        thus for y st (v9
    . y) 
    <> (v 
    . y) holds x 
    = y by 
    FUNCT_7: 32;
    
        thus (M,v9)
    |= H by 
    A2;
    
      end;
    
      hence thesis by
    ZF_MODEL: 20;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:74
    
    (M,v)
    |= ( 
    Ex (x,H)) iff (M,(v 
    / (x,m))) 
    |= ( 
    Ex (x,H)) 
    
    proof
    
      
    
      
    
    A1: for v, m st (M,v) 
    |= ( 
    Ex (x,H)) holds (M,(v 
    / (x,m))) 
    |= ( 
    Ex (x,H)) 
    
      proof
    
        let v, m;
    
        assume (M,v)
    |= ( 
    Ex (x,H)); 
    
        then
    
        consider m9 such that
    
        
    
    A2: (M,(v 
    / (x,m9))) 
    |= H by 
    Th73;
    
        ((v
    / (x,m)) 
    / (x,m9)) 
    = (v 
    / (x,m9)) by 
    FUNCT_7: 34;
    
        hence thesis by
    A2,
    Th73;
    
      end;
    
      ((v
    / (x,m)) 
    / (x,(v 
    . x))) 
    = (v 
    / (x,(v 
    . x))) by 
    FUNCT_7: 34
    
      .= v by
    FUNCT_7: 35;
    
      hence thesis by
    A1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:75
    
    for v, v9 st for x st x
    in ( 
    Free H) holds (v9 
    . x) 
    = (v 
    . x) holds (M,v) 
    |= H implies (M,v9) 
    |= H 
    
    proof
    
      defpred
    
    Etha[
    ZF-formula] means for v, v9 st for x st x
    in ( 
    Free $1) holds (v9 
    . x) 
    = (v 
    . x) holds (M,v) 
    |= $1 implies (M,v9) 
    |= $1; 
    
      
    
      
    
    A1: for H1, H2 st 
    Etha[H1] &
    Etha[H2] holds
    Etha[(H1
    '&' H2)] 
    
      proof
    
        let H1, H2 such that
    
        
    
    A2: 
    Etha[H1] and
    
        
    
    A3: 
    Etha[H2];
    
        let v, v9;
    
        assume
    
        
    
    A4: for x st x 
    in ( 
    Free (H1 
    '&' H2)) holds (v9 
    . x) 
    = (v 
    . x); 
    
        
    
        
    
    A5: ( 
    Free (H1 
    '&' H2)) 
    = (( 
    Free H1) 
    \/ ( 
    Free H2)) by 
    Th61;
    
        
    
    A6: 
    
        now
    
          let x;
    
          assume x
    in ( 
    Free H2); 
    
          then x
    in ( 
    Free (H1 
    '&' H2)) by 
    A5,
    XBOOLE_0:def 3;
    
          hence (v9
    . x) 
    = (v 
    . x) by 
    A4;
    
        end;
    
        assume
    
        
    
    A7: (M,v) 
    |= (H1 
    '&' H2); 
    
        then (M,v)
    |= H2 by 
    ZF_MODEL: 15;
    
        then
    
        
    
    A8: (M,v9) 
    |= H2 by 
    A3,
    A6;
    
        
    
    A9: 
    
        now
    
          let x;
    
          assume x
    in ( 
    Free H1); 
    
          then x
    in ( 
    Free (H1 
    '&' H2)) by 
    A5,
    XBOOLE_0:def 3;
    
          hence (v9
    . x) 
    = (v 
    . x) by 
    A4;
    
        end;
    
        (M,v)
    |= H1 by 
    A7,
    ZF_MODEL: 15;
    
        then (M,v9)
    |= H1 by 
    A2,
    A9;
    
        hence thesis by
    A8,
    ZF_MODEL: 15;
    
      end;
    
      
    
      
    
    A10: for x1, x2 holds 
    Etha[(x1
    '=' x2)] & 
    Etha[(x1
    'in' x2)] 
    
      proof
    
        let x1, x2;
    
        
    
        
    
    A11: ( 
    Free (x1 
    '=' x2)) 
    =  
    {x1, x2} by
    Th58;
    
        thus
    Etha[(x1
    '=' x2)] 
    
        proof
    
          let v, v9;
    
          assume
    
          
    
    A12: for x st x 
    in ( 
    Free (x1 
    '=' x2)) holds (v9 
    . x) 
    = (v 
    . x); 
    
          x2
    in ( 
    Free (x1 
    '=' x2)) by 
    A11,
    TARSKI:def 2;
    
          then
    
          
    
    A13: (v9 
    . x2) 
    = (v 
    . x2) by 
    A12;
    
          assume (M,v)
    |= (x1 
    '=' x2); 
    
          then
    
          
    
    A14: (v 
    . x1) 
    = (v 
    . x2) by 
    ZF_MODEL: 12;
    
          x1
    in ( 
    Free (x1 
    '=' x2)) by 
    A11,
    TARSKI:def 2;
    
          then (v9
    . x1) 
    = (v 
    . x1) by 
    A12;
    
          hence thesis by
    A14,
    A13,
    ZF_MODEL: 12;
    
        end;
    
        let v, v9;
    
        assume
    
        
    
    A15: for x st x 
    in ( 
    Free (x1 
    'in' x2)) holds (v9 
    . x) 
    = (v 
    . x); 
    
        
    
        
    
    A16: ( 
    Free (x1 
    'in' x2)) 
    =  
    {x1, x2} by
    Th59;
    
        then x2
    in ( 
    Free (x1 
    'in' x2)) by 
    TARSKI:def 2;
    
        then
    
        
    
    A17: (v9 
    . x2) 
    = (v 
    . x2) by 
    A15;
    
        assume (M,v)
    |= (x1 
    'in' x2); 
    
        then
    
        
    
    A18: (v 
    . x1) 
    in (v 
    . x2) by 
    ZF_MODEL: 13;
    
        x1
    in ( 
    Free (x1 
    'in' x2)) by 
    A16,
    TARSKI:def 2;
    
        then (v9
    . x1) 
    = (v 
    . x1) by 
    A15;
    
        hence thesis by
    A18,
    A17,
    ZF_MODEL: 13;
    
      end;
    
      
    
      
    
    A19: for H, x st 
    Etha[H] holds
    Etha[(
    All (x,H))] 
    
      proof
    
        let H, x1 such that
    
        
    
    A20: 
    Etha[H];
    
        let v, v9;
    
        assume that
    
        
    
    A21: for x st x 
    in ( 
    Free ( 
    All (x1,H))) holds (v9 
    . x) 
    = (v 
    . x) and 
    
        
    
    A22: (M,v) 
    |= ( 
    All (x1,H)); 
    
        now
    
          let m;
    
          
    
          
    
    A23: ( 
    Free ( 
    All (x1,H))) 
    = (( 
    Free H) 
    \  
    {x1}) by
    Th62;
    
          
    
    A24: 
    
          now
    
            let x;
    
            assume x
    in ( 
    Free H); 
    
            then x
    in ( 
    Free ( 
    All (x1,H))) & not x 
    in  
    {x1} or x
    in  
    {x1} by
    A23,
    XBOOLE_0:def 5;
    
            then (v9
    . x) 
    = (v 
    . x) & x 
    <> x1 or x 
    = x1 by 
    A21,
    TARSKI:def 1;
    
            then ((v9
    / (x1,m)) 
    . x) 
    = (v 
    . x) & (v 
    . x) 
    = ((v 
    / (x1,m)) 
    . x) or ((v 
    / (x1,m)) 
    . x) 
    = m & ((v9 
    / (x1,m)) 
    . x) 
    = m by 
    FUNCT_7: 32,
    FUNCT_7: 128;
    
            hence ((v9
    / (x1,m)) 
    . x) 
    = ((v 
    / (x1,m)) 
    . x); 
    
          end;
    
          (M,(v
    / (x1,m))) 
    |= H by 
    A22,
    Th71;
    
          hence (M,(v9
    / (x1,m))) 
    |= H by 
    A20,
    A24;
    
        end;
    
        hence thesis by
    Th71;
    
      end;
    
      
    
      
    
    A25: for H st 
    Etha[H] holds
    Etha[(
    'not' H)] 
    
      proof
    
        let H such that
    
        
    
    A26: 
    Etha[H];
    
        let v, v9;
    
        assume
    
        
    
    A27: for x st x 
    in ( 
    Free ( 
    'not' H)) holds (v9 
    . x) 
    = (v 
    . x); 
    
        
    
    A28: 
    
        now
    
          let x;
    
          assume x
    in ( 
    Free H); 
    
          then x
    in ( 
    Free ( 
    'not' H)) by 
    Th60;
    
          hence (v
    . x) 
    = (v9 
    . x) by 
    A27;
    
        end;
    
        assume (M,v)
    |= ( 
    'not' H); 
    
        then not (M,v)
    |= H by 
    ZF_MODEL: 14;
    
        then not (M,v9)
    |= H by 
    A26,
    A28;
    
        hence thesis by
    ZF_MODEL: 14;
    
      end;
    
      for H holds
    Etha[H] from
    ZFInduction(
    A10,
    A25,
    A1,
    A19);
    
      hence thesis;
    
    end;
    
    registration
    
      let H;
    
      cluster ( 
    Free H) -> 
    finite;
    
      coherence
    
      proof
    
        defpred
    
    P[
    ZF-formula] means (
    Free $1) is 
    finite;
    
        
    
        
    
    A1: 
    P[p] &
    P[q] implies
    P[(p
    '&' q)] 
    
        proof
    
          (
    Free (p 
    '&' q)) 
    = (( 
    Free p) 
    \/ ( 
    Free q)) by 
    Th61;
    
          hence thesis;
    
        end;
    
        
    
        
    
    A2: 
    P[p] implies
    P[(
    All (x,p))] 
    
        proof
    
          (
    Free ( 
    All (x,p))) 
    = (( 
    Free p) 
    \  
    {x}) by
    Th62;
    
          hence thesis;
    
        end;
    
        
    
        
    
    A3: 
    P[(x
    '=' y)] & 
    P[(x
    'in' y)] 
    
        proof
    
          (
    Free (x 
    '=' y)) 
    =  
    {x, y} by
    Th58;
    
          hence thesis by
    Th59;
    
        end;
    
        
    
        
    
    A4: 
    P[p] implies
    P[(
    'not' p)] by 
    Th60;
    
        
    P[p] from
    ZFInduction(
    A3,
    A4,
    A1,
    A2);
    
        hence thesis;
    
      end;
    
    end
    
    reserve i,j for
    Element of 
    NAT ; 
    
    theorem :: 
    
    ZF_LANG1:76
    
    (
    x. i) 
    = ( 
    x. j) implies i 
    = j; 
    
    theorem :: 
    
    ZF_LANG1:77
    
    ex i st x
    = ( 
    x. i) 
    
    proof
    
      x
    in  
    VAR ; 
    
      then
    
      consider j such that
    
      
    
    A1: x 
    = j and 
    
      
    
    A2: 5 
    <= j; 
    
      consider i be
    Nat such that 
    
      
    
    A3: j 
    = (5 
    + i) by 
    A2,
    NAT_1: 10;
    
      reconsider i as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
      take i;
    
      thus thesis by
    A1,
    A3;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:78
    
    
    
    
    
    Th78: (M,v) 
    |= (x 
    '=' x) 
    
    proof
    
      (v
    . x) 
    = (v 
    . x); 
    
      hence thesis by
    ZF_MODEL: 12;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:79
    
    
    
    
    
    Th79: M 
    |= (x 
    '=' x) by 
    Th78;
    
    theorem :: 
    
    ZF_LANG1:80
    
    
    
    
    
    Th80: not (M,v) 
    |= (x 
    'in' x) 
    
    proof
    
       not (v
    . x) 
    in (v 
    . x); 
    
      hence thesis by
    ZF_MODEL: 13;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:81
    
    
    
    
    
    Th81: not M 
    |= (x 
    'in' x) & M 
    |= ( 
    'not' (x 
    'in' x)) 
    
    proof
    
      set v = the
    Function of 
    VAR , M; 
    
       not (M,v)
    |= (x 
    'in' x) by 
    Th80;
    
      hence not M
    |= (x 
    'in' x); 
    
      let v;
    
       not (M,v)
    |= (x 
    'in' x) by 
    Th80;
    
      hence thesis by
    ZF_MODEL: 14;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:82
    
    M
    |= (x 
    '=' y) iff x 
    = y or ex a st 
    {a}
    = M 
    
    proof
    
      thus M
    |= (x 
    '=' y) implies x 
    = y or ex a st 
    {a}
    = M 
    
      proof
    
        set v = the
    Function of 
    VAR , M; 
    
        set m = the
    Element of M; 
    
        assume that
    
        
    
    A1: for v holds (M,v) 
    |= (x 
    '=' y) and 
    
        
    
    A2: x 
    <> y; 
    
        reconsider a = m as
    set;
    
        take a;
    
        thus
    {a}
    c= M by 
    ZFMISC_1: 31;
    
        let b be
    object;
    
        assume that
    
        
    
    A3: b 
    in M and 
    
        
    
    A4: not b 
    in  
    {a};
    
        reconsider b as
    Element of M by 
    A3;
    
        (M,((v
    / (x,m)) 
    / (y,b))) 
    |= (x 
    '=' y) by 
    A1;
    
        then
    
        
    
    A5: (((v 
    / (x,m)) 
    / (y,b)) 
    . x) 
    = (((v 
    / (x,m)) 
    / (y,b)) 
    . y) by 
    ZF_MODEL: 12;
    
        
    
        
    
    A6: ((v 
    / (x,m)) 
    . x) 
    = m & (((v 
    / (x,m)) 
    / (y,b)) 
    . y) 
    = b by 
    FUNCT_7: 128;
    
        (((v
    / (x,m)) 
    / (y,b)) 
    . x) 
    = ((v 
    / (x,m)) 
    . x) by 
    A2,
    FUNCT_7: 32;
    
        hence contradiction by
    A4,
    A5,
    A6,
    TARSKI:def 1;
    
      end;
    
      now
    
        given a such that
    
        
    
    A7: 
    {a}
    = M; 
    
        let v;
    
        (v
    . x) 
    = a & (v 
    . y) 
    = a by 
    A7,
    TARSKI:def 1;
    
        hence (M,v)
    |= (x 
    '=' y) by 
    ZF_MODEL: 12;
    
      end;
    
      hence thesis by
    Th79;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:83
    
    M
    |= ( 
    'not' (x 
    'in' y)) iff x 
    = y or for X st X 
    in M holds X 
    misses M 
    
    proof
    
      thus M
    |= ( 
    'not' (x 
    'in' y)) implies x 
    = y or for X st X 
    in M holds X 
    misses M 
    
      proof
    
        set v = the
    Function of 
    VAR , M; 
    
        assume that
    
        
    
    A1: for v holds (M,v) 
    |= ( 
    'not' (x 
    'in' y)) and 
    
        
    
    A2: x 
    <> y; 
    
        let X;
    
        set a = the
    Element of (X 
    /\ M); 
    
        assume X
    in M; 
    
        then
    
        reconsider m = X as
    Element of M; 
    
        assume
    
        
    
    A3: (X 
    /\ M) 
    <>  
    {} ; 
    
        then
    
        reconsider a as
    Element of M by 
    XBOOLE_0:def 4;
    
        (M,((v
    / (x,a)) 
    / (y,m))) 
    |= ( 
    'not' (x 
    'in' y)) by 
    A1;
    
        then not (M,((v
    / (x,a)) 
    / (y,m))) 
    |= (x 
    'in' y) by 
    ZF_MODEL: 14;
    
        then
    
        
    
    A4: not (((v 
    / (x,a)) 
    / (y,m)) 
    . x) 
    in (((v 
    / (x,a)) 
    / (y,m)) 
    . y) by 
    ZF_MODEL: 13;
    
        
    
        
    
    A5: ((v 
    / (x,a)) 
    . x) 
    = a & (((v 
    / (x,a)) 
    / (y,m)) 
    . y) 
    = m by 
    FUNCT_7: 128;
    
        (((v
    / (x,a)) 
    / (y,m)) 
    . x) 
    = ((v 
    / (x,a)) 
    . x) by 
    A2,
    FUNCT_7: 32;
    
        hence contradiction by
    A3,
    A4,
    A5,
    XBOOLE_0:def 4;
    
      end;
    
      now
    
        assume
    
        
    
    A6: for X st X 
    in M holds X 
    misses M; 
    
        let v;
    
        (v
    . y) 
    misses M by 
    A6;
    
        then not (v
    . x) 
    in (v 
    . y) by 
    XBOOLE_0: 3;
    
        then not (M,v)
    |= (x 
    'in' y) by 
    ZF_MODEL: 13;
    
        hence (M,v)
    |= ( 
    'not' (x 
    'in' y)) by 
    ZF_MODEL: 14;
    
      end;
    
      hence thesis by
    Th81;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:84
    
    H is
    being_equality implies ((M,v) 
    |= H iff (v 
    . ( 
    Var1 H)) 
    = (v 
    . ( 
    Var2 H))) 
    
    proof
    
      assume H is
    being_equality;
    
      then H
    = (( 
    Var1 H) 
    '=' ( 
    Var2 H)) by 
    ZF_LANG: 36;
    
      hence thesis by
    ZF_MODEL: 12;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:85
    
    H is
    being_membership implies ((M,v) 
    |= H iff (v 
    . ( 
    Var1 H)) 
    in (v 
    . ( 
    Var2 H))) 
    
    proof
    
      assume H is
    being_membership;
    
      then H
    = (( 
    Var1 H) 
    'in' ( 
    Var2 H)) by 
    ZF_LANG: 37;
    
      hence thesis by
    ZF_MODEL: 13;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:86
    
    H is
    negative implies ((M,v) 
    |= H iff not (M,v) 
    |= ( 
    the_argument_of H)) 
    
    proof
    
      assume H is
    negative;
    
      then H
    = ( 
    'not' ( 
    the_argument_of H)) by 
    ZF_LANG:def 30;
    
      hence thesis by
    ZF_MODEL: 14;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:87
    
    H is
    conjunctive implies ((M,v) 
    |= H iff (M,v) 
    |= ( 
    the_left_argument_of H) & (M,v) 
    |= ( 
    the_right_argument_of H)) 
    
    proof
    
      assume H is
    conjunctive;
    
      then H
    = (( 
    the_left_argument_of H) 
    '&' ( 
    the_right_argument_of H)) by 
    ZF_LANG: 40;
    
      hence thesis by
    ZF_MODEL: 15;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:88
    
    H is
    universal implies ((M,v) 
    |= H iff for m holds (M,(v 
    / (( 
    bound_in H),m))) 
    |= ( 
    the_scope_of H)) 
    
    proof
    
      assume H is
    universal;
    
      then H
    = ( 
    All (( 
    bound_in H),( 
    the_scope_of H))) by 
    ZF_LANG: 44;
    
      hence thesis by
    Th71;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:89
    
    H is
    disjunctive implies ((M,v) 
    |= H iff (M,v) 
    |= ( 
    the_left_argument_of H) or (M,v) 
    |= ( 
    the_right_argument_of H)) 
    
    proof
    
      assume H is
    disjunctive;
    
      then H
    = (( 
    the_left_argument_of H) 
    'or' ( 
    the_right_argument_of H)) by 
    ZF_LANG: 41;
    
      hence thesis by
    ZF_MODEL: 17;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:90
    
    H is
    conditional implies ((M,v) 
    |= H iff ((M,v) 
    |= ( 
    the_antecedent_of H) implies (M,v) 
    |= ( 
    the_consequent_of H))) 
    
    proof
    
      assume H is
    conditional;
    
      then H
    = (( 
    the_antecedent_of H) 
    => ( 
    the_consequent_of H)) by 
    ZF_LANG: 47;
    
      hence thesis by
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:91
    
    H is
    biconditional implies ((M,v) 
    |= H iff ((M,v) 
    |= ( 
    the_left_side_of H) iff (M,v) 
    |= ( 
    the_right_side_of H))) 
    
    proof
    
      assume H is
    biconditional;
    
      then H
    = (( 
    the_left_side_of H) 
    <=> ( 
    the_right_side_of H)) by 
    ZF_LANG: 49;
    
      hence thesis by
    ZF_MODEL: 19;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:92
    
    H is
    existential implies ((M,v) 
    |= H iff ex m st (M,(v 
    / (( 
    bound_in H),m))) 
    |= ( 
    the_scope_of H)) 
    
    proof
    
      assume H is
    existential;
    
      then H
    = ( 
    Ex (( 
    bound_in H),( 
    the_scope_of H))) by 
    ZF_LANG: 45;
    
      hence thesis by
    Th73;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:93
    
    M
    |= ( 
    Ex (x,H)) iff for v holds ex m st (M,(v 
    / (x,m))) 
    |= H 
    
    proof
    
      thus M
    |= ( 
    Ex (x,H)) implies for v holds ex m st (M,(v 
    / (x,m))) 
    |= H by 
    Th73;
    
      assume
    
      
    
    A1: for v holds ex m st (M,(v 
    / (x,m))) 
    |= H; 
    
      let v;
    
      ex m st (M,(v
    / (x,m))) 
    |= H by 
    A1;
    
      hence thesis by
    Th73;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:94
    
    
    
    
    
    Th94: M 
    |= H implies M 
    |= ( 
    Ex (x,H)) 
    
    proof
    
      assume
    
      
    
    A1: M 
    |= H; 
    
      let v;
    
      (M,(v
    / (x,(v 
    . x)))) 
    |= H by 
    A1;
    
      hence thesis by
    Th73;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:95
    
    
    
    
    
    Th95: M 
    |= H iff M 
    |= ( 
    All (x,y,H)) 
    
    proof
    
      M
    |= H iff M 
    |= ( 
    All (y,H)) by 
    ZF_MODEL: 23;
    
      hence thesis by
    ZF_MODEL: 23;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:96
    
    
    
    
    
    Th96: M 
    |= H implies M 
    |= ( 
    Ex (x,y,H)) 
    
    proof
    
      M
    |= H implies M 
    |= ( 
    Ex (y,H)) by 
    Th94;
    
      hence thesis by
    Th94;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:97
    
    M
    |= H iff M 
    |= ( 
    All (x,y,z,H)) 
    
    proof
    
      M
    |= H iff M 
    |= ( 
    All (y,z,H)) by 
    Th95;
    
      hence thesis by
    ZF_MODEL: 23;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:98
    
    M
    |= H implies M 
    |= ( 
    Ex (x,y,z,H)) 
    
    proof
    
      M
    |= H implies M 
    |= ( 
    Ex (y,z,H)) by 
    Th96;
    
      hence thesis by
    Th94;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:99
    
    (M,v)
    |= ((p 
    <=> q) 
    => (p 
    => q)) & M 
    |= ((p 
    <=> q) 
    => (p 
    => q)) 
    
    proof
    
      
    
    A1: 
    
      now
    
        let v;
    
        (M,v)
    |= (p 
    <=> q) implies (M,v) 
    |= (p 
    => q) by 
    ZF_MODEL: 15;
    
        hence (M,v)
    |= ((p 
    <=> q) 
    => (p 
    => q)) by 
    ZF_MODEL: 18;
    
      end;
    
      hence (M,v)
    |= ((p 
    <=> q) 
    => (p 
    => q)); 
    
      let v;
    
      thus thesis by
    A1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:100
    
    (M,v)
    |= ((p 
    <=> q) 
    => (q 
    => p)) & M 
    |= ((p 
    <=> q) 
    => (q 
    => p)) 
    
    proof
    
      
    
    A1: 
    
      now
    
        let v;
    
        (M,v)
    |= (p 
    <=> q) implies (M,v) 
    |= (q 
    => p) by 
    ZF_MODEL: 15;
    
        hence (M,v)
    |= ((p 
    <=> q) 
    => (q 
    => p)) by 
    ZF_MODEL: 18;
    
      end;
    
      hence (M,v)
    |= ((p 
    <=> q) 
    => (q 
    => p)); 
    
      let v;
    
      thus thesis by
    A1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:101
    
    
    
    
    
    Th101: M 
    |= ((p 
    => q) 
    => ((q 
    => r) 
    => (p 
    => r))) 
    
    proof
    
      let v;
    
      now
    
        assume
    
        
    
    A1: (M,v) 
    |= (p 
    => q); 
    
        now
    
          assume
    
          
    
    A2: (M,v) 
    |= (q 
    => r); 
    
          now
    
            assume (M,v)
    |= p; 
    
            then (M,v)
    |= q by 
    A1,
    ZF_MODEL: 18;
    
            hence (M,v)
    |= r by 
    A2,
    ZF_MODEL: 18;
    
          end;
    
          hence (M,v)
    |= (p 
    => r) by 
    ZF_MODEL: 18;
    
        end;
    
        hence (M,v)
    |= ((q 
    => r) 
    => (p 
    => r)) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis by
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:102
    
    
    
    
    
    Th102: (M,v) 
    |= (p 
    => q) & (M,v) 
    |= (q 
    => r) implies (M,v) 
    |= (p 
    => r) 
    
    proof
    
      assume that
    
      
    
    A1: (M,v) 
    |= (p 
    => q) and 
    
      
    
    A2: (M,v) 
    |= (q 
    => r); 
    
      M
    |= ((p 
    => q) 
    => ((q 
    => r) 
    => (p 
    => r))) by 
    Th101;
    
      then (M,v)
    |= ((p 
    => q) 
    => ((q 
    => r) 
    => (p 
    => r))); 
    
      then (M,v)
    |= ((q 
    => r) 
    => (p 
    => r)) by 
    A1,
    ZF_MODEL: 18;
    
      hence thesis by
    A2,
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:103
    
    M
    |= (p 
    => q) & M 
    |= (q 
    => r) implies M 
    |= (p 
    => r) 
    
    proof
    
      assume
    
      
    
    A1: M 
    |= (p 
    => q) & M 
    |= (q 
    => r); 
    
      let v;
    
      (M,v)
    |= (p 
    => q) & (M,v) 
    |= (q 
    => r) by 
    A1;
    
      hence thesis by
    Th102;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:104
    
    (M,v)
    |= (((p 
    => q) 
    '&' (q 
    => r)) 
    => (p 
    => r)) & M 
    |= (((p 
    => q) 
    '&' (q 
    => r)) 
    => (p 
    => r)) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume (M,v)
    |= ((p 
    => q) 
    '&' (q 
    => r)); 
    
          then (M,v)
    |= (p 
    => q) & (M,v) 
    |= (q 
    => r) by 
    ZF_MODEL: 15;
    
          hence (M,v)
    |= (p 
    => r) by 
    Th102;
    
        end;
    
        hence (M,v)
    |= (((p 
    => q) 
    '&' (q 
    => r)) 
    => (p 
    => r)) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:105
    
    (M,v)
    |= (p 
    => (q 
    => p)) & M 
    |= (p 
    => (q 
    => p)) 
    
    proof
    
      now
    
        let v;
    
        (M,v)
    |= p implies (M,v) 
    |= (q 
    => p) by 
    ZF_MODEL: 18;
    
        hence (M,v)
    |= (p 
    => (q 
    => p)) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:106
    
    (M,v)
    |= ((p 
    => (q 
    => r)) 
    => ((p 
    => q) 
    => (p 
    => r))) & M 
    |= ((p 
    => (q 
    => r)) 
    => ((p 
    => q) 
    => (p 
    => r))) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume
    
          
    
    A1: (M,v) 
    |= (p 
    => (q 
    => r)); 
    
          now
    
            assume (M,v)
    |= (p 
    => q); 
    
            then
    
            
    
    A2: (M,v) 
    |= p implies (M,v) 
    |= (q 
    => r) & (M,v) 
    |= q by 
    A1,
    ZF_MODEL: 18;
    
            (M,v)
    |= q & (M,v) 
    |= (q 
    => r) implies (M,v) 
    |= r by 
    ZF_MODEL: 18;
    
            hence (M,v)
    |= (p 
    => r) by 
    A2,
    ZF_MODEL: 18;
    
          end;
    
          hence (M,v)
    |= ((p 
    => q) 
    => (p 
    => r)) by 
    ZF_MODEL: 18;
    
        end;
    
        hence (M,v)
    |= ((p 
    => (q 
    => r)) 
    => ((p 
    => q) 
    => (p 
    => r))) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:107
    
    (M,v)
    |= ((p 
    '&' q) 
    => p) & M 
    |= ((p 
    '&' q) 
    => p) 
    
    proof
    
      now
    
        let v;
    
        (M,v)
    |= (p 
    '&' q) implies (M,v) 
    |= p by 
    ZF_MODEL: 15;
    
        hence (M,v)
    |= ((p 
    '&' q) 
    => p) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:108
    
    (M,v)
    |= ((p 
    '&' q) 
    => q) & M 
    |= ((p 
    '&' q) 
    => q) 
    
    proof
    
      now
    
        let v;
    
        (M,v)
    |= (p 
    '&' q) implies (M,v) 
    |= q by 
    ZF_MODEL: 15;
    
        hence (M,v)
    |= ((p 
    '&' q) 
    => q) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:109
    
    (M,v)
    |= ((p 
    '&' q) 
    => (q 
    '&' p)) & M 
    |= ((p 
    '&' q) 
    => (q 
    '&' p)) 
    
    proof
    
      now
    
        let v;
    
        
    
        
    
    A1: (M,v) 
    |= p & (M,v) 
    |= q implies (M,v) 
    |= (q 
    '&' p) by 
    ZF_MODEL: 15;
    
        (M,v)
    |= (p 
    '&' q) implies (M,v) 
    |= p & (M,v) 
    |= q by 
    ZF_MODEL: 15;
    
        hence (M,v)
    |= ((p 
    '&' q) 
    => (q 
    '&' p)) by 
    A1,
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:110
    
    (M,v)
    |= (p 
    => (p 
    '&' p)) & M 
    |= (p 
    => (p 
    '&' p)) 
    
    proof
    
      now
    
        let v;
    
        (M,v)
    |= p implies (M,v) 
    |= (p 
    '&' p) by 
    ZF_MODEL: 15;
    
        hence (M,v)
    |= (p 
    => (p 
    '&' p)) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:111
    
    (M,v)
    |= ((p 
    => q) 
    => ((p 
    => r) 
    => (p 
    => (q 
    '&' r)))) & M 
    |= ((p 
    => q) 
    => ((p 
    => r) 
    => (p 
    => (q 
    '&' r)))) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume
    
          
    
    A1: (M,v) 
    |= (p 
    => q); 
    
          now
    
            assume (M,v)
    |= (p 
    => r); 
    
            then (M,v)
    |= p implies (M,v) 
    |= r & (M,v) 
    |= q by 
    A1,
    ZF_MODEL: 18;
    
            then (M,v)
    |= p implies (M,v) 
    |= (q 
    '&' r) by 
    ZF_MODEL: 15;
    
            hence (M,v)
    |= (p 
    => (q 
    '&' r)) by 
    ZF_MODEL: 18;
    
          end;
    
          hence (M,v)
    |= ((p 
    => r) 
    => (p 
    => (q 
    '&' r))) by 
    ZF_MODEL: 18;
    
        end;
    
        hence (M,v)
    |= ((p 
    => q) 
    => ((p 
    => r) 
    => (p 
    => (q 
    '&' r)))) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:112
    
    
    
    
    
    Th112: (M,v) 
    |= (p 
    => (p 
    'or' q)) & M 
    |= (p 
    => (p 
    'or' q)) 
    
    proof
    
      now
    
        let v;
    
        (M,v)
    |= p implies (M,v) 
    |= (p 
    'or' q) by 
    ZF_MODEL: 17;
    
        hence (M,v)
    |= (p 
    => (p 
    'or' q)) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:113
    
    (M,v)
    |= (q 
    => (p 
    'or' q)) & M 
    |= (q 
    => (p 
    'or' q)) 
    
    proof
    
      now
    
        let v;
    
        (M,v)
    |= q implies (M,v) 
    |= (p 
    'or' q) by 
    ZF_MODEL: 17;
    
        hence (M,v)
    |= (q 
    => (p 
    'or' q)) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:114
    
    (M,v)
    |= ((p 
    'or' q) 
    => (q 
    'or' p)) & M 
    |= ((p 
    'or' q) 
    => (q 
    'or' p)) 
    
    proof
    
      now
    
        let v;
    
        
    
        
    
    A1: (M,v) 
    |= p or (M,v) 
    |= q implies (M,v) 
    |= (q 
    'or' p) by 
    ZF_MODEL: 17;
    
        (M,v)
    |= (p 
    'or' q) implies (M,v) 
    |= p or (M,v) 
    |= q by 
    ZF_MODEL: 17;
    
        hence (M,v)
    |= ((p 
    'or' q) 
    => (q 
    'or' p)) by 
    A1,
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:115
    
    (M,v)
    |= (p 
    => (p 
    'or' p)) & M 
    |= (p 
    => (p 
    'or' p)) by 
    Th112;
    
    theorem :: 
    
    ZF_LANG1:116
    
    (M,v)
    |= ((p 
    => r) 
    => ((q 
    => r) 
    => ((p 
    'or' q) 
    => r))) & M 
    |= ((p 
    => r) 
    => ((q 
    => r) 
    => ((p 
    'or' q) 
    => r))) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume
    
          
    
    A1: (M,v) 
    |= (p 
    => r); 
    
          now
    
            assume (M,v)
    |= (q 
    => r); 
    
            then (M,v)
    |= p or (M,v) 
    |= q implies (M,v) 
    |= r by 
    A1,
    ZF_MODEL: 18;
    
            then (M,v)
    |= (p 
    'or' q) implies (M,v) 
    |= r by 
    ZF_MODEL: 17;
    
            hence (M,v)
    |= ((p 
    'or' q) 
    => r) by 
    ZF_MODEL: 18;
    
          end;
    
          hence (M,v)
    |= ((q 
    => r) 
    => ((p 
    'or' q) 
    => r)) by 
    ZF_MODEL: 18;
    
        end;
    
        hence (M,v)
    |= ((p 
    => r) 
    => ((q 
    => r) 
    => ((p 
    'or' q) 
    => r))) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:117
    
    (M,v)
    |= (((p 
    => r) 
    '&' (q 
    => r)) 
    => ((p 
    'or' q) 
    => r)) & M 
    |= (((p 
    => r) 
    '&' (q 
    => r)) 
    => ((p 
    'or' q) 
    => r)) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume (M,v)
    |= ((p 
    => r) 
    '&' (q 
    => r)); 
    
          then (M,v)
    |= (p 
    => r) & (M,v) 
    |= (q 
    => r) by 
    ZF_MODEL: 15;
    
          then (M,v)
    |= p or (M,v) 
    |= q implies (M,v) 
    |= r by 
    ZF_MODEL: 18;
    
          then (M,v)
    |= (p 
    'or' q) implies (M,v) 
    |= r by 
    ZF_MODEL: 17;
    
          hence (M,v)
    |= ((p 
    'or' q) 
    => r) by 
    ZF_MODEL: 18;
    
        end;
    
        hence (M,v)
    |= (((p 
    => r) 
    '&' (q 
    => r)) 
    => ((p 
    'or' q) 
    => r)) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:118
    
    (M,v)
    |= ((p 
    => ( 
    'not' q)) 
    => (q 
    => ( 
    'not' p))) & M 
    |= ((p 
    => ( 
    'not' q)) 
    => (q 
    => ( 
    'not' p))) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume (M,v)
    |= (p 
    => ( 
    'not' q)); 
    
          then (M,v)
    |= p implies (M,v) 
    |= ( 
    'not' q) by 
    ZF_MODEL: 18;
    
          then (M,v)
    |= q implies (M,v) 
    |= ( 
    'not' p) by 
    ZF_MODEL: 14;
    
          hence (M,v)
    |= (q 
    => ( 
    'not' p)) by 
    ZF_MODEL: 18;
    
        end;
    
        hence (M,v)
    |= ((p 
    => ( 
    'not' q)) 
    => (q 
    => ( 
    'not' p))) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:119
    
    (M,v)
    |= (( 
    'not' p) 
    => (p 
    => q)) & M 
    |= (( 
    'not' p) 
    => (p 
    => q)) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume (M,v)
    |= ( 
    'not' p); 
    
          then not (M,v)
    |= p by 
    ZF_MODEL: 14;
    
          hence (M,v)
    |= (p 
    => q) by 
    ZF_MODEL: 18;
    
        end;
    
        hence (M,v)
    |= (( 
    'not' p) 
    => (p 
    => q)) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:120
    
    (M,v)
    |= (((p 
    => q) 
    '&' (p 
    => ( 
    'not' q))) 
    => ( 
    'not' p)) & M 
    |= (((p 
    => q) 
    '&' (p 
    => ( 
    'not' q))) 
    => ( 
    'not' p)) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume (M,v)
    |= ((p 
    => q) 
    '&' (p 
    => ( 
    'not' q))); 
    
          then (M,v)
    |= (p 
    => q) & (M,v) 
    |= (p 
    => ( 
    'not' q)) by 
    ZF_MODEL: 15;
    
          then (M,v)
    |= p implies (M,v) 
    |= q & (M,v) 
    |= ( 
    'not' q) by 
    ZF_MODEL: 18;
    
          hence (M,v)
    |= ( 
    'not' p) by 
    ZF_MODEL: 14;
    
        end;
    
        hence (M,v)
    |= (((p 
    => q) 
    '&' (p 
    => ( 
    'not' q))) 
    => ( 
    'not' p)) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:121
    
    M
    |= (p 
    => q) & M 
    |= p implies M 
    |= q 
    
    proof
    
      assume
    
      
    
    A1: M 
    |= (p 
    => q) & M 
    |= p; 
    
      let v;
    
      (M,v)
    |= (p 
    => q) & (M,v) 
    |= p by 
    A1;
    
      hence thesis by
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:122
    
    (M,v)
    |= (( 
    'not' (p 
    '&' q)) 
    => (( 
    'not' p) 
    'or' ( 
    'not' q))) & M 
    |= (( 
    'not' (p 
    '&' q)) 
    => (( 
    'not' p) 
    'or' ( 
    'not' q))) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume (M,v)
    |= ( 
    'not' (p 
    '&' q)); 
    
          then not (M,v)
    |= (p 
    '&' q) by 
    ZF_MODEL: 14;
    
          then not (M,v)
    |= p or not (M,v) 
    |= q by 
    ZF_MODEL: 15;
    
          then (M,v)
    |= ( 
    'not' p) or (M,v) 
    |= ( 
    'not' q) by 
    ZF_MODEL: 14;
    
          hence (M,v)
    |= (( 
    'not' p) 
    'or' ( 
    'not' q)) by 
    ZF_MODEL: 17;
    
        end;
    
        hence (M,v)
    |= (( 
    'not' (p 
    '&' q)) 
    => (( 
    'not' p) 
    'or' ( 
    'not' q))) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:123
    
    (M,v)
    |= ((( 
    'not' p) 
    'or' ( 
    'not' q)) 
    => ( 
    'not' (p 
    '&' q))) & M 
    |= ((( 
    'not' p) 
    'or' ( 
    'not' q)) 
    => ( 
    'not' (p 
    '&' q))) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume (M,v)
    |= (( 
    'not' p) 
    'or' ( 
    'not' q)); 
    
          then (M,v)
    |= ( 
    'not' p) or (M,v) 
    |= ( 
    'not' q) by 
    ZF_MODEL: 17;
    
          then not (M,v)
    |= p or not (M,v) 
    |= q by 
    ZF_MODEL: 14;
    
          then not (M,v)
    |= (p 
    '&' q) by 
    ZF_MODEL: 15;
    
          hence (M,v)
    |= ( 
    'not' (p 
    '&' q)) by 
    ZF_MODEL: 14;
    
        end;
    
        hence (M,v)
    |= ((( 
    'not' p) 
    'or' ( 
    'not' q)) 
    => ( 
    'not' (p 
    '&' q))) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:124
    
    (M,v)
    |= (( 
    'not' (p 
    'or' q)) 
    => (( 
    'not' p) 
    '&' ( 
    'not' q))) & M 
    |= (( 
    'not' (p 
    'or' q)) 
    => (( 
    'not' p) 
    '&' ( 
    'not' q))) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume (M,v)
    |= ( 
    'not' (p 
    'or' q)); 
    
          then
    
          
    
    A1: not (M,v) 
    |= (p 
    'or' q) by 
    ZF_MODEL: 14;
    
          then not (M,v)
    |= q by 
    ZF_MODEL: 17;
    
          then
    
          
    
    A2: (M,v) 
    |= ( 
    'not' q) by 
    ZF_MODEL: 14;
    
           not (M,v)
    |= p by 
    A1,
    ZF_MODEL: 17;
    
          then (M,v)
    |= ( 
    'not' p) by 
    ZF_MODEL: 14;
    
          hence (M,v)
    |= (( 
    'not' p) 
    '&' ( 
    'not' q)) by 
    A2,
    ZF_MODEL: 15;
    
        end;
    
        hence (M,v)
    |= (( 
    'not' (p 
    'or' q)) 
    => (( 
    'not' p) 
    '&' ( 
    'not' q))) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:125
    
    (M,v)
    |= ((( 
    'not' p) 
    '&' ( 
    'not' q)) 
    => ( 
    'not' (p 
    'or' q))) & M 
    |= ((( 
    'not' p) 
    '&' ( 
    'not' q)) 
    => ( 
    'not' (p 
    'or' q))) 
    
    proof
    
      now
    
        let v;
    
        now
    
          assume
    
          
    
    A1: (M,v) 
    |= (( 
    'not' p) 
    '&' ( 
    'not' q)); 
    
          then (M,v)
    |= ( 
    'not' q) by 
    ZF_MODEL: 15;
    
          then
    
          
    
    A2: not (M,v) 
    |= q by 
    ZF_MODEL: 14;
    
          (M,v)
    |= ( 
    'not' p) by 
    A1,
    ZF_MODEL: 15;
    
          then not (M,v)
    |= p by 
    ZF_MODEL: 14;
    
          then not (M,v)
    |= (p 
    'or' q) by 
    A2,
    ZF_MODEL: 17;
    
          hence (M,v)
    |= ( 
    'not' (p 
    'or' q)) by 
    ZF_MODEL: 14;
    
        end;
    
        hence (M,v)
    |= ((( 
    'not' p) 
    '&' ( 
    'not' q)) 
    => ( 
    'not' (p 
    'or' q))) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:126
    
    M
    |= (( 
    All (x,H)) 
    => H) 
    
    proof
    
      let v;
    
      (M,v)
    |= ( 
    All (x,H)) implies (M,(v 
    / (x,(v 
    . x)))) 
    |= H by 
    Th71;
    
      then (M,v)
    |= ( 
    All (x,H)) implies (M,v) 
    |= H by 
    FUNCT_7: 35;
    
      hence thesis by
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:127
    
    M
    |= (H 
    => ( 
    Ex (x,H))) 
    
    proof
    
      let v;
    
      (M,(v
    / (x,(v 
    . x)))) 
    |= H implies (M,v) 
    |= ( 
    Ex (x,H)) by 
    Th73;
    
      then (M,v)
    |= H implies (M,v) 
    |= ( 
    Ex (x,H)) by 
    FUNCT_7: 35;
    
      hence thesis by
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:128
    
    
    
    
    
    Th128: not x 
    in ( 
    Free H1) implies M 
    |= (( 
    All (x,(H1 
    => H2))) 
    => (H1 
    => ( 
    All (x,H2)))) 
    
    proof
    
      assume
    
      
    
    A1: not x 
    in ( 
    Free H1); 
    
      let v;
    
      now
    
        assume
    
        
    
    A2: (M,v) 
    |= ( 
    All (x,(H1 
    => H2))); 
    
        now
    
          assume
    
          
    
    A3: (M,v) 
    |= H1; 
    
          now
    
            let m;
    
            (M,v)
    |= ( 
    All (x,H1)) by 
    A1,
    A3,
    ZFMODEL1: 10;
    
            then
    
            
    
    A4: (M,(v 
    / (x,m))) 
    |= H1 by 
    Th71;
    
            (M,(v
    / (x,m))) 
    |= (H1 
    => H2) by 
    A2,
    Th71;
    
            hence (M,(v
    / (x,m))) 
    |= H2 by 
    A4,
    ZF_MODEL: 18;
    
          end;
    
          hence (M,v)
    |= ( 
    All (x,H2)) by 
    Th71;
    
        end;
    
        hence (M,v)
    |= (H1 
    => ( 
    All (x,H2))) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis by
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:129
    
     not x
    in ( 
    Free H1) & M 
    |= (H1 
    => H2) implies M 
    |= (H1 
    => ( 
    All (x,H2))) 
    
    proof
    
      assume that
    
      
    
    A1: not x 
    in ( 
    Free H1) and 
    
      
    
    A2: for v holds (M,v) 
    |= (H1 
    => H2); 
    
      let v;
    
      M
    |= (( 
    All (x,(H1 
    => H2))) 
    => (H1 
    => ( 
    All (x,H2)))) by 
    A1,
    Th128;
    
      then
    
      
    
    A3: (M,v) 
    |= (( 
    All (x,(H1 
    => H2))) 
    => (H1 
    => ( 
    All (x,H2)))); 
    
      for m holds (M,(v
    / (x,m))) 
    |= (H1 
    => H2) by 
    A2;
    
      then (M,v)
    |= ( 
    All (x,(H1 
    => H2))) by 
    Th71;
    
      hence thesis by
    A3,
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:130
    
    
    
    
    
    Th130: not x 
    in ( 
    Free H2) implies M 
    |= (( 
    All (x,(H1 
    => H2))) 
    => (( 
    Ex (x,H1)) 
    => H2)) 
    
    proof
    
      assume
    
      
    
    A1: not x 
    in ( 
    Free H2); 
    
      let v;
    
      now
    
        assume
    
        
    
    A2: (M,v) 
    |= ( 
    All (x,(H1 
    => H2))); 
    
        now
    
          assume (M,v)
    |= ( 
    Ex (x,H1)); 
    
          then
    
          consider m such that
    
          
    
    A3: (M,(v 
    / (x,m))) 
    |= H1 by 
    Th73;
    
          (M,(v
    / (x,m))) 
    |= (H1 
    => H2) by 
    A2,
    Th71;
    
          then (M,(v
    / (x,m))) 
    |= H2 by 
    A3,
    ZF_MODEL: 18;
    
          then (M,(v
    / (x,m))) 
    |= ( 
    All (x,H2)) by 
    A1,
    ZFMODEL1: 10;
    
          then (M,v)
    |= ( 
    All (x,H2)) by 
    Th72;
    
          then (M,(v
    / (x,(v 
    . x)))) 
    |= H2 by 
    Th71;
    
          hence (M,v)
    |= H2 by 
    FUNCT_7: 35;
    
        end;
    
        hence (M,v)
    |= (( 
    Ex (x,H1)) 
    => H2) by 
    ZF_MODEL: 18;
    
      end;
    
      hence thesis by
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:131
    
     not x
    in ( 
    Free H2) & M 
    |= (H1 
    => H2) implies M 
    |= (( 
    Ex (x,H1)) 
    => H2) 
    
    proof
    
      assume that
    
      
    
    A1: not x 
    in ( 
    Free H2) and 
    
      
    
    A2: for v holds (M,v) 
    |= (H1 
    => H2); 
    
      let v;
    
      M
    |= (( 
    All (x,(H1 
    => H2))) 
    => (( 
    Ex (x,H1)) 
    => H2)) by 
    A1,
    Th130;
    
      then
    
      
    
    A3: (M,v) 
    |= (( 
    All (x,(H1 
    => H2))) 
    => (( 
    Ex (x,H1)) 
    => H2)); 
    
      for m holds (M,(v
    / (x,m))) 
    |= (H1 
    => H2) by 
    A2;
    
      then (M,v)
    |= ( 
    All (x,(H1 
    => H2))) by 
    Th71;
    
      hence thesis by
    A3,
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:132
    
    M
    |= (H1 
    => ( 
    All (x,H2))) implies M 
    |= (H1 
    => H2) 
    
    proof
    
      assume
    
      
    
    A1: for v holds (M,v) 
    |= (H1 
    => ( 
    All (x,H2))); 
    
      let v;
    
      
    
      
    
    A2: (M,v) 
    |= (H1 
    => ( 
    All (x,H2))) by 
    A1;
    
      now
    
        assume (M,v)
    |= H1; 
    
        then (M,v)
    |= ( 
    All (x,H2)) by 
    A2,
    ZF_MODEL: 18;
    
        then (M,(v
    / (x,(v 
    . x)))) 
    |= H2 by 
    Th71;
    
        hence (M,v)
    |= H2 by 
    FUNCT_7: 35;
    
      end;
    
      hence thesis by
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:133
    
    M
    |= (( 
    Ex (x,H1)) 
    => H2) implies M 
    |= (H1 
    => H2) 
    
    proof
    
      assume
    
      
    
    A1: for v holds (M,v) 
    |= (( 
    Ex (x,H1)) 
    => H2); 
    
      let v;
    
      
    
      
    
    A2: (M,v) 
    |= (( 
    Ex (x,H1)) 
    => H2) by 
    A1;
    
      now
    
        assume (M,v)
    |= H1; 
    
        then (M,(v
    / (x,(v 
    . x)))) 
    |= H1 by 
    FUNCT_7: 35;
    
        then (M,v)
    |= ( 
    Ex (x,H1)) by 
    Th73;
    
        hence (M,v)
    |= H2 by 
    A2,
    ZF_MODEL: 18;
    
      end;
    
      hence thesis by
    ZF_MODEL: 18;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:134
    
    
    WFF  
    c= ( 
    bool  
    [:
    NAT , 
    NAT :]) 
    
    proof
    
      let a be
    object;
    
      assume a
    in  
    WFF ; 
    
      then
    
      reconsider H = a as
    ZF-formula by 
    ZF_LANG: 4;
    
      H
    c=  
    [:
    NAT , 
    NAT :]; 
    
      hence thesis;
    
    end;
    
    definition
    
      let H;
    
      :: 
    
    ZF_LANG1:def2
    
      func
    
    variables_in H -> 
    set equals (( 
    rng H) 
    \  
    {
    0 , 1, 2, 3, 4}); 
    
      correctness ;
    
    end
    
    theorem :: 
    
    ZF_LANG1:135
    
    
    
    
    
    Th135: x 
    <>  
    0 & x 
    <> 1 & x 
    <> 2 & x 
    <> 3 & x 
    <> 4 
    
    proof
    
      x
    in  
    VAR ; 
    
      then
    
      
    
    A1: ex i st x 
    = i & 5 
    <= i; 
    
      assume x
    =  
    0 or x 
    = 1 or x 
    = 2 or x 
    = 3 or x 
    = 4; 
    
      hence contradiction by
    A1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:136
    
    
    
    
    
    Th136: not x 
    in  
    {
    0 , 1, 2, 3, 4} 
    
    proof
    
      assume x
    in  
    {
    0 , 1, 2, 3, 4}; 
    
      then x
    in ( 
    {
    0 , 1} 
    \/  
    {2, 3, 4}) by
    ENUMSET1: 8;
    
      then x
    in  
    {
    0 , 1} or x 
    in  
    {2, 3, 4} by
    XBOOLE_0:def 3;
    
      then
    
      
    
    A1: x 
    =  
    0 or x 
    = 1 or x 
    = 2 or x 
    = 3 or x 
    = 4 by 
    ENUMSET1:def 1,
    TARSKI:def 2;
    
      x
    in  
    VAR ; 
    
      then ex i st x
    = i & 5 
    <= i; 
    
      hence contradiction by
    A1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:137
    
    
    
    
    
    Th137: a 
    in ( 
    variables_in H) implies a 
    <>  
    0 & a 
    <> 1 & a 
    <> 2 & a 
    <> 3 & a 
    <> 4 
    
    proof
    
      assume a
    in ( 
    variables_in H); 
    
      then not a
    in  
    {
    0 , 1, 2, 3, 4} by 
    XBOOLE_0:def 5;
    
      then not a
    in ( 
    {
    0 , 1} 
    \/  
    {2, 3, 4}) by
    ENUMSET1: 8;
    
      then ( not a
    in  
    {
    0 , 1}) & not a 
    in  
    {2, 3, 4} by
    XBOOLE_0:def 3;
    
      hence thesis by
    ENUMSET1:def 1,
    TARSKI:def 2;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:138
    
    
    
    
    
    Th138: ( 
    variables_in (x 
    '=' y)) 
    =  
    {x, y}
    
    proof
    
      
    
      
    
    A1: ( 
    rng (x 
    '=' y)) 
    = (( 
    rng ( 
    <*
    0 *> 
    ^  
    <*x*>))
    \/ ( 
    rng  
    <*y*>)) by
    FINSEQ_1: 31
    
      .= (((
    rng  
    <*
    0 *>) 
    \/ ( 
    rng  
    <*x*>))
    \/ ( 
    rng  
    <*y*>)) by
    FINSEQ_1: 31
    
      .= ((
    {
    0 } 
    \/ ( 
    rng  
    <*x*>))
    \/ ( 
    rng  
    <*y*>)) by
    FINSEQ_1: 39
    
      .= ((
    {
    0 } 
    \/  
    {x})
    \/ ( 
    rng  
    <*y*>)) by
    FINSEQ_1: 39
    
      .= ((
    {
    0 } 
    \/  
    {x})
    \/  
    {y}) by
    FINSEQ_1: 39
    
      .= (
    {
    0 } 
    \/ ( 
    {x}
    \/  
    {y})) by
    XBOOLE_1: 4
    
      .= (
    {
    0 } 
    \/  
    {x, y}) by
    ENUMSET1: 1;
    
      thus (
    variables_in (x 
    '=' y)) 
    c=  
    {x, y}
    
      proof
    
        let a be
    object;
    
        assume
    
        
    
    A2: a 
    in ( 
    variables_in (x 
    '=' y)); 
    
        then a
    <>  
    0 by 
    Th137;
    
        then not a
    in  
    {
    0 } by 
    TARSKI:def 1;
    
        hence thesis by
    A1,
    A2,
    XBOOLE_0:def 3;
    
      end;
    
      let a be
    object;
    
      assume
    
      
    
    A3: a 
    in  
    {x, y};
    
      then a
    = x or a 
    = y by 
    TARSKI:def 2;
    
      then
    
      
    
    A4: not a 
    in  
    {
    0 , 1, 2, 3, 4} by 
    Th136;
    
      a
    in ( 
    {
    0 } 
    \/  
    {x, y}) by
    A3,
    XBOOLE_0:def 3;
    
      hence thesis by
    A1,
    A4,
    XBOOLE_0:def 5;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:139
    
    
    
    
    
    Th139: ( 
    variables_in (x 
    'in' y)) 
    =  
    {x, y}
    
    proof
    
      
    
      
    
    A1: ( 
    rng (x 
    'in' y)) 
    = (( 
    rng ( 
    <*1*>
    ^  
    <*x*>))
    \/ ( 
    rng  
    <*y*>)) by
    FINSEQ_1: 31
    
      .= (((
    rng  
    <*1*>)
    \/ ( 
    rng  
    <*x*>))
    \/ ( 
    rng  
    <*y*>)) by
    FINSEQ_1: 31
    
      .= ((
    {1}
    \/ ( 
    rng  
    <*x*>))
    \/ ( 
    rng  
    <*y*>)) by
    FINSEQ_1: 39
    
      .= ((
    {1}
    \/  
    {x})
    \/ ( 
    rng  
    <*y*>)) by
    FINSEQ_1: 39
    
      .= ((
    {1}
    \/  
    {x})
    \/  
    {y}) by
    FINSEQ_1: 39
    
      .= (
    {1}
    \/ ( 
    {x}
    \/  
    {y})) by
    XBOOLE_1: 4
    
      .= (
    {1}
    \/  
    {x, y}) by
    ENUMSET1: 1;
    
      thus (
    variables_in (x 
    'in' y)) 
    c=  
    {x, y}
    
      proof
    
        let a be
    object;
    
        assume
    
        
    
    A2: a 
    in ( 
    variables_in (x 
    'in' y)); 
    
        then a
    <> 1 by 
    Th137;
    
        then not a
    in  
    {1} by
    TARSKI:def 1;
    
        hence thesis by
    A1,
    A2,
    XBOOLE_0:def 3;
    
      end;
    
      let a be
    object;
    
      assume
    
      
    
    A3: a 
    in  
    {x, y};
    
      then a
    = x or a 
    = y by 
    TARSKI:def 2;
    
      then
    
      
    
    A4: not a 
    in  
    {
    0 , 1, 2, 3, 4} by 
    Th136;
    
      a
    in ( 
    {1}
    \/  
    {x, y}) by
    A3,
    XBOOLE_0:def 3;
    
      hence thesis by
    A1,
    A4,
    XBOOLE_0:def 5;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:140
    
    
    
    
    
    Th140: ( 
    variables_in ( 
    'not' H)) 
    = ( 
    variables_in H) 
    
    proof
    
      
    
      
    
    A1: ( 
    rng ( 
    'not' H)) 
    = (( 
    rng  
    <*2*>)
    \/ ( 
    rng H)) by 
    FINSEQ_1: 31
    
      .= (
    {2}
    \/ ( 
    rng H)) by 
    FINSEQ_1: 39;
    
      thus (
    variables_in ( 
    'not' H)) 
    c= ( 
    variables_in H) 
    
      proof
    
        let a be
    object;
    
        assume
    
        
    
    A2: a 
    in ( 
    variables_in ( 
    'not' H)); 
    
        then a
    <> 2 by 
    Th137;
    
        then not a
    in  
    {2} by
    TARSKI:def 1;
    
        then
    
        
    
    A3: a 
    in ( 
    rng H) by 
    A1,
    A2,
    XBOOLE_0:def 3;
    
         not a
    in  
    {
    0 , 1, 2, 3, 4} by 
    A2,
    XBOOLE_0:def 5;
    
        hence thesis by
    A3,
    XBOOLE_0:def 5;
    
      end;
    
      thus thesis by
    A1,
    XBOOLE_1: 7,
    XBOOLE_1: 33;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:141
    
    
    
    
    
    Th141: ( 
    variables_in (H1 
    '&' H2)) 
    = (( 
    variables_in H1) 
    \/ ( 
    variables_in H2)) 
    
    proof
    
      
    
      
    
    A1: (( 
    variables_in H1) 
    \/ ( 
    variables_in H2)) 
    = ((( 
    rng H1) 
    \/ ( 
    rng H2)) 
    \  
    {
    0 , 1, 2, 3, 4}) by 
    XBOOLE_1: 42;
    
      
    
      
    
    A2: ( 
    rng (H1 
    '&' H2)) 
    = (( 
    rng ( 
    <*3*>
    ^ H1)) 
    \/ ( 
    rng H2)) by 
    FINSEQ_1: 31
    
      .= (((
    rng  
    <*3*>)
    \/ ( 
    rng H1)) 
    \/ ( 
    rng H2)) by 
    FINSEQ_1: 31
    
      .= ((
    {3}
    \/ ( 
    rng H1)) 
    \/ ( 
    rng H2)) by 
    FINSEQ_1: 39
    
      .= (
    {3}
    \/ (( 
    rng H1) 
    \/ ( 
    rng H2))) by 
    XBOOLE_1: 4;
    
      thus (
    variables_in (H1 
    '&' H2)) 
    c= (( 
    variables_in H1) 
    \/ ( 
    variables_in H2)) 
    
      proof
    
        let a be
    object;
    
        assume
    
        
    
    A3: a 
    in ( 
    variables_in (H1 
    '&' H2)); 
    
        then a
    <> 3 by 
    Th137;
    
        then not a
    in  
    {3} by
    TARSKI:def 1;
    
        then
    
        
    
    A4: a 
    in (( 
    rng H1) 
    \/ ( 
    rng H2)) by 
    A2,
    A3,
    XBOOLE_0:def 3;
    
         not a
    in  
    {
    0 , 1, 2, 3, 4} by 
    A3,
    XBOOLE_0:def 5;
    
        hence thesis by
    A1,
    A4,
    XBOOLE_0:def 5;
    
      end;
    
      thus thesis by
    A2,
    A1,
    XBOOLE_1: 7,
    XBOOLE_1: 33;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:142
    
    
    
    
    
    Th142: ( 
    variables_in ( 
    All (x,H))) 
    = (( 
    variables_in H) 
    \/  
    {x})
    
    proof
    
      
    
      
    
    A1: ( 
    rng ( 
    All (x,H))) 
    = (( 
    rng ( 
    <*4*>
    ^  
    <*x*>))
    \/ ( 
    rng H)) by 
    FINSEQ_1: 31
    
      .= (((
    rng  
    <*4*>)
    \/ ( 
    rng  
    <*x*>))
    \/ ( 
    rng H)) by 
    FINSEQ_1: 31
    
      .= ((
    {4}
    \/ ( 
    rng  
    <*x*>))
    \/ ( 
    rng H)) by 
    FINSEQ_1: 39
    
      .= ((
    {4}
    \/  
    {x})
    \/ ( 
    rng H)) by 
    FINSEQ_1: 39
    
      .= (
    {4}
    \/ ( 
    {x}
    \/ ( 
    rng H))) by 
    XBOOLE_1: 4;
    
      thus (
    variables_in ( 
    All (x,H))) 
    c= (( 
    variables_in H) 
    \/  
    {x})
    
      proof
    
        let a be
    object;
    
        assume
    
        
    
    A2: a 
    in ( 
    variables_in ( 
    All (x,H))); 
    
        then a
    <> 4 by 
    Th137;
    
        then not a
    in  
    {4} by
    TARSKI:def 1;
    
        then a
    in ( 
    {x}
    \/ ( 
    rng H)) by 
    A1,
    A2,
    XBOOLE_0:def 3;
    
        then
    
        
    
    A3: a 
    in  
    {x} or a
    in ( 
    rng H) by 
    XBOOLE_0:def 3;
    
         not a
    in  
    {
    0 , 1, 2, 3, 4} by 
    A2,
    XBOOLE_0:def 5;
    
        then a
    in ( 
    rng H) implies a 
    in ( 
    variables_in H) by 
    XBOOLE_0:def 5;
    
        hence thesis by
    A3,
    XBOOLE_0:def 3;
    
      end;
    
      let a be
    object;
    
      assume a
    in (( 
    variables_in H) 
    \/  
    {x});
    
      then
    
      
    
    A4: a 
    in ( 
    variables_in H) or a 
    in  
    {x} by
    XBOOLE_0:def 3;
    
      then a
    in ( 
    {x}
    \/ ( 
    rng H)) by 
    XBOOLE_0:def 3;
    
      then
    
      
    
    A5: a 
    in ( 
    {4}
    \/ ( 
    {x}
    \/ ( 
    rng H))) by 
    XBOOLE_0:def 3;
    
      a
    in ( 
    rng H) & not a 
    in  
    {
    0 , 1, 2, 3, 4} or a 
    in  
    {x} & x
    = a by 
    A4,
    TARSKI:def 1,
    XBOOLE_0:def 5;
    
      then not a
    in  
    {
    0 , 1, 2, 3, 4} by 
    Th136;
    
      hence thesis by
    A1,
    A5,
    XBOOLE_0:def 5;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:143
    
    (
    variables_in (H1 
    'or' H2)) 
    = (( 
    variables_in H1) 
    \/ ( 
    variables_in H2)) 
    
    proof
    
      
    
      thus (
    variables_in (H1 
    'or' H2)) 
    = ( 
    variables_in (( 
    'not' H1) 
    '&' ( 
    'not' H2))) by 
    Th140
    
      .= ((
    variables_in ( 
    'not' H1)) 
    \/ ( 
    variables_in ( 
    'not' H2))) by 
    Th141
    
      .= ((
    variables_in H1) 
    \/ ( 
    variables_in ( 
    'not' H2))) by 
    Th140
    
      .= ((
    variables_in H1) 
    \/ ( 
    variables_in H2)) by 
    Th140;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:144
    
    
    
    
    
    Th144: ( 
    variables_in (H1 
    => H2)) 
    = (( 
    variables_in H1) 
    \/ ( 
    variables_in H2)) 
    
    proof
    
      
    
      thus (
    variables_in (H1 
    => H2)) 
    = ( 
    variables_in (H1 
    '&' ( 
    'not' H2))) by 
    Th140
    
      .= ((
    variables_in H1) 
    \/ ( 
    variables_in ( 
    'not' H2))) by 
    Th141
    
      .= ((
    variables_in H1) 
    \/ ( 
    variables_in H2)) by 
    Th140;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:145
    
    (
    variables_in (H1 
    <=> H2)) 
    = (( 
    variables_in H1) 
    \/ ( 
    variables_in H2)) 
    
    proof
    
      
    
      thus (
    variables_in (H1 
    <=> H2)) 
    = (( 
    variables_in (H1 
    => H2)) 
    \/ ( 
    variables_in (H2 
    => H1))) by 
    Th141
    
      .= (((
    variables_in H1) 
    \/ ( 
    variables_in H2)) 
    \/ ( 
    variables_in (H2 
    => H1))) by 
    Th144
    
      .= (((
    variables_in H1) 
    \/ ( 
    variables_in H2)) 
    \/ (( 
    variables_in H1) 
    \/ ( 
    variables_in H2))) by 
    Th144
    
      .= ((
    variables_in H1) 
    \/ ( 
    variables_in H2)); 
    
    end;
    
    theorem :: 
    
    ZF_LANG1:146
    
    
    
    
    
    Th146: ( 
    variables_in ( 
    Ex (x,H))) 
    = (( 
    variables_in H) 
    \/  
    {x})
    
    proof
    
      
    
      thus (
    variables_in ( 
    Ex (x,H))) 
    = ( 
    variables_in ( 
    All (x,( 
    'not' H)))) by 
    Th140
    
      .= ((
    variables_in ( 
    'not' H)) 
    \/  
    {x}) by
    Th142
    
      .= ((
    variables_in H) 
    \/  
    {x}) by
    Th140;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:147
    
    
    
    
    
    Th147: ( 
    variables_in ( 
    All (x,y,H))) 
    = (( 
    variables_in H) 
    \/  
    {x, y})
    
    proof
    
      
    
      thus (
    variables_in ( 
    All (x,y,H))) 
    = (( 
    variables_in ( 
    All (y,H))) 
    \/  
    {x}) by
    Th142
    
      .= (((
    variables_in H) 
    \/  
    {y})
    \/  
    {x}) by
    Th142
    
      .= ((
    variables_in H) 
    \/ ( 
    {y}
    \/  
    {x})) by
    XBOOLE_1: 4
    
      .= ((
    variables_in H) 
    \/  
    {x, y}) by
    ENUMSET1: 1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:148
    
    
    
    
    
    Th148: ( 
    variables_in ( 
    Ex (x,y,H))) 
    = (( 
    variables_in H) 
    \/  
    {x, y})
    
    proof
    
      
    
      thus (
    variables_in ( 
    Ex (x,y,H))) 
    = (( 
    variables_in ( 
    Ex (y,H))) 
    \/  
    {x}) by
    Th146
    
      .= (((
    variables_in H) 
    \/  
    {y})
    \/  
    {x}) by
    Th146
    
      .= ((
    variables_in H) 
    \/ ( 
    {y}
    \/  
    {x})) by
    XBOOLE_1: 4
    
      .= ((
    variables_in H) 
    \/  
    {x, y}) by
    ENUMSET1: 1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:149
    
    (
    variables_in ( 
    All (x,y,z,H))) 
    = (( 
    variables_in H) 
    \/  
    {x, y, z})
    
    proof
    
      
    
      thus (
    variables_in ( 
    All (x,y,z,H))) 
    = (( 
    variables_in ( 
    All (y,z,H))) 
    \/  
    {x}) by
    Th142
    
      .= (((
    variables_in H) 
    \/  
    {y, z})
    \/  
    {x}) by
    Th147
    
      .= ((
    variables_in H) 
    \/ ( 
    {y, z}
    \/  
    {x})) by
    XBOOLE_1: 4
    
      .= ((
    variables_in H) 
    \/  
    {y, z, x}) by
    ENUMSET1: 3
    
      .= ((
    variables_in H) 
    \/  
    {x, y, z}) by
    ENUMSET1: 59;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:150
    
    (
    variables_in ( 
    Ex (x,y,z,H))) 
    = (( 
    variables_in H) 
    \/  
    {x, y, z})
    
    proof
    
      
    
      thus (
    variables_in ( 
    Ex (x,y,z,H))) 
    = (( 
    variables_in ( 
    Ex (y,z,H))) 
    \/  
    {x}) by
    Th146
    
      .= (((
    variables_in H) 
    \/  
    {y, z})
    \/  
    {x}) by
    Th148
    
      .= ((
    variables_in H) 
    \/ ( 
    {y, z}
    \/  
    {x})) by
    XBOOLE_1: 4
    
      .= ((
    variables_in H) 
    \/  
    {y, z, x}) by
    ENUMSET1: 3
    
      .= ((
    variables_in H) 
    \/  
    {x, y, z}) by
    ENUMSET1: 59;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:151
    
    (
    Free H) 
    c= ( 
    variables_in H) 
    
    proof
    
      defpred
    
    P[
    ZF-formula] means (
    Free $1) 
    c= ( 
    variables_in $1); 
    
      
    
      
    
    A1: 
    P[H1] implies
    P[(
    'not' H1)] 
    
      proof
    
        assume (
    Free H1) 
    c= ( 
    variables_in H1); 
    
        then (
    Free ( 
    'not' H1)) 
    c= ( 
    variables_in H1) by 
    Th60;
    
        hence thesis by
    Th140;
    
      end;
    
      
    
      
    
    A2: 
    P[H1] &
    P[H2] implies
    P[(H1
    '&' H2)] 
    
      proof
    
        assume (
    Free H1) 
    c= ( 
    variables_in H1) & ( 
    Free H2) 
    c= ( 
    variables_in H2); 
    
        then ((
    Free H1) 
    \/ ( 
    Free H2)) 
    c= (( 
    variables_in H1) 
    \/ ( 
    variables_in H2)) by 
    XBOOLE_1: 13;
    
        then (
    Free (H1 
    '&' H2)) 
    c= (( 
    variables_in H1) 
    \/ ( 
    variables_in H2)) by 
    Th61;
    
        hence thesis by
    Th141;
    
      end;
    
      
    
      
    
    A3: 
    P[H1] implies
    P[(
    All (x,H1))] 
    
      proof
    
        ((
    Free H1) 
    \  
    {x})
    c= ( 
    Free H1) by 
    XBOOLE_1: 36;
    
        then
    
        
    
    A4: ( 
    Free ( 
    All (x,H1))) 
    c= ( 
    Free H1) by 
    Th62;
    
        (
    variables_in H1) 
    c= (( 
    variables_in H1) 
    \/  
    {x}) by
    XBOOLE_1: 7;
    
        then
    
        
    
    A5: ( 
    variables_in H1) 
    c= ( 
    variables_in ( 
    All (x,H1))) by 
    Th142;
    
        assume (
    Free H1) 
    c= ( 
    variables_in H1); 
    
        then (
    Free H1) 
    c= ( 
    variables_in ( 
    All (x,H1))) by 
    A5;
    
        hence thesis by
    A4,
    XBOOLE_1: 1;
    
      end;
    
      
    
      
    
    A6: 
    P[(x
    '=' y)] & 
    P[(x
    'in' y)] 
    
      proof
    
        (
    variables_in (x 
    '=' y)) 
    =  
    {x, y} & (
    variables_in (x 
    'in' y)) 
    =  
    {x, y} by
    Th138,
    Th139;
    
        hence thesis by
    Th58,
    Th59;
    
      end;
    
      for H holds
    P[H] from
    ZFInduction(
    A6,
    A1,
    A2,
    A3);
    
      hence thesis;
    
    end;
    
    definition
    
      let H;
    
      :: original:
    variables_in
    
      redefine
    
      func
    
    variables_in H -> non 
    empty  
    Subset of 
    VAR ; 
    
      coherence
    
      proof
    
        defpred
    
    P[
    ZF-formula] means (
    variables_in $1) 
    <>  
    {} ; 
    
        
    
        
    
    A1: for H1, H2 st 
    P[H1] &
    P[H2] holds
    P[(H1
    '&' H2)] 
    
        proof
    
          let H1, H2;
    
          (
    variables_in (H1 
    '&' H2)) 
    = (( 
    variables_in H1) 
    \/ ( 
    variables_in H2)) by 
    Th141;
    
          hence thesis;
    
        end;
    
        
    
        
    
    A2: for H, x st 
    P[H] holds
    P[(
    All (x,H))] 
    
        proof
    
          let H, x;
    
          (
    variables_in ( 
    All (x,H))) 
    = (( 
    variables_in H) 
    \/  
    {x}) by
    Th142;
    
          hence thesis;
    
        end;
    
        
    
        
    
    A3: for x, y holds 
    P[(x
    '=' y)] & 
    P[(x
    'in' y)] 
    
        proof
    
          let x, y;
    
          (
    variables_in (x 
    '=' y)) 
    =  
    {x, y} by
    Th138;
    
          hence thesis by
    Th139;
    
        end;
    
        
    
        
    
    A4: for H st 
    P[H] holds
    P[(
    'not' H)] by 
    Th140;
    
        for H holds
    P[H] from
    ZFInduction(
    A3,
    A4,
    A1,
    A2);
    
        then
    
        reconsider D = (
    variables_in H) as non 
    empty  
    set;
    
        D
    c=  
    VAR  
    
        proof
    
          let a be
    object;
    
          
    
          
    
    A5: ( 
    rng H) 
    c=  
    NAT by 
    FINSEQ_1:def 4;
    
          
    
          
    
    A6: ( 
    0  
    + 1) 
    = 1; 
    
          assume
    
          
    
    A7: a 
    in D; 
    
          then a
    in ( 
    rng H); 
    
          then
    
          reconsider i = a as
    Element of 
    NAT by 
    A5;
    
          a
    <>  
    0 by 
    A7,
    Th137;
    
          then
    
          
    
    A8: 1 
    <= i by 
    A6,
    NAT_1: 13;
    
          
    
          
    
    A9: (3 
    + 1) 
    = 4; 
    
          
    
          
    
    A10: (2 
    + 1) 
    = 3; 
    
          
    
          
    
    A11: (1 
    + 1) 
    = 2; 
    
          a
    <> 1 by 
    A7,
    Th137;
    
          then 1
    < i by 
    A8,
    XXREAL_0: 1;
    
          then
    
          
    
    A12: 2 
    <= i by 
    A11,
    NAT_1: 13;
    
          a
    <> 2 by 
    A7,
    Th137;
    
          then 2
    < i by 
    A12,
    XXREAL_0: 1;
    
          then
    
          
    
    A13: 3 
    <= i by 
    A10,
    NAT_1: 13;
    
          a
    <> 3 by 
    A7,
    Th137;
    
          then 3
    < i by 
    A13,
    XXREAL_0: 1;
    
          then
    
          
    
    A14: 4 
    <= i by 
    A9,
    NAT_1: 13;
    
          a
    <> 4 by 
    A7,
    Th137;
    
          then
    
          
    
    A15: 4 
    < i by 
    A14,
    XXREAL_0: 1;
    
          (4
    + 1) 
    = 5; 
    
          then 5
    <= i by 
    A15,
    NAT_1: 13;
    
          hence thesis;
    
        end;
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let H, x, y;
    
      :: 
    
    ZF_LANG1:def3
    
      func H
    
    / (x,y) -> 
    Function means 
    
      :
    
    Def3: ( 
    dom it ) 
    = ( 
    dom H) & for a be 
    object st a 
    in ( 
    dom H) holds ((H 
    . a) 
    = x implies (it 
    . a) 
    = y) & ((H 
    . a) 
    <> x implies (it 
    . a) 
    = (H 
    . a)); 
    
      existence
    
      proof
    
        deffunc
    
    G(
    object) = (H
    . $1); 
    
        deffunc
    
    F(
    object) = y;
    
        set A = (
    dom H); 
    
        defpred
    
    C[
    object] means (H
    . $1) 
    = x; 
    
        thus ex f be
    Function st ( 
    dom f) 
    = A & for a be 
    object st a 
    in A holds ( 
    C[a] implies (f
    . a) 
    =  
    F(a)) & ( not
    C[a] implies (f
    . a) 
    =  
    G(a)) from
    PARTFUN1:sch 1;
    
      end;
    
      uniqueness
    
      proof
    
        let f1,f2 be
    Function such that 
    
        
    
    A1: ( 
    dom f1) 
    = ( 
    dom H) and 
    
        
    
    A2: for a be 
    object st a 
    in ( 
    dom H) holds ((H 
    . a) 
    = x implies (f1 
    . a) 
    = y) & ((H 
    . a) 
    <> x implies (f1 
    . a) 
    = (H 
    . a)) and 
    
        
    
    A3: ( 
    dom f2) 
    = ( 
    dom H) and 
    
        
    
    A4: for a be 
    object st a 
    in ( 
    dom H) holds ((H 
    . a) 
    = x implies (f2 
    . a) 
    = y) & ((H 
    . a) 
    <> x implies (f2 
    . a) 
    = (H 
    . a)); 
    
        now
    
          let a be
    object;
    
          assume
    
          
    
    A5: a 
    in ( 
    dom H); 
    
          then
    
          
    
    A6: (H 
    . a) 
    <> x implies (f1 
    . a) 
    = (H 
    . a) by 
    A2;
    
          (H
    . a) 
    = x implies (f1 
    . a) 
    = y by 
    A2,
    A5;
    
          hence (f1
    . a) 
    = (f2 
    . a) by 
    A4,
    A5,
    A6;
    
        end;
    
        hence thesis by
    A1,
    A3,
    FUNCT_1: 2;
    
      end;
    
    end
    
    theorem :: 
    
    ZF_LANG1:152
    
    
    
    
    
    Th152: ((x1 
    '=' x2) 
    / (y1,y2)) 
    = (z1 
    '=' z2) iff x1 
    <> y1 & x2 
    <> y1 & z1 
    = x1 & z2 
    = x2 or x1 
    = y1 & x2 
    <> y1 & z1 
    = y2 & z2 
    = x2 or x1 
    <> y1 & x2 
    = y1 & z1 
    = x1 & z2 
    = y2 or x1 
    = y1 & x2 
    = y1 & z1 
    = y2 & z2 
    = y2 
    
    proof
    
      set H = (x1
    '=' x2), Hz = (z1 
    '=' z2); 
    
      set f = (H
    / (y1,y2)); 
    
      
    
      
    
    A1: (H 
    . 1) 
    =  
    0 & y1 
    <>  
    0 by 
    Th135,
    ZF_LANG: 15;
    
      H is
    being_equality;
    
      then
    
      
    
    A2: H is 
    atomic;
    
      then
    
      
    
    A3: ( 
    len H) 
    = 3 by 
    ZF_LANG: 11;
    
      then
    
      
    
    A4: ( 
    dom H) 
    =  
    {1, 2, 3} by
    FINSEQ_1:def 3,
    FINSEQ_3: 1;
    
      Hz is
    being_equality;
    
      then
    
      
    
    A5: Hz is 
    atomic;
    
      then (
    len Hz) 
    = 3 by 
    ZF_LANG: 11;
    
      then
    
      
    
    A6: ( 
    dom Hz) 
    = ( 
    Seg 3) by 
    FINSEQ_1:def 3;
    
      (
    Var1 Hz) 
    = z1 by 
    Th1;
    
      then
    
      
    
    A7: (Hz 
    . 2) 
    = z1 by 
    A5,
    ZF_LANG: 35;
    
      (
    Var2 Hz) 
    = z2 by 
    Th1;
    
      then
    
      
    
    A8: (Hz 
    . 3) 
    = z2 by 
    A5,
    ZF_LANG: 35;
    
      
    
      
    
    A9: ( 
    Var2 H) 
    = x2 by 
    Th1;
    
      then
    
      
    
    A10: (H 
    . 3) 
    = x2 by 
    A2,
    ZF_LANG: 35;
    
      
    
      
    
    A11: ( 
    Var1 H) 
    = x1 by 
    Th1;
    
      then
    
      
    
    A12: (H 
    . 2) 
    = x1 by 
    A2,
    ZF_LANG: 35;
    
      thus ((x1
    '=' x2) 
    / (y1,y2)) 
    = (z1 
    '=' z2) implies x1 
    <> y1 & x2 
    <> y1 & z1 
    = x1 & z2 
    = x2 or x1 
    = y1 & x2 
    <> y1 & z1 
    = y2 & z2 
    = x2 or x1 
    <> y1 & x2 
    = y1 & z1 
    = x1 & z2 
    = y2 or x1 
    = y1 & x2 
    = y1 & z1 
    = y2 & z2 
    = y2 
    
      proof
    
        assume
    
        
    
    A13: ((x1 
    '=' x2) 
    / (y1,y2)) 
    = (z1 
    '=' z2); 
    
        per cases ;
    
          case
    
          
    
    A14: x1 
    <> y1 & x2 
    <> y1; 
    
          2
    in ( 
    dom H) & 3 
    in ( 
    dom H) by 
    A4,
    ENUMSET1:def 1;
    
          hence thesis by
    A12,
    A10,
    A7,
    A8,
    A13,
    A14,
    Def3;
    
        end;
    
          case
    
          
    
    A15: x1 
    = y1 & x2 
    <> y1; 
    
          
    
          
    
    A16: 2 
    in ( 
    dom H) & 3 
    in ( 
    dom H) by 
    A4,
    ENUMSET1:def 1;
    
          (H
    . 2) 
    = y1 by 
    A2,
    A11,
    A15,
    ZF_LANG: 35;
    
          hence thesis by
    A10,
    A7,
    A8,
    A13,
    A15,
    A16,
    Def3;
    
        end;
    
          case
    
          
    
    A17: x1 
    <> y1 & x2 
    = y1; 
    
          
    
          
    
    A18: 2 
    in ( 
    dom H) & 3 
    in ( 
    dom H) by 
    A4,
    ENUMSET1:def 1;
    
          (H
    . 3) 
    = y1 by 
    A2,
    A9,
    A17,
    ZF_LANG: 35;
    
          hence thesis by
    A12,
    A7,
    A8,
    A13,
    A17,
    A18,
    Def3;
    
        end;
    
          case
    
          
    
    A19: x1 
    = y1 & x2 
    = y1; 
    
          
    
          
    
    A20: 2 
    in ( 
    dom H) & 3 
    in ( 
    dom H) by 
    A4,
    ENUMSET1:def 1;
    
          (H
    . 2) 
    = y1 & (H 
    . 3) 
    = y1 by 
    A2,
    A11,
    A9,
    A19,
    ZF_LANG: 35;
    
          hence thesis by
    A7,
    A8,
    A13,
    A20,
    Def3;
    
        end;
    
      end;
    
      
    
      
    
    A21: ( 
    dom H) 
    = ( 
    Seg 3) by 
    A3,
    FINSEQ_1:def 3;
    
      
    
      
    
    A22: ( 
    dom f) 
    = ( 
    dom H) by 
    Def3;
    
      
    
    A23: 
    
      now
    
        assume
    
        
    
    A24: x1 
    <> y1 & x2 
    <> y1 & z1 
    = x1 & z2 
    = x2; 
    
        now
    
          let a be
    object;
    
          assume
    
          
    
    A25: a 
    in ( 
    dom H); 
    
          then a
    = 1 or a 
    = 2 or a 
    = 3 by 
    A4,
    ENUMSET1:def 1;
    
          hence (Hz
    . a) 
    = (f 
    . a) by 
    A12,
    A10,
    A1,
    A24,
    A25,
    Def3;
    
        end;
    
        hence f
    = Hz by 
    A22,
    A21,
    A6,
    FUNCT_1: 2;
    
      end;
    
      
    
      
    
    A26: (Hz 
    . 1) 
    =  
    0 by 
    ZF_LANG: 15;
    
      
    
    A27: 
    
      now
    
        assume
    
        
    
    A28: x1 
    <> y1 & x2 
    = y1 & z1 
    = x1 & z2 
    = y2; 
    
        now
    
          let a be
    object;
    
          assume
    
          
    
    A29: a 
    in ( 
    dom H); 
    
          then a
    = 1 or a 
    = 2 or a 
    = 3 by 
    A4,
    ENUMSET1:def 1;
    
          hence (Hz
    . a) 
    = (f 
    . a) by 
    A12,
    A10,
    A26,
    A7,
    A8,
    A1,
    A28,
    A29,
    Def3;
    
        end;
    
        hence f
    = Hz by 
    A22,
    A21,
    A6,
    FUNCT_1: 2;
    
      end;
    
      
    
    A30: 
    
      now
    
        assume
    
        
    
    A31: x1 
    = y1 & x2 
    = y1 & z1 
    = y2 & z2 
    = y2; 
    
        now
    
          let a be
    object;
    
          assume
    
          
    
    A32: a 
    in ( 
    dom H); 
    
          then a
    = 1 or a 
    = 2 or a 
    = 3 by 
    A4,
    ENUMSET1:def 1;
    
          hence (Hz
    . a) 
    = (f 
    . a) by 
    A12,
    A10,
    A26,
    A7,
    A8,
    A1,
    A31,
    A32,
    Def3;
    
        end;
    
        hence f
    = Hz by 
    A22,
    A21,
    A6,
    FUNCT_1: 2;
    
      end;
    
      now
    
        assume
    
        
    
    A33: x1 
    = y1 & x2 
    <> y1 & z1 
    = y2 & z2 
    = x2; 
    
        now
    
          let a be
    object;
    
          assume
    
          
    
    A34: a 
    in ( 
    dom H); 
    
          then a
    = 1 or a 
    = 2 or a 
    = 3 by 
    A4,
    ENUMSET1:def 1;
    
          hence (Hz
    . a) 
    = (f 
    . a) by 
    A12,
    A10,
    A26,
    A7,
    A8,
    A1,
    A33,
    A34,
    Def3;
    
        end;
    
        hence f
    = Hz by 
    A22,
    A21,
    A6,
    FUNCT_1: 2;
    
      end;
    
      hence thesis by
    A23,
    A27,
    A30;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:153
    
    
    
    
    
    Th153: ex z1, z2 st ((x1 
    '=' x2) 
    / (y1,y2)) 
    = (z1 
    '=' z2) 
    
    proof
    
      x1
    <> y1 & x2 
    <> y1 or x1 
    = y1 & x2 
    <> y1 or x1 
    <> y1 & x2 
    = y1 or x1 
    = y1 & x2 
    = y1; 
    
      then
    
      consider z1, z2 such that
    
      
    
    A1: x1 
    <> y1 & x2 
    <> y1 & z1 
    = x1 & z2 
    = x2 or x1 
    = y1 & x2 
    <> y1 & z1 
    = y2 & z2 
    = x2 or x1 
    <> y1 & x2 
    = y1 & z1 
    = x1 & z2 
    = y2 or x1 
    = y1 & x2 
    = y1 & z1 
    = y2 & z2 
    = y2; 
    
      take z1, z2;
    
      thus thesis by
    A1,
    Th152;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:154
    
    
    
    
    
    Th154: ((x1 
    'in' x2) 
    / (y1,y2)) 
    = (z1 
    'in' z2) iff x1 
    <> y1 & x2 
    <> y1 & z1 
    = x1 & z2 
    = x2 or x1 
    = y1 & x2 
    <> y1 & z1 
    = y2 & z2 
    = x2 or x1 
    <> y1 & x2 
    = y1 & z1 
    = x1 & z2 
    = y2 or x1 
    = y1 & x2 
    = y1 & z1 
    = y2 & z2 
    = y2 
    
    proof
    
      set H = (x1
    'in' x2), Hz = (z1 
    'in' z2); 
    
      set f = (H
    / (y1,y2)); 
    
      
    
      
    
    A1: (H 
    . 1) 
    = 1 & y1 
    <> 1 by 
    Th135,
    ZF_LANG: 15;
    
      H is
    being_membership;
    
      then
    
      
    
    A2: H is 
    atomic;
    
      then
    
      
    
    A3: ( 
    len H) 
    = 3 by 
    ZF_LANG: 11;
    
      then
    
      
    
    A4: ( 
    dom H) 
    =  
    {1, 2, 3} by
    FINSEQ_1:def 3,
    FINSEQ_3: 1;
    
      Hz is
    being_membership;
    
      then
    
      
    
    A5: Hz is 
    atomic;
    
      then (
    len Hz) 
    = 3 by 
    ZF_LANG: 11;
    
      then
    
      
    
    A6: ( 
    dom Hz) 
    = ( 
    Seg 3) by 
    FINSEQ_1:def 3;
    
      (
    Var1 Hz) 
    = z1 by 
    Th2;
    
      then
    
      
    
    A7: (Hz 
    . 2) 
    = z1 by 
    A5,
    ZF_LANG: 35;
    
      (
    Var2 Hz) 
    = z2 by 
    Th2;
    
      then
    
      
    
    A8: (Hz 
    . 3) 
    = z2 by 
    A5,
    ZF_LANG: 35;
    
      
    
      
    
    A9: ( 
    Var2 H) 
    = x2 by 
    Th2;
    
      then
    
      
    
    A10: (H 
    . 3) 
    = x2 by 
    A2,
    ZF_LANG: 35;
    
      
    
      
    
    A11: ( 
    Var1 H) 
    = x1 by 
    Th2;
    
      then
    
      
    
    A12: (H 
    . 2) 
    = x1 by 
    A2,
    ZF_LANG: 35;
    
      thus ((x1
    'in' x2) 
    / (y1,y2)) 
    = (z1 
    'in' z2) implies x1 
    <> y1 & x2 
    <> y1 & z1 
    = x1 & z2 
    = x2 or x1 
    = y1 & x2 
    <> y1 & z1 
    = y2 & z2 
    = x2 or x1 
    <> y1 & x2 
    = y1 & z1 
    = x1 & z2 
    = y2 or x1 
    = y1 & x2 
    = y1 & z1 
    = y2 & z2 
    = y2 
    
      proof
    
        assume
    
        
    
    A13: ((x1 
    'in' x2) 
    / (y1,y2)) 
    = (z1 
    'in' z2); 
    
        per cases ;
    
          case
    
          
    
    A14: x1 
    <> y1 & x2 
    <> y1; 
    
          2
    in ( 
    dom H) & 3 
    in ( 
    dom H) by 
    A4,
    ENUMSET1:def 1;
    
          hence thesis by
    A12,
    A10,
    A7,
    A8,
    A13,
    A14,
    Def3;
    
        end;
    
          case
    
          
    
    A15: x1 
    = y1 & x2 
    <> y1; 
    
          
    
          
    
    A16: 2 
    in ( 
    dom H) & 3 
    in ( 
    dom H) by 
    A4,
    ENUMSET1:def 1;
    
          (H
    . 2) 
    = y1 by 
    A2,
    A11,
    A15,
    ZF_LANG: 35;
    
          hence thesis by
    A10,
    A7,
    A8,
    A13,
    A15,
    A16,
    Def3;
    
        end;
    
          case
    
          
    
    A17: x1 
    <> y1 & x2 
    = y1; 
    
          
    
          
    
    A18: 2 
    in ( 
    dom H) & 3 
    in ( 
    dom H) by 
    A4,
    ENUMSET1:def 1;
    
          (H
    . 3) 
    = y1 by 
    A2,
    A9,
    A17,
    ZF_LANG: 35;
    
          hence thesis by
    A12,
    A7,
    A8,
    A13,
    A17,
    A18,
    Def3;
    
        end;
    
          case
    
          
    
    A19: x1 
    = y1 & x2 
    = y1; 
    
          
    
          
    
    A20: 2 
    in ( 
    dom H) & 3 
    in ( 
    dom H) by 
    A4,
    ENUMSET1:def 1;
    
          (H
    . 2) 
    = y1 & (H 
    . 3) 
    = y1 by 
    A2,
    A11,
    A9,
    A19,
    ZF_LANG: 35;
    
          hence thesis by
    A7,
    A8,
    A13,
    A20,
    Def3;
    
        end;
    
      end;
    
      
    
      
    
    A21: ( 
    dom H) 
    = ( 
    Seg 3) by 
    A3,
    FINSEQ_1:def 3;
    
      
    
      
    
    A22: ( 
    dom f) 
    = ( 
    dom H) by 
    Def3;
    
      
    
    A23: 
    
      now
    
        assume
    
        
    
    A24: x1 
    <> y1 & x2 
    <> y1 & z1 
    = x1 & z2 
    = x2; 
    
        now
    
          let a be
    object;
    
          assume
    
          
    
    A25: a 
    in ( 
    dom H); 
    
          then a
    = 1 or a 
    = 2 or a 
    = 3 by 
    A4,
    ENUMSET1:def 1;
    
          hence (Hz
    . a) 
    = (f 
    . a) by 
    A12,
    A10,
    A1,
    A24,
    A25,
    Def3;
    
        end;
    
        hence f
    = Hz by 
    A22,
    A21,
    A6,
    FUNCT_1: 2;
    
      end;
    
      
    
      
    
    A26: (Hz 
    . 1) 
    = 1 by 
    ZF_LANG: 15;
    
      
    
    A27: 
    
      now
    
        assume
    
        
    
    A28: x1 
    <> y1 & x2 
    = y1 & z1 
    = x1 & z2 
    = y2; 
    
        now
    
          let a be
    object;
    
          assume
    
          
    
    A29: a 
    in ( 
    dom H); 
    
          then a
    = 1 or a 
    = 2 or a 
    = 3 by 
    A4,
    ENUMSET1:def 1;
    
          hence (Hz
    . a) 
    = (f 
    . a) by 
    A12,
    A10,
    A26,
    A7,
    A8,
    A1,
    A28,
    A29,
    Def3;
    
        end;
    
        hence f
    = Hz by 
    A22,
    A21,
    A6,
    FUNCT_1: 2;
    
      end;
    
      
    
    A30: 
    
      now
    
        assume
    
        
    
    A31: x1 
    = y1 & x2 
    = y1 & z1 
    = y2 & z2 
    = y2; 
    
        now
    
          let a be
    object;
    
          assume
    
          
    
    A32: a 
    in ( 
    dom H); 
    
          then a
    = 1 or a 
    = 2 or a 
    = 3 by 
    A4,
    ENUMSET1:def 1;
    
          hence (Hz
    . a) 
    = (f 
    . a) by 
    A12,
    A10,
    A26,
    A7,
    A8,
    A1,
    A31,
    A32,
    Def3;
    
        end;
    
        hence f
    = Hz by 
    A22,
    A21,
    A6,
    FUNCT_1: 2;
    
      end;
    
      now
    
        assume
    
        
    
    A33: x1 
    = y1 & x2 
    <> y1 & z1 
    = y2 & z2 
    = x2; 
    
        now
    
          let a be
    object;
    
          assume
    
          
    
    A34: a 
    in ( 
    dom H); 
    
          then a
    = 1 or a 
    = 2 or a 
    = 3 by 
    A4,
    ENUMSET1:def 1;
    
          hence (Hz
    . a) 
    = (f 
    . a) by 
    A12,
    A10,
    A26,
    A7,
    A8,
    A1,
    A33,
    A34,
    Def3;
    
        end;
    
        hence f
    = Hz by 
    A22,
    A21,
    A6,
    FUNCT_1: 2;
    
      end;
    
      hence thesis by
    A23,
    A27,
    A30;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:155
    
    
    
    
    
    Th155: ex z1, z2 st ((x1 
    'in' x2) 
    / (y1,y2)) 
    = (z1 
    'in' z2) 
    
    proof
    
      x1
    <> y1 & x2 
    <> y1 or x1 
    = y1 & x2 
    <> y1 or x1 
    <> y1 & x2 
    = y1 or x1 
    = y1 & x2 
    = y1; 
    
      then
    
      consider z1, z2 such that
    
      
    
    A1: x1 
    <> y1 & x2 
    <> y1 & z1 
    = x1 & z2 
    = x2 or x1 
    = y1 & x2 
    <> y1 & z1 
    = y2 & z2 
    = x2 or x1 
    <> y1 & x2 
    = y1 & z1 
    = x1 & z2 
    = y2 or x1 
    = y1 & x2 
    = y1 & z1 
    = y2 & z2 
    = y2; 
    
      take z1, z2;
    
      thus thesis by
    A1,
    Th154;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:156
    
    
    
    
    
    Th156: ( 
    'not' F) 
    = (( 
    'not' H) 
    / (x,y)) iff F 
    = (H 
    / (x,y)) 
    
    proof
    
      set N = ((
    'not' H) 
    / (x,y)); 
    
      
    
      
    
    A1: ( 
    len  
    <*2*>)
    = 1 by 
    FINSEQ_1: 39;
    
      
    
      
    
    A2: ( 
    dom ( 
    'not' F)) 
    = ( 
    Seg ( 
    len ( 
    'not' F))) & ( 
    dom ( 
    'not' H)) 
    = ( 
    Seg ( 
    len ( 
    'not' H))) by 
    FINSEQ_1:def 3;
    
      
    
      
    
    A3: ( 
    len ( 
    'not' F)) 
    = (( 
    len  
    <*2*>)
    + ( 
    len F)) & ( 
    len ( 
    'not' H)) 
    = (( 
    len  
    <*2*>)
    + ( 
    len H)) by 
    FINSEQ_1: 22;
    
      
    
      
    
    A4: ( 
    dom F) 
    = ( 
    Seg ( 
    len F)) & ( 
    dom H) 
    = ( 
    Seg ( 
    len H)) by 
    FINSEQ_1:def 3;
    
      thus (
    'not' F) 
    = (( 
    'not' H) 
    / (x,y)) implies F 
    = (H 
    / (x,y)) 
    
      proof
    
        assume
    
        
    
    A5: ( 
    'not' F) 
    = N; 
    
        then
    
        
    
    A6: ( 
    dom ( 
    'not' F)) 
    = ( 
    dom ( 
    'not' H)) by 
    Def3;
    
        then
    
        
    
    A7: ( 
    len ( 
    'not' F)) 
    = ( 
    len ( 
    'not' H)) by 
    FINSEQ_3: 29;
    
        
    
    A8: 
    
        now
    
          let a be
    object;
    
          assume
    
          
    
    A9: a 
    in ( 
    dom F); 
    
          then
    
          reconsider i = a as
    Element of 
    NAT ; 
    
          
    
          
    
    A10: (F 
    . a) 
    = (N 
    . (1 
    + i)) & (1 
    + i) 
    in ( 
    dom N) by 
    A1,
    A5,
    A9,
    FINSEQ_1: 28,
    FINSEQ_1:def 7;
    
          
    
          
    
    A11: (( 
    'not' H) 
    . (1 
    + i)) 
    = (H 
    . a) by 
    A1,
    A4,
    A3,
    A7,
    A9,
    FINSEQ_1:def 7;
    
          then
    
          
    
    A12: (H 
    . a) 
    = x implies (F 
    . a) 
    = y by 
    A5,
    A6,
    A10,
    Def3;
    
          
    
          
    
    A13: (H 
    . a) 
    <> x implies (F 
    . a) 
    = (H 
    . a) by 
    A5,
    A6,
    A10,
    A11,
    Def3;
    
          (H
    . a) 
    = x implies ((H 
    / (x,y)) 
    . a) 
    = y by 
    A4,
    A3,
    A7,
    A9,
    Def3;
    
          hence (F
    . a) 
    = ((H 
    / (x,y)) 
    . a) by 
    A4,
    A3,
    A7,
    A9,
    A12,
    A13,
    Def3;
    
        end;
    
        
    
        
    
    A14: ( 
    dom H) 
    = ( 
    dom (H 
    / (x,y))) by 
    Def3;
    
        (
    dom F) 
    = ( 
    dom H) by 
    A3,
    A7,
    FINSEQ_3: 29;
    
        hence thesis by
    A14,
    A8,
    FUNCT_1: 2;
    
      end;
    
      assume
    
      
    
    A15: F 
    = (H 
    / (x,y)); 
    
      then
    
      
    
    A16: ( 
    dom F) 
    = ( 
    dom H) by 
    Def3;
    
      then
    
      
    
    A17: ( 
    len F) 
    = ( 
    len H) by 
    FINSEQ_3: 29;
    
      
    
      
    
    A18: ( 
    dom  
    <*2*>)
    =  
    {1} by
    FINSEQ_1: 2,
    FINSEQ_1:def 8;
    
      
    
    A19: 
    
      now
    
        let a be
    object;
    
        assume
    
        
    
    A20: a 
    in ( 
    dom ( 
    'not' F)); 
    
        then
    
        reconsider i = a as
    Element of 
    NAT ; 
    
        
    
    A21: 
    
        now
    
          
    
          
    
    A22: (( 
    'not' H) 
    . a) 
    <> x implies (N 
    . a) 
    = (( 
    'not' H) 
    . a) by 
    A2,
    A3,
    A17,
    A20,
    Def3;
    
          given j be
    Nat such that 
    
          
    
    A23: j 
    in ( 
    dom F) and 
    
          
    
    A24: i 
    = (1 
    + j); 
    
          
    
          
    
    A25: (H 
    . j) 
    = (( 
    'not' H) 
    . i) & (F 
    . j) 
    = (( 
    'not' F) 
    . i) by 
    A1,
    A16,
    A23,
    A24,
    FINSEQ_1:def 7;
    
          then
    
          
    
    A26: (( 
    'not' H) 
    . a) 
    = x implies (( 
    'not' F) 
    . a) 
    = y by 
    A15,
    A16,
    A23,
    Def3;
    
          ((
    'not' H) 
    . a) 
    <> x implies (( 
    'not' F) 
    . a) 
    = (( 
    'not' H) 
    . a) by 
    A15,
    A16,
    A23,
    A25,
    Def3;
    
          hence ((
    'not' F) 
    . a) 
    = (N 
    . a) by 
    A2,
    A3,
    A17,
    A20,
    A26,
    A22,
    Def3;
    
        end;
    
        now
    
          
    
          
    
    A27: (( 
    'not' H) 
    . 1) 
    = 2 & 2 
    <> x by 
    Th135,
    FINSEQ_1: 41;
    
          assume i
    in  
    {1};
    
          then
    
          
    
    A28: i 
    = 1 by 
    TARSKI:def 1;
    
          then ((
    'not' F) 
    . i) 
    = 2 by 
    FINSEQ_1: 41;
    
          hence ((
    'not' F) 
    . a) 
    = (N 
    . a) by 
    A2,
    A3,
    A17,
    A20,
    A28,
    A27,
    Def3;
    
        end;
    
        hence ((
    'not' F) 
    . a) 
    = (N 
    . a) by 
    A1,
    A18,
    A20,
    A21,
    FINSEQ_1: 25;
    
      end;
    
      (
    dom ( 
    'not' F)) 
    = ( 
    dom N) by 
    A2,
    A3,
    A17,
    Def3;
    
      hence thesis by
    A19,
    FUNCT_1: 2;
    
    end;
    
    
    
    
    
    Lm1: G1 
    = (H1 
    / (x,y)) & G2 
    = (H2 
    / (x,y)) implies (G1 
    '&' G2) 
    = ((H1 
    '&' H2) 
    / (x,y)) 
    
    proof
    
      set N = ((H1
    '&' H2) 
    / (x,y)); 
    
      
    
      
    
    A1: ( 
    dom  
    <*3*>)
    =  
    {1} by
    FINSEQ_1: 2,
    FINSEQ_1:def 8;
    
      
    
      
    
    A2: ( 
    dom (G1 
    '&' G2)) 
    = ( 
    Seg ( 
    len (G1 
    '&' G2))) & ( 
    dom (H1 
    '&' H2)) 
    = ( 
    Seg ( 
    len (H1 
    '&' H2))) by 
    FINSEQ_1:def 3;
    
      
    
      
    
    A3: ( 
    len  
    <*3*>)
    = 1 by 
    FINSEQ_1: 39;
    
      then
    
      
    
    A4: ( 
    len ( 
    <*3*>
    ^ G1)) 
    = (1 
    + ( 
    len G1)) by 
    FINSEQ_1: 22;
    
      then
    
      
    
    A5: ( 
    len (G1 
    '&' G2)) 
    = ((1 
    + ( 
    len G1)) 
    + ( 
    len G2)) by 
    FINSEQ_1: 22;
    
      
    
      
    
    A6: ( 
    len ( 
    <*3*>
    ^ H1)) 
    = (1 
    + ( 
    len H1)) by 
    A3,
    FINSEQ_1: 22;
    
      then
    
      
    
    A7: ( 
    len (H1 
    '&' H2)) 
    = ((1 
    + ( 
    len H1)) 
    + ( 
    len H2)) by 
    FINSEQ_1: 22;
    
      
    
      
    
    A8: ( 
    dom ( 
    <*3*>
    ^ H1)) 
    = ( 
    Seg (1 
    + ( 
    len H1))) by 
    A6,
    FINSEQ_1:def 3;
    
      
    
      
    
    A9: ( 
    dom N) 
    = ( 
    dom (H1 
    '&' H2)) by 
    Def3;
    
      assume that
    
      
    
    A10: G1 
    = (H1 
    / (x,y)) and 
    
      
    
    A11: G2 
    = (H2 
    / (x,y)); 
    
      
    
      
    
    A12: ( 
    dom G1) 
    = ( 
    dom H1) by 
    A10,
    Def3;
    
      then
    
      
    
    A13: ( 
    len G1) 
    = ( 
    len H1) by 
    FINSEQ_3: 29;
    
      
    
      
    
    A14: ( 
    dom G2) 
    = ( 
    dom H2) by 
    A11,
    Def3;
    
      then (
    len G2) 
    = ( 
    len H2) by 
    FINSEQ_3: 29;
    
      then
    
      
    
    A15: ( 
    dom N) 
    = ( 
    dom (G1 
    '&' G2)) by 
    A2,
    A5,
    A7,
    A13,
    Def3;
    
      
    
      
    
    A16: ( 
    dom ( 
    <*3*>
    ^ G1)) 
    = ( 
    Seg (1 
    + ( 
    len G1))) by 
    A4,
    FINSEQ_1:def 3;
    
      now
    
        let a be
    object;
    
        assume
    
        
    
    A17: a 
    in ( 
    dom N); 
    
        then
    
        reconsider i = a as
    Element of 
    NAT by 
    A15;
    
        
    
    A18: 
    
        now
    
          
    
    A19: 
    
          now
    
            assume i
    in  
    {1};
    
            then
    
            
    
    A20: i 
    = 1 by 
    TARSKI:def 1;
    
            ((H1
    '&' H2) 
    . 1) 
    = 3 & x 
    <> 3 by 
    Th135,
    ZF_LANG: 16;
    
            then (N
    . i) 
    = 3 by 
    A9,
    A17,
    A20,
    Def3;
    
            hence (N
    . a) 
    = ((G1 
    '&' G2) 
    . a) by 
    A20,
    ZF_LANG: 16;
    
          end;
    
          assume
    
          
    
    A21: i 
    in ( 
    dom ( 
    <*3*>
    ^ G1)); 
    
          then
    
          
    
    A22: ((G1 
    '&' G2) 
    . i) 
    = (( 
    <*3*>
    ^ G1) 
    . i) & ((H1 
    '&' H2) 
    . i) 
    = (( 
    <*3*>
    ^ H1) 
    . i) by 
    A16,
    A8,
    A13,
    FINSEQ_1:def 7;
    
          now
    
            
    
            
    
    A23: ((H1 
    '&' H2) 
    . a) 
    <> x implies (N 
    . a) 
    = ((H1 
    '&' H2) 
    . a) by 
    A9,
    A17,
    Def3;
    
            given j be
    Nat such that 
    
            
    
    A24: j 
    in ( 
    dom G1) and 
    
            
    
    A25: i 
    = (1 
    + j); 
    
            
    
            
    
    A26: (G1 
    . j) 
    = ((G1 
    '&' G2) 
    . i) & (H1 
    . j) 
    = ((H1 
    '&' H2) 
    . i) by 
    A3,
    A12,
    A22,
    A24,
    A25,
    FINSEQ_1:def 7;
    
            then
    
            
    
    A27: ((H1 
    '&' H2) 
    . a) 
    = x implies ((G1 
    '&' G2) 
    . a) 
    = y by 
    A10,
    A12,
    A24,
    Def3;
    
            ((H1
    '&' H2) 
    . a) 
    <> x implies ((G1 
    '&' G2) 
    . a) 
    = ((H1 
    '&' H2) 
    . a) by 
    A10,
    A12,
    A24,
    A26,
    Def3;
    
            hence ((G1
    '&' G2) 
    . a) 
    = (N 
    . a) by 
    A9,
    A17,
    A27,
    A23,
    Def3;
    
          end;
    
          hence ((G1
    '&' G2) 
    . a) 
    = (N 
    . a) by 
    A3,
    A1,
    A21,
    A19,
    FINSEQ_1: 25;
    
        end;
    
        now
    
          
    
          
    
    A28: ((H1 
    '&' H2) 
    . a) 
    <> x implies (N 
    . a) 
    = ((H1 
    '&' H2) 
    . a) by 
    A9,
    A17,
    Def3;
    
          given j be
    Nat such that 
    
          
    
    A29: j 
    in ( 
    dom G2) and 
    
          
    
    A30: i 
    = ((1 
    + ( 
    len G1)) 
    + j); 
    
          
    
          
    
    A31: (G2 
    . j) 
    = ((G1 
    '&' G2) 
    . i) & (H2 
    . j) 
    = ((H1 
    '&' H2) 
    . i) by 
    A4,
    A6,
    A14,
    A13,
    A29,
    A30,
    FINSEQ_1:def 7;
    
          then
    
          
    
    A32: ((H1 
    '&' H2) 
    . a) 
    = x implies ((G1 
    '&' G2) 
    . a) 
    = y by 
    A11,
    A14,
    A29,
    Def3;
    
          ((H1
    '&' H2) 
    . a) 
    <> x implies ((G1 
    '&' G2) 
    . a) 
    = ((H1 
    '&' H2) 
    . a) by 
    A11,
    A14,
    A29,
    A31,
    Def3;
    
          hence ((G1
    '&' G2) 
    . a) 
    = (N 
    . a) by 
    A9,
    A17,
    A28,
    A32,
    Def3;
    
        end;
    
        hence ((G1
    '&' G2) 
    . a) 
    = (N 
    . a) by 
    A4,
    A15,
    A17,
    A18,
    FINSEQ_1: 25;
    
      end;
    
      hence thesis by
    A15,
    FUNCT_1: 2;
    
    end;
    
    
    
    
    
    Lm2: F 
    = (H 
    / (x,y)) & (z 
    = s & s 
    <> x or z 
    = y & s 
    = x) implies ( 
    All (z,F)) 
    = (( 
    All (s,H)) 
    / (x,y)) 
    
    proof
    
      set N = ((
    All (s,H)) 
    / (x,y)); 
    
      
    
      
    
    A1: ( 
    len  
    <*4*>)
    = 1 & (1 
    + 1) 
    = 2 by 
    FINSEQ_1: 39;
    
      (
    len  
    <*s*>)
    = 1 by 
    FINSEQ_1: 39;
    
      then
    
      
    
    A2: ( 
    len ( 
    <*4*>
    ^  
    <*s*>))
    = 2 by 
    A1,
    FINSEQ_1: 22;
    
      then
    
      
    
    A3: ( 
    dom ( 
    <*4*>
    ^  
    <*s*>))
    =  
    {1, 2} by
    FINSEQ_1: 2,
    FINSEQ_1:def 3;
    
      (
    len ( 
    All (s,H))) 
    = (2 
    + ( 
    len H)) by 
    A2,
    FINSEQ_1: 22;
    
      then
    
      
    
    A4: ( 
    dom ( 
    All (s,H))) 
    = ( 
    Seg (2 
    + ( 
    len H))) by 
    FINSEQ_1:def 3;
    
      
    
      
    
    A5: ( 
    <*4*>
    ^  
    <*z*>)
    =  
    <*4, z*> & (
    <*4*>
    ^  
    <*s*>)
    =  
    <*4, s*> by
    FINSEQ_1:def 9;
    
      
    
      
    
    A6: ( 
    dom N) 
    = ( 
    dom ( 
    All (s,H))) by 
    Def3;
    
      assume that
    
      
    
    A7: F 
    = (H 
    / (x,y)) and 
    
      
    
    A8: z 
    = s & s 
    <> x or z 
    = y & s 
    = x; 
    
      
    
      
    
    A9: ( 
    dom F) 
    = ( 
    dom H) by 
    A7,
    Def3;
    
      (
    len  
    <*z*>)
    = 1 by 
    FINSEQ_1: 39;
    
      then
    
      
    
    A10: ( 
    len ( 
    <*4*>
    ^  
    <*z*>))
    = 2 by 
    A1,
    FINSEQ_1: 22;
    
      then
    
      
    
    A11: ( 
    dom ( 
    <*4*>
    ^  
    <*z*>))
    =  
    {1, 2} by
    FINSEQ_1: 2,
    FINSEQ_1:def 3;
    
      
    
    A12: 
    
      now
    
        let a be
    object;
    
        assume
    
        
    
    A13: a 
    in ( 
    dom N); 
    
        then
    
        reconsider a1 = a as
    Element of 
    NAT by 
    A6;
    
        
    
    A14: 
    
        now
    
          
    
          
    
    A15: x 
    <> 4 & ( 
    <*4, z*>
    . 1) 
    = 4 by 
    Th135,
    FINSEQ_1: 44;
    
          
    
          
    
    A16: ( 
    <*4, s*>
    . 1) 
    = 4 & ( 
    <*4, z*>
    . 2) 
    = z by 
    FINSEQ_1: 44;
    
          
    
          
    
    A17: ( 
    <*4, s*>
    . 2) 
    = s by 
    FINSEQ_1: 44;
    
          assume
    
          
    
    A18: a 
    in  
    {1, 2};
    
          then
    
          
    
    A19: a 
    = 1 or a 
    = 2 by 
    TARSKI:def 2;
    
          ((
    All (z,F)) 
    . a1) 
    = ( 
    <*4, z*>
    . a1) & (( 
    All (s,H)) 
    . a1) 
    = ( 
    <*4, s*>
    . a1) by 
    A11,
    A3,
    A5,
    A18,
    FINSEQ_1:def 7;
    
          hence ((
    All (z,F)) 
    . a) 
    = ((( 
    All (s,H)) 
    / (x,y)) 
    . a) by 
    A8,
    A6,
    A13,
    A19,
    A15,
    A16,
    A17,
    Def3;
    
        end;
    
        now
    
          
    
          
    
    A20: (( 
    All (s,H)) 
    . a) 
    <> x implies ((( 
    All (s,H)) 
    / (x,y)) 
    . a) 
    = (( 
    All (s,H)) 
    . a) by 
    A6,
    A13,
    Def3;
    
          given i be
    Nat such that 
    
          
    
    A21: i 
    in ( 
    dom H) and 
    
          
    
    A22: a1 
    = (2 
    + i); 
    
          
    
          
    
    A23: (( 
    All (z,F)) 
    . a) 
    = (F 
    . i) & (( 
    All (s,H)) 
    . a) 
    = (H 
    . i) by 
    A10,
    A2,
    A9,
    A21,
    A22,
    FINSEQ_1:def 7;
    
          then
    
          
    
    A24: (( 
    All (s,H)) 
    . a) 
    = x implies (( 
    All (z,F)) 
    . a) 
    = y by 
    A7,
    A21,
    Def3;
    
          ((
    All (s,H)) 
    . a) 
    <> x implies (( 
    All (z,F)) 
    . a) 
    = (( 
    All (s,H)) 
    . a) by 
    A7,
    A21,
    A23,
    Def3;
    
          hence ((
    All (z,F)) 
    . a) 
    = ((( 
    All (s,H)) 
    / (x,y)) 
    . a) by 
    A6,
    A13,
    A24,
    A20,
    Def3;
    
        end;
    
        hence ((
    All (z,F)) 
    . a) 
    = ((( 
    All (s,H)) 
    / (x,y)) 
    . a) by 
    A2,
    A3,
    A6,
    A13,
    A14,
    FINSEQ_1: 25;
    
      end;
    
      (
    len ( 
    All (z,F))) 
    = (2 
    + ( 
    len F)) by 
    A10,
    FINSEQ_1: 22;
    
      then (
    dom ( 
    All (z,F))) 
    = ( 
    Seg (2 
    + ( 
    len F))) by 
    FINSEQ_1:def 3;
    
      then (
    dom ( 
    All (s,H))) 
    = ( 
    dom ( 
    All (z,F))) by 
    A4,
    A9,
    FINSEQ_3: 29;
    
      hence thesis by
    A6,
    A12,
    FUNCT_1: 2;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:157
    
    
    
    
    
    Th157: (H 
    / (x,y)) 
    in  
    WFF  
    
    proof
    
      defpred
    
    P[
    ZF-formula] means ($1
    / (x,y)) 
    in  
    WFF ; 
    
      
    
      
    
    A1: for H st 
    P[H] holds
    P[(
    'not' H)] 
    
      proof
    
        let H;
    
        assume (H
    / (x,y)) 
    in  
    WFF ; 
    
        then
    
        reconsider F = (H
    / (x,y)) as 
    ZF-formula by 
    ZF_LANG: 4;
    
        (
    'not' F) 
    = (( 
    'not' H) 
    / (x,y)) by 
    Th156;
    
        hence thesis by
    ZF_LANG: 4;
    
      end;
    
      
    
      
    
    A2: for H1, H2 st 
    P[H1] &
    P[H2] holds
    P[(H1
    '&' H2)] 
    
      proof
    
        let H1, H2;
    
        assume (H1
    / (x,y)) 
    in  
    WFF & (H2 
    / (x,y)) 
    in  
    WFF ; 
    
        then
    
        reconsider F1 = (H1
    / (x,y)), F2 = (H2 
    / (x,y)) as 
    ZF-formula by 
    ZF_LANG: 4;
    
        (F1
    '&' F2) 
    = ((H1 
    '&' H2) 
    / (x,y)) by 
    Lm1;
    
        hence thesis by
    ZF_LANG: 4;
    
      end;
    
      
    
      
    
    A3: for H, z st 
    P[H] holds
    P[(
    All (z,H))] 
    
      proof
    
        let H, z;
    
        assume (H
    / (x,y)) 
    in  
    WFF ; 
    
        then
    
        reconsider F = (H
    / (x,y)) as 
    ZF-formula by 
    ZF_LANG: 4;
    
        z
    <> x or z 
    = x; 
    
        then
    
        consider s such that
    
        
    
    A4: s 
    = z & z 
    <> x or s 
    = y & z 
    = x; 
    
        (
    All (s,F)) 
    = (( 
    All (z,H)) 
    / (x,y)) by 
    A4,
    Lm2;
    
        hence thesis by
    ZF_LANG: 4;
    
      end;
    
      
    
      
    
    A5: for x1, x2 holds 
    P[(x1
    '=' x2)] & 
    P[(x1
    'in' x2)] 
    
      proof
    
        let x1, x2;
    
        (ex y1, y2 st ((x1
    '=' x2) 
    / (x,y)) 
    = (y1 
    '=' y2)) & ex z1, z2 st ((x1 
    'in' x2) 
    / (x,y)) 
    = (z1 
    'in' z2) by 
    Th153,
    Th155;
    
        hence thesis by
    ZF_LANG: 4;
    
      end;
    
      for H holds
    P[H] from
    ZFInduction(
    A5,
    A1,
    A2,
    A3);
    
      hence thesis;
    
    end;
    
    definition
    
      let H, x, y;
    
      :: original:
    /
    
      redefine
    
      func H
    
    / (x,y) -> 
    ZF-formula ; 
    
      coherence by
    Th157,
    ZF_LANG: 4;
    
    end
    
    theorem :: 
    
    ZF_LANG1:158
    
    
    
    
    
    Th158: (G1 
    '&' G2) 
    = ((H1 
    '&' H2) 
    / (x,y)) iff G1 
    = (H1 
    / (x,y)) & G2 
    = (H2 
    / (x,y)) 
    
    proof
    
      thus (G1
    '&' G2) 
    = ((H1 
    '&' H2) 
    / (x,y)) implies G1 
    = (H1 
    / (x,y)) & G2 
    = (H2 
    / (x,y)) 
    
      proof
    
        assume (G1
    '&' G2) 
    = ((H1 
    '&' H2) 
    / (x,y)); 
    
        then (G1
    '&' G2) 
    = ((H1 
    / (x,y)) 
    '&' (H2 
    / (x,y))) by 
    Lm1;
    
        hence thesis by
    ZF_LANG: 30;
    
      end;
    
      thus thesis by
    Lm1;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:159
    
    
    
    
    
    Th159: z 
    <> x implies (( 
    All (z,G)) 
    = (( 
    All (z,H)) 
    / (x,y)) iff G 
    = (H 
    / (x,y))) 
    
    proof
    
      assume
    
      
    
    A1: z 
    <> x; 
    
      thus (
    All (z,G)) 
    = (( 
    All (z,H)) 
    / (x,y)) implies G 
    = (H 
    / (x,y)) 
    
      proof
    
        assume (
    All (z,G)) 
    = (( 
    All (z,H)) 
    / (x,y)); 
    
        then (
    All (z,G)) 
    = ( 
    All (z,(H 
    / (x,y)))) by 
    A1,
    Lm2;
    
        hence thesis by
    ZF_LANG: 3;
    
      end;
    
      thus thesis by
    A1,
    Lm2;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:160
    
    
    
    
    
    Th160: ( 
    All (y,G)) 
    = (( 
    All (x,H)) 
    / (x,y)) iff G 
    = (H 
    / (x,y)) 
    
    proof
    
      thus (
    All (y,G)) 
    = (( 
    All (x,H)) 
    / (x,y)) implies G 
    = (H 
    / (x,y)) 
    
      proof
    
        assume (
    All (y,G)) 
    = (( 
    All (x,H)) 
    / (x,y)); 
    
        then (
    All (y,G)) 
    = ( 
    All (y,(H 
    / (x,y)))) by 
    Lm2;
    
        hence thesis by
    ZF_LANG: 3;
    
      end;
    
      thus thesis by
    Lm2;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:161
    
    
    
    
    
    Th161: (G1 
    'or' G2) 
    = ((H1 
    'or' H2) 
    / (x,y)) iff G1 
    = (H1 
    / (x,y)) & G2 
    = (H2 
    / (x,y)) 
    
    proof
    
      (
    'not' G1) 
    = (( 
    'not' H1) 
    / (x,y)) & ( 
    'not' G2) 
    = (( 
    'not' H2) 
    / (x,y)) iff (( 
    'not' G1) 
    '&' ( 
    'not' G2)) 
    = ((( 
    'not' H1) 
    '&' ( 
    'not' H2)) 
    / (x,y)) by 
    Th158;
    
      hence thesis by
    Th156;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:162
    
    
    
    
    
    Th162: (G1 
    => G2) 
    = ((H1 
    => H2) 
    / (x,y)) iff G1 
    = (H1 
    / (x,y)) & G2 
    = (H2 
    / (x,y)) 
    
    proof
    
      G1
    = (H1 
    / (x,y)) & ( 
    'not' G2) 
    = (( 
    'not' H2) 
    / (x,y)) iff (G1 
    '&' ( 
    'not' G2)) 
    = ((H1 
    '&' ( 
    'not' H2)) 
    / (x,y)) by 
    Th158;
    
      hence thesis by
    Th156;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:163
    
    
    
    
    
    Th163: (G1 
    <=> G2) 
    = ((H1 
    <=> H2) 
    / (x,y)) iff G1 
    = (H1 
    / (x,y)) & G2 
    = (H2 
    / (x,y)) 
    
    proof
    
      (G1
    <=> G2) 
    = ((H1 
    <=> H2) 
    / (x,y)) iff (G1 
    => G2) 
    = ((H1 
    => H2) 
    / (x,y)) & (G2 
    => G1) 
    = ((H2 
    => H1) 
    / (x,y)) by 
    Th158;
    
      hence thesis by
    Th162;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:164
    
    
    
    
    
    Th164: z 
    <> x implies (( 
    Ex (z,G)) 
    = (( 
    Ex (z,H)) 
    / (x,y)) iff G 
    = (H 
    / (x,y))) 
    
    proof
    
      assume z
    <> x; 
    
      then (
    'not' G) 
    = (( 
    'not' H) 
    / (x,y)) iff ( 
    All (z,( 
    'not' G))) 
    = (( 
    All (z,( 
    'not' H))) 
    / (x,y)) by 
    Th159;
    
      hence thesis by
    Th156;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:165
    
    
    
    
    
    Th165: ( 
    Ex (y,G)) 
    = (( 
    Ex (x,H)) 
    / (x,y)) iff G 
    = (H 
    / (x,y)) 
    
    proof
    
      (
    'not' G) 
    = (( 
    'not' H) 
    / (x,y)) iff ( 
    All (y,( 
    'not' G))) 
    = (( 
    All (x,( 
    'not' H))) 
    / (x,y)) by 
    Th160;
    
      hence thesis by
    Th156;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:166
    
    H is
    being_equality iff (H 
    / (x,y)) is 
    being_equality
    
    proof
    
      thus H is
    being_equality implies (H 
    / (x,y)) is 
    being_equality by 
    Th153;
    
      assume (H
    / (x,y)) is 
    being_equality;
    
      then
    
      
    
    A1: ((H 
    / (x,y)) 
    . 1) 
    =  
    0 by 
    ZF_LANG: 18;
    
      3
    <= ( 
    len H) by 
    ZF_LANG: 13;
    
      then 1
    <= ( 
    len H) by 
    XXREAL_0: 2;
    
      then
    
      
    
    A2: 1 
    in ( 
    dom H) by 
    FINSEQ_3: 25;
    
      y
    <>  
    0 by 
    Th135;
    
      then (H
    . 1) 
    <> x by 
    A1,
    A2,
    Def3;
    
      then
    0  
    = (H 
    . 1) by 
    A1,
    A2,
    Def3;
    
      hence thesis by
    ZF_LANG: 24;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:167
    
    H is
    being_membership iff (H 
    / (x,y)) is 
    being_membership
    
    proof
    
      thus H is
    being_membership implies (H 
    / (x,y)) is 
    being_membership by 
    Th155;
    
      assume (H
    / (x,y)) is 
    being_membership;
    
      then
    
      
    
    A1: ((H 
    / (x,y)) 
    . 1) 
    = 1 by 
    ZF_LANG: 19;
    
      3
    <= ( 
    len H) by 
    ZF_LANG: 13;
    
      then 1
    <= ( 
    len H) by 
    XXREAL_0: 2;
    
      then
    
      
    
    A2: 1 
    in ( 
    dom H) by 
    FINSEQ_3: 25;
    
      y
    <> 1 by 
    Th135;
    
      then (H
    . 1) 
    <> x by 
    A1,
    A2,
    Def3;
    
      then 1
    = (H 
    . 1) by 
    A1,
    A2,
    Def3;
    
      hence thesis by
    ZF_LANG: 25;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:168
    
    
    
    
    
    Th168: H is 
    negative iff (H 
    / (x,y)) is 
    negative
    
    proof
    
      thus H is
    negative implies (H 
    / (x,y)) is 
    negative
    
      proof
    
        given H1 such that
    
        
    
    A1: H 
    = ( 
    'not' H1); 
    
        (H
    / (x,y)) 
    = ( 
    'not' (H1 
    / (x,y))) by 
    A1,
    Th156;
    
        hence thesis;
    
      end;
    
      assume (H
    / (x,y)) is 
    negative;
    
      then
    
      
    
    A2: ((H 
    / (x,y)) 
    . 1) 
    = 2 by 
    ZF_LANG: 20;
    
      3
    <= ( 
    len H) by 
    ZF_LANG: 13;
    
      then 1
    <= ( 
    len H) by 
    XXREAL_0: 2;
    
      then
    
      
    
    A3: 1 
    in ( 
    dom H) by 
    FINSEQ_3: 25;
    
      y
    <> 2 by 
    Th135;
    
      then (H
    . 1) 
    <> x by 
    A2,
    A3,
    Def3;
    
      then 2
    = (H 
    . 1) by 
    A2,
    A3,
    Def3;
    
      hence thesis by
    ZF_LANG: 26;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:169
    
    
    
    
    
    Th169: H is 
    conjunctive iff (H 
    / (x,y)) is 
    conjunctive
    
    proof
    
      thus H is
    conjunctive implies (H 
    / (x,y)) is 
    conjunctive
    
      proof
    
        given H1, H2 such that
    
        
    
    A1: H 
    = (H1 
    '&' H2); 
    
        (H
    / (x,y)) 
    = ((H1 
    / (x,y)) 
    '&' (H2 
    / (x,y))) by 
    A1,
    Th158;
    
        hence thesis;
    
      end;
    
      assume (H
    / (x,y)) is 
    conjunctive;
    
      then
    
      
    
    A2: ((H 
    / (x,y)) 
    . 1) 
    = 3 by 
    ZF_LANG: 21;
    
      3
    <= ( 
    len H) by 
    ZF_LANG: 13;
    
      then 1
    <= ( 
    len H) by 
    XXREAL_0: 2;
    
      then
    
      
    
    A3: 1 
    in ( 
    dom H) by 
    FINSEQ_3: 25;
    
      y
    <> 3 by 
    Th135;
    
      then (H
    . 1) 
    <> x by 
    A2,
    A3,
    Def3;
    
      then 3
    = (H 
    . 1) by 
    A2,
    A3,
    Def3;
    
      hence thesis by
    ZF_LANG: 27;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:170
    
    
    
    
    
    Th170: H is 
    universal iff (H 
    / (x,y)) is 
    universal
    
    proof
    
      thus H is
    universal implies (H 
    / (x,y)) is 
    universal
    
      proof
    
        given z, H1 such that
    
        
    
    A1: H 
    = ( 
    All (z,H1)); 
    
        z
    = x or z 
    <> x; 
    
        then
    
        consider s such that
    
        
    
    A2: z 
    = x & s 
    = y or z 
    <> x & s 
    = z; 
    
        (H
    / (x,y)) 
    = ( 
    All (s,(H1 
    / (x,y)))) by 
    A1,
    A2,
    Th159,
    Th160;
    
        hence thesis;
    
      end;
    
      assume (H
    / (x,y)) is 
    universal;
    
      then
    
      
    
    A3: ((H 
    / (x,y)) 
    . 1) 
    = 4 by 
    ZF_LANG: 22;
    
      3
    <= ( 
    len H) by 
    ZF_LANG: 13;
    
      then 1
    <= ( 
    len H) by 
    XXREAL_0: 2;
    
      then
    
      
    
    A4: 1 
    in ( 
    dom H) by 
    FINSEQ_3: 25;
    
      y
    <> 4 by 
    Th135;
    
      then (H
    . 1) 
    <> x by 
    A3,
    A4,
    Def3;
    
      then 4
    = (H 
    . 1) by 
    A3,
    A4,
    Def3;
    
      hence thesis by
    ZF_LANG: 28;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:171
    
    H is
    negative implies ( 
    the_argument_of (H 
    / (x,y))) 
    = (( 
    the_argument_of H) 
    / (x,y)) 
    
    proof
    
      assume
    
      
    
    A1: H is 
    negative;
    
      then (H
    / (x,y)) is 
    negative by 
    Th168;
    
      then
    
      
    
    A2: (H 
    / (x,y)) 
    = ( 
    'not' ( 
    the_argument_of (H 
    / (x,y)))) by 
    ZF_LANG:def 30;
    
      H
    = ( 
    'not' ( 
    the_argument_of H)) by 
    A1,
    ZF_LANG:def 30;
    
      hence thesis by
    A2,
    Th156;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:172
    
    H is
    conjunctive implies ( 
    the_left_argument_of (H 
    / (x,y))) 
    = (( 
    the_left_argument_of H) 
    / (x,y)) & ( 
    the_right_argument_of (H 
    / (x,y))) 
    = (( 
    the_right_argument_of H) 
    / (x,y)) 
    
    proof
    
      assume
    
      
    
    A1: H is 
    conjunctive;
    
      then (H
    / (x,y)) is 
    conjunctive by 
    Th169;
    
      then
    
      
    
    A2: (H 
    / (x,y)) 
    = (( 
    the_left_argument_of (H 
    / (x,y))) 
    '&' ( 
    the_right_argument_of (H 
    / (x,y)))) by 
    ZF_LANG: 40;
    
      H
    = (( 
    the_left_argument_of H) 
    '&' ( 
    the_right_argument_of H)) by 
    A1,
    ZF_LANG: 40;
    
      hence thesis by
    A2,
    Th158;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:173
    
    H is
    universal implies ( 
    the_scope_of (H 
    / (x,y))) 
    = (( 
    the_scope_of H) 
    / (x,y)) & (( 
    bound_in H) 
    = x implies ( 
    bound_in (H 
    / (x,y))) 
    = y) & (( 
    bound_in H) 
    <> x implies ( 
    bound_in (H 
    / (x,y))) 
    = ( 
    bound_in H)) 
    
    proof
    
      assume
    
      
    
    A1: H is 
    universal;
    
      then (H
    / (x,y)) is 
    universal by 
    Th170;
    
      then
    
      
    
    A2: (H 
    / (x,y)) 
    = ( 
    All (( 
    bound_in (H 
    / (x,y))),( 
    the_scope_of (H 
    / (x,y))))) by 
    ZF_LANG: 44;
    
      
    
      
    
    A3: H 
    = ( 
    All (( 
    bound_in H),( 
    the_scope_of H))) by 
    A1,
    ZF_LANG: 44;
    
      then
    
      
    
    A4: ( 
    bound_in H) 
    <> x implies (H 
    / (x,y)) 
    = ( 
    All (( 
    bound_in H),(( 
    the_scope_of H) 
    / (x,y)))) by 
    Th159;
    
      (
    bound_in H) 
    = x implies (H 
    / (x,y)) 
    = ( 
    All (y,(( 
    the_scope_of H) 
    / (x,y)))) by 
    A3,
    Th160;
    
      hence thesis by
    A2,
    A4,
    ZF_LANG: 3;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:174
    
    
    
    
    
    Th174: H is 
    disjunctive iff (H 
    / (x,y)) is 
    disjunctive
    
    proof
    
      set G = (H
    / (x,y)); 
    
      thus H is
    disjunctive implies (H 
    / (x,y)) is 
    disjunctive
    
      proof
    
        given H1, H2 such that
    
        
    
    A1: H 
    = (H1 
    'or' H2); 
    
        (H
    / (x,y)) 
    = ((H1 
    / (x,y)) 
    'or' (H2 
    / (x,y))) by 
    A1,
    Th161;
    
        hence thesis;
    
      end;
    
      given G1, G2 such that
    
      
    
    A2: G 
    = (G1 
    'or' G2); 
    
      G is
    negative by 
    A2;
    
      then H is
    negative by 
    Th168;
    
      then
    
      consider H9 be
    ZF-formula such that 
    
      
    
    A3: H 
    = ( 
    'not' H9); 
    
      
    
      
    
    A4: (( 
    'not' G1) 
    '&' ( 
    'not' G2)) 
    = (H9 
    / (x,y)) by 
    A2,
    A3,
    Th156;
    
      then (H9
    / (x,y)) is 
    conjunctive;
    
      then H9 is
    conjunctive by 
    Th169;
    
      then
    
      consider H1, H2 such that
    
      
    
    A5: H9 
    = (H1 
    '&' H2); 
    
      (
    'not' G2) 
    = (H2 
    / (x,y)) by 
    A4,
    A5,
    Th158;
    
      then (H2
    / (x,y)) is 
    negative;
    
      then H2 is
    negative by 
    Th168;
    
      then
    
      consider p2 such that
    
      
    
    A6: H2 
    = ( 
    'not' p2); 
    
      (
    'not' G1) 
    = (H1 
    / (x,y)) by 
    A4,
    A5,
    Th158;
    
      then (H1
    / (x,y)) is 
    negative;
    
      then H1 is
    negative by 
    Th168;
    
      then
    
      consider p1 such that
    
      
    
    A7: H1 
    = ( 
    'not' p1); 
    
      H
    = (p1 
    'or' p2) by 
    A3,
    A5,
    A7,
    A6;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:175
    
    
    
    
    
    Th175: H is 
    conditional iff (H 
    / (x,y)) is 
    conditional
    
    proof
    
      set G = (H
    / (x,y)); 
    
      thus H is
    conditional implies (H 
    / (x,y)) is 
    conditional
    
      proof
    
        given H1, H2 such that
    
        
    
    A1: H 
    = (H1 
    => H2); 
    
        (H
    / (x,y)) 
    = ((H1 
    / (x,y)) 
    => (H2 
    / (x,y))) by 
    A1,
    Th162;
    
        hence thesis;
    
      end;
    
      given G1, G2 such that
    
      
    
    A2: G 
    = (G1 
    => G2); 
    
      G is
    negative by 
    A2;
    
      then H is
    negative by 
    Th168;
    
      then
    
      consider H9 be
    ZF-formula such that 
    
      
    
    A3: H 
    = ( 
    'not' H9); 
    
      
    
      
    
    A4: (G1 
    '&' ( 
    'not' G2)) 
    = (H9 
    / (x,y)) by 
    A2,
    A3,
    Th156;
    
      then (H9
    / (x,y)) is 
    conjunctive;
    
      then H9 is
    conjunctive by 
    Th169;
    
      then
    
      consider H1, H2 such that
    
      
    
    A5: H9 
    = (H1 
    '&' H2); 
    
      (
    'not' G2) 
    = (H2 
    / (x,y)) by 
    A4,
    A5,
    Th158;
    
      then (H2
    / (x,y)) is 
    negative;
    
      then H2 is
    negative by 
    Th168;
    
      then
    
      consider p2 such that
    
      
    
    A6: H2 
    = ( 
    'not' p2); 
    
      H
    = (H1 
    => p2) by 
    A3,
    A5,
    A6;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:176
    
    
    
    
    
    Th176: H is 
    biconditional implies (H 
    / (x,y)) is 
    biconditional
    
    proof
    
      given H1, H2 such that
    
      
    
    A1: H 
    = (H1 
    <=> H2); 
    
      (H
    / (x,y)) 
    = ((H1 
    / (x,y)) 
    <=> (H2 
    / (x,y))) by 
    A1,
    Th163;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:177
    
    
    
    
    
    Th177: H is 
    existential iff (H 
    / (x,y)) is 
    existential
    
    proof
    
      thus H is
    existential implies (H 
    / (x,y)) is 
    existential
    
      proof
    
        given z, H1 such that
    
        
    
    A1: H 
    = ( 
    Ex (z,H1)); 
    
        z
    = x or z 
    <> x; 
    
        then
    
        consider s such that
    
        
    
    A2: z 
    = x & s 
    = y or z 
    <> x & s 
    = z; 
    
        (H
    / (x,y)) 
    = ( 
    Ex (s,(H1 
    / (x,y)))) by 
    A1,
    A2,
    Th164,
    Th165;
    
        hence thesis;
    
      end;
    
      given z, G such that
    
      
    
    A3: (H 
    / (x,y)) 
    = ( 
    Ex (z,G)); 
    
      (H
    / (x,y)) is 
    negative by 
    A3;
    
      then H is
    negative by 
    Th168;
    
      then
    
      consider H1 such that
    
      
    
    A4: H 
    = ( 
    'not' H1); 
    
      (
    bound_in H1) 
    = x or ( 
    bound_in H1) 
    <> x; 
    
      then
    
      consider s such that
    
      
    
    A5: ( 
    bound_in H1) 
    = x & s 
    = y or ( 
    bound_in H1) 
    <> x & s 
    = ( 
    bound_in H1); 
    
      
    
      
    
    A6: (H1 
    / (x,y)) 
    = ( 
    All (z,( 
    'not' G))) by 
    A3,
    A4,
    Th156;
    
      then (H1
    / (x,y)) is 
    universal;
    
      then H1 is
    universal by 
    Th170;
    
      then
    
      
    
    A7: H1 
    = ( 
    All (( 
    bound_in H1),( 
    the_scope_of H1))) by 
    ZF_LANG: 44;
    
      then (
    All (z,( 
    'not' G))) 
    = ( 
    All (s,(( 
    the_scope_of H1) 
    / (x,y)))) by 
    A6,
    A5,
    Th159,
    Th160;
    
      then (
    'not' G) 
    = (( 
    the_scope_of H1) 
    / (x,y)) by 
    ZF_LANG: 3;
    
      then ((
    the_scope_of H1) 
    / (x,y)) is 
    negative;
    
      then (
    the_scope_of H1) is 
    negative by 
    Th168;
    
      then H
    = ( 
    Ex (( 
    bound_in H1),( 
    the_argument_of ( 
    the_scope_of H1)))) by 
    A4,
    A7,
    ZF_LANG:def 30;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:178
    
    H is
    disjunctive implies ( 
    the_left_argument_of (H 
    / (x,y))) 
    = (( 
    the_left_argument_of H) 
    / (x,y)) & ( 
    the_right_argument_of (H 
    / (x,y))) 
    = (( 
    the_right_argument_of H) 
    / (x,y)) 
    
    proof
    
      assume
    
      
    
    A1: H is 
    disjunctive;
    
      then (H
    / (x,y)) is 
    disjunctive by 
    Th174;
    
      then
    
      
    
    A2: (H 
    / (x,y)) 
    = (( 
    the_left_argument_of (H 
    / (x,y))) 
    'or' ( 
    the_right_argument_of (H 
    / (x,y)))) by 
    ZF_LANG: 41;
    
      H
    = (( 
    the_left_argument_of H) 
    'or' ( 
    the_right_argument_of H)) by 
    A1,
    ZF_LANG: 41;
    
      hence thesis by
    A2,
    Th161;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:179
    
    H is
    conditional implies ( 
    the_antecedent_of (H 
    / (x,y))) 
    = (( 
    the_antecedent_of H) 
    / (x,y)) & ( 
    the_consequent_of (H 
    / (x,y))) 
    = (( 
    the_consequent_of H) 
    / (x,y)) 
    
    proof
    
      assume
    
      
    
    A1: H is 
    conditional;
    
      then (H
    / (x,y)) is 
    conditional by 
    Th175;
    
      then
    
      
    
    A2: (H 
    / (x,y)) 
    = (( 
    the_antecedent_of (H 
    / (x,y))) 
    => ( 
    the_consequent_of (H 
    / (x,y)))) by 
    ZF_LANG: 47;
    
      H
    = (( 
    the_antecedent_of H) 
    => ( 
    the_consequent_of H)) by 
    A1,
    ZF_LANG: 47;
    
      hence thesis by
    A2,
    Th162;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:180
    
    H is
    biconditional implies ( 
    the_left_side_of (H 
    / (x,y))) 
    = (( 
    the_left_side_of H) 
    / (x,y)) & ( 
    the_right_side_of (H 
    / (x,y))) 
    = (( 
    the_right_side_of H) 
    / (x,y)) 
    
    proof
    
      assume H is
    biconditional;
    
      then H
    = (( 
    the_left_side_of H) 
    <=> ( 
    the_right_side_of H)) & (H 
    / (x,y)) 
    = (( 
    the_left_side_of (H 
    / (x,y))) 
    <=> ( 
    the_right_side_of (H 
    / (x,y)))) by 
    Th176,
    ZF_LANG: 49;
    
      hence thesis by
    Th163;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:181
    
    H is
    existential implies ( 
    the_scope_of (H 
    / (x,y))) 
    = (( 
    the_scope_of H) 
    / (x,y)) & (( 
    bound_in H) 
    = x implies ( 
    bound_in (H 
    / (x,y))) 
    = y) & (( 
    bound_in H) 
    <> x implies ( 
    bound_in (H 
    / (x,y))) 
    = ( 
    bound_in H)) 
    
    proof
    
      assume
    
      
    
    A1: H is 
    existential;
    
      then (H
    / (x,y)) is 
    existential by 
    Th177;
    
      then
    
      
    
    A2: (H 
    / (x,y)) 
    = ( 
    Ex (( 
    bound_in (H 
    / (x,y))),( 
    the_scope_of (H 
    / (x,y))))) by 
    ZF_LANG: 45;
    
      
    
      
    
    A3: H 
    = ( 
    Ex (( 
    bound_in H),( 
    the_scope_of H))) by 
    A1,
    ZF_LANG: 45;
    
      then
    
      
    
    A4: ( 
    bound_in H) 
    <> x implies (H 
    / (x,y)) 
    = ( 
    Ex (( 
    bound_in H),(( 
    the_scope_of H) 
    / (x,y)))) by 
    Th164;
    
      (
    bound_in H) 
    = x implies (H 
    / (x,y)) 
    = ( 
    Ex (y,(( 
    the_scope_of H) 
    / (x,y)))) by 
    A3,
    Th165;
    
      hence thesis by
    A2,
    A4,
    ZF_LANG: 34;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:182
    
    
    
    
    
    Th182: not x 
    in ( 
    variables_in H) implies (H 
    / (x,y)) 
    = H 
    
    proof
    
      assume
    
      
    
    A1: not x 
    in ( 
    variables_in H); 
    
      
    
      
    
    A2: not x 
    in  
    {
    0 , 1, 2, 3, 4} by 
    Th136;
    
      
    
    A3: 
    
      now
    
        let a be
    object;
    
        assume
    
        
    
    A4: a 
    in ( 
    dom H); 
    
        then
    
        
    
    A5: (H 
    . a) 
    in ( 
    rng H) by 
    FUNCT_1:def 3;
    
        (H
    . a) 
    <> x implies ((H 
    / (x,y)) 
    . a) 
    = (H 
    . a) by 
    A4,
    Def3;
    
        hence ((H
    / (x,y)) 
    . a) 
    = (H 
    . a) by 
    A1,
    A2,
    A5,
    XBOOLE_0:def 5;
    
      end;
    
      (
    dom H) 
    = ( 
    dom (H 
    / (x,y))) by 
    Def3;
    
      hence thesis by
    A3,
    FUNCT_1: 2;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:183
    
    (H
    / (x,x)) 
    = H 
    
    proof
    
      
    
    A1: 
    
      now
    
        let a be
    object;
    
        assume
    
        
    
    A2: a 
    in ( 
    dom H); 
    
        then (H
    . a) 
    = x implies ((H 
    / (x,x)) 
    . a) 
    = x by 
    Def3;
    
        hence (H
    . a) 
    = ((H 
    / (x,x)) 
    . a) by 
    A2,
    Def3;
    
      end;
    
      (
    dom (H 
    / (x,x))) 
    = ( 
    dom H) by 
    Def3;
    
      hence thesis by
    A1,
    FUNCT_1: 2;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:184
    
    
    
    
    
    Th184: x 
    <> y implies not x 
    in ( 
    variables_in (H 
    / (x,y))) 
    
    proof
    
      assume
    
      
    
    A1: x 
    <> y; 
    
      assume x
    in ( 
    variables_in (H 
    / (x,y))); 
    
      then
    
      consider a be
    object such that 
    
      
    
    A2: a 
    in ( 
    dom (H 
    / (x,y))) and 
    
      
    
    A3: x 
    = ((H 
    / (x,y)) 
    . a) by 
    FUNCT_1:def 3;
    
      
    
      
    
    A4: ( 
    dom (H 
    / (x,y))) 
    = ( 
    dom H) by 
    Def3;
    
      then (H
    . a) 
    = x implies ((H 
    / (x,y)) 
    . a) 
    = y by 
    A2,
    Def3;
    
      hence contradiction by
    A1,
    A2,
    A3,
    A4,
    Def3;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:185
    
    x
    in ( 
    variables_in H) implies y 
    in ( 
    variables_in (H 
    / (x,y))) 
    
    proof
    
      assume x
    in ( 
    variables_in H); 
    
      then
    
      consider a be
    object such that 
    
      
    
    A1: a 
    in ( 
    dom H) and 
    
      
    
    A2: x 
    = (H 
    . a) by 
    FUNCT_1:def 3;
    
      
    
      
    
    A3: ( 
    dom (H 
    / (x,y))) 
    = ( 
    dom H) by 
    Def3;
    
      
    
      
    
    A4: not y 
    in  
    {
    0 , 1, 2, 3, 4} by 
    Th136;
    
      ((H
    / (x,y)) 
    . a) 
    = y by 
    A1,
    A2,
    Def3;
    
      then y
    in ( 
    rng (H 
    / (x,y))) by 
    A1,
    A3,
    FUNCT_1:def 3;
    
      hence thesis by
    A4,
    XBOOLE_0:def 5;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:186
    
    x
    <> y implies ((H 
    / (x,y)) 
    / (x,z)) 
    = (H 
    / (x,y)) 
    
    proof
    
      assume x
    <> y; 
    
      then not x
    in ( 
    variables_in (H 
    / (x,y))) by 
    Th184;
    
      hence thesis by
    Th182;
    
    end;
    
    theorem :: 
    
    ZF_LANG1:187
    
    (
    variables_in (H 
    / (x,y))) 
    c= ((( 
    variables_in H) 
    \  
    {x})
    \/  
    {y})
    
    proof
    
      let a be
    object;
    
      assume
    
      
    
    A1: a 
    in ( 
    variables_in (H 
    / (x,y))); 
    
      then
    
      reconsider z = a as
    Variable;
    
      consider b be
    object such that 
    
      
    
    A2: b 
    in ( 
    dom (H 
    / (x,y))) and 
    
      
    
    A3: z 
    = ((H 
    / (x,y)) 
    . b) by 
    A1,
    FUNCT_1:def 3;
    
      
    
      
    
    A4: ( 
    dom (H 
    / (x,y))) 
    = ( 
    dom H) by 
    Def3;
    
      then
    
      
    
    A5: (H 
    . b) 
    <> x implies z 
    = (H 
    . b) by 
    A2,
    A3,
    Def3;
    
      (H
    . b) 
    = x implies z 
    = y by 
    A2,
    A3,
    A4,
    Def3;
    
      then z
    in  
    {y} or z
    in ( 
    rng H) & not z 
    in  
    {
    0 , 1, 2, 3, 4} & not z 
    in  
    {x} by
    A2,
    A4,
    A5,
    Th136,
    FUNCT_1:def 3,
    TARSKI:def 1;
    
      then z
    in  
    {y} or z
    in (( 
    rng H) 
    \  
    {
    0 , 1, 2, 3, 4}) & not z 
    in  
    {x} by
    XBOOLE_0:def 5;
    
      then z
    in  
    {y} or z
    in (( 
    variables_in H) 
    \  
    {x}) by
    XBOOLE_0:def 5;
    
      hence thesis by
    XBOOLE_0:def 3;
    
    end;