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;
reserve M for non empty set,
  m,m9 for Element of M,
  v,v9 for Function of VAR,M;

theorem
  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,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;
