reserve x,y,z,x1,x2,x3,x4,y1,y2,s for Variable,
  M for non empty set,
  a,b for set,
  i,j,k for Element of NAT,
  m,m1,m2,m3,m4 for Element of M,
  H,H1,H2 for ZF-formula,
  v,v9,v1,v2 for Function of VAR,M;
reserve F,G for Function;

theorem
  {x.0,x.1,x.2} misses Free H1 & M,v |= All(x.3,Ex(x.0,All(x.4,H1 <=> x.
4 '=' x.0))) & {x.0,x.1,x.2} misses Free H2 & M,v |= All(x.3,Ex(x.0,All(x.4,H2
  <=> x.4 '=' x.0))) & {x.0,x.1,x.2} misses Free H & not x.4 in Free H implies
for FG be Function st dom FG = M & for m holds (M,v/(x.3,m) |= H implies FG.m =
def_func'(H1,v).m) & (M,v/(x.3,m) |= 'not' H implies FG.m = def_func'(H2,v).m)
  holds FG is_parametrically_definable_in M
proof
  assume that
A1: {x.0,x.1,x.2} misses Free H1 and
A2: M,v |= All(x.3,Ex(x.0,All(x.4,H1 <=> x.4 '=' x.0))) and
A3: {x.0,x.1,x.2} misses Free H2 and
A4: M,v |= All(x.3,Ex(x.0,All(x.4,H2 <=> x.4 '=' x.0))) and
A5: {x.0,x.1,x.2} misses Free H and
A6: not x.4 in Free H;
  let FG be Function such that
A7: dom FG = M and
A8: (M,v/(x.3,m) |= H implies FG.m = def_func'(H1,v).m) & (M,v/(x.3,m)
  |= 'not' H implies FG.m = def_func'(H2,v).m);
  rng FG c= M
  proof
    let a be object;
    assume a in rng FG;
    then consider b being object such that
A9: b in M and
A10: a = FG.b by A7,FUNCT_1:def 3;
    reconsider b as Element of M by A9;
    M,v/(x.3,b) |= H or M,v/(x.3,b) |= 'not' H by ZF_MODEL:14;
    then a = def_func'(H1,v).b or a = def_func'(H2,v).b by A8,A10;
    hence thesis;
  end;
  then reconsider f = FG as Function of M,M by A7,FUNCT_2:def 1,RELSET_1:4;
A11: x.0 in {x.0,x.1,x.2} by ENUMSET1:def 1;
  then
A12: not x.0 in Free H1 by A1,XBOOLE_0:3;
  take p = H '&' H1 'or' 'not' H '&' H2, v;
A13: Free 'not' H = Free H by ZF_LANG1:60;
A14: now
    let x be set;
A15: Free ('not' H '&' H2) = Free 'not' H \/ Free H2 by ZF_LANG1:61;
    assume x in Free p;
    then x in Free (H '&' H1) \/ Free ('not' H '&' H2) by ZF_LANG1:63;
    then
A16: x in Free (H '&' H1) or x in Free ('not' H '&' H2) by XBOOLE_0:def 3;
    Free (H '&' H1) = Free H \/ Free H1 by ZF_LANG1:61;
    hence x in Free H or x in Free H1 or x in Free H2 by A13,A16,A15,
XBOOLE_0:def 3;
  end;
  now
    let a be object;
    assume that
A17: a in {x.0,x.1,x.2} and
A18: a in Free p;
    a in Free H or a in Free H1 or a in Free H2 by A14,A18;
    hence contradiction by A1,A3,A5,A17,XBOOLE_0:3;
  end;
  hence {x.0,x.1,x.2} misses Free p by XBOOLE_0:3;
A19: not x.0 in Free H2 by A3,A11,XBOOLE_0:3;
  not x.0 in Free H by A5,A11,XBOOLE_0:3;
  then
A20: not x.0 in Free p by A14,A12,A19;
  now
    let m3;
    consider r1 being Element of M such that
A21: M,v/(x.3,m3)/(x.4,m4) |= H1 iff m4 = r1 by A2,A12,Th19;
    consider r2 being Element of M such that
A22: M,v/(x.3,m3)/(x.4,m4) |= H2 iff m4 = r2 by A4,A19,Th19;
    M,v/(x.3,m3) |= H & not M,v/(x.3,m3) |= 'not' H or not M,v/(x.3,m3)
    |= H & M,v/(x.3,m3) |= 'not' H by ZF_MODEL:14;
    then consider r being Element of M such that
A23: M,v/(x.3,m3) |= H & not M,v/(x.3,m3) |= 'not' H & r = r1 or not M
    ,v/(x.3,m3) |= H & M,v/(x.3,m3) |= 'not' H & r = r2;
    take r;
    let m4;
    thus M,v/(x.3,m3)/(x.4,m4) |= p implies m4 = r
    proof
      assume M,v/(x.3,m3)/(x.4,m4) |= p;
      then
      M,v/(x.3,m3)/(x.4,m4) |= H '&' H1 or M,v/(x.3,m3)/(x.4,m4) |= 'not'
      H '&' H2 by ZF_MODEL:17;
      then
      M,v/(x.3,m3)/(x.4,m4) |= H & M,v/(x.3,m3)/(x.4,m4) |= H1 or M,v/(x.
      3,m3)/(x.4,m4) |= 'not' H & M,v/(x.3,m3)/(x.4,m4) |= H2 by ZF_MODEL:15;
      hence thesis by A6,A13,A21,A22,A23,Th9;
    end;
    assume m4 = r;
    then
    M,v/(x.3,m3)/(x.4,m4) |= H & M,v/(x.3,m3)/(x.4,m4) |= H1 or M,v/(x.3,
m3)/(x.4,m4) |= 'not' H & M,v/(x.3,m3)/(x.4,m4) |= H2 by A6,A13,A21,A22,A23,Th9
;
    then
    M,v/(x.3,m3)/(x.4,m4) |= H '&' H1 or M,v/(x.3,m3)/(x.4,m4) |= 'not' H
    '&' H2 by ZF_MODEL:15;
    hence M,v/(x.3,m3)/(x.4,m4) |= p by ZF_MODEL:17;
  end;
  hence
A24: M,v |= All(x.3,Ex(x.0,All(x.4,p <=> x.4 '=' x.0))) by A20,Th19;
  now
    let a be Element of M;
    set r = def_func'(p,v).a;
    M,v/(x.3,a)/(x.4,r) |= p by A20,A24,Th10;
    then
    M,v/(x.3,a)/(x.4,r) |= H '&' H1 or M,v/(x.3,a)/(x.4,r) |= 'not' H '&'
    H2 by ZF_MODEL:17;
    then
    M,v/(x.3,a)/(x.4,r) |= H & M,v/(x.3,a)/(x.4,r) |= H1 or M,v/(x.3,a)/(
    x.4,r) |= 'not' H & M,v/(x.3,a)/(x.4,r) |= H2 by ZF_MODEL:15;
    then M,v/(x.3,a) |= H & r = def_func'(H1,v).a or M,v/(x.3,a) |= 'not' H &
    r = def_func'(H2,v).a by A2,A4,A6,A13,A12,A19,Th9,Th10;
    hence f.a = def_func'(p,v).a by A8;
  end;
  hence thesis by FUNCT_2:63;
end;
