reserve i,j,n,n1,n2,m,k,l,u for Nat,
        i1,i2,i3,i4,i5,i6 for Element of n,
        p,q for n-element XFinSequence of NAT,
        a,b,c,d,e,f for Integer;

theorem
  for n being Nat
    for A being Subset of n -xtuples_of NAT holds
  A is recursively_enumerable implies A is diophantine
proof
  let n be Nat;
  let A be Subset of n -xtuples_of NAT;
  assume A is recursively_enumerable;
  then consider m be Nat, P be INT -valued Polynomial of 2+n+m,F_Real
    such that
A1: for X being n -element XFinSequence of NAT holds X in A iff
  ex x being Element of NAT st
    for z being Element of NAT st z <= x
      ex Y being m-element XFinSequence of NAT st
        (for i be object st i in dom Y holds Y.i <= x) &
           eval(P,@(<%z,x%>^X^Y)) = 0;
  set X = {X where X is n-element XFinSequence of NAT:
      ex x being Element of NAT st
         for z being Element of NAT st z <= x
         ex Y being m-element XFinSequence of NAT st
           (for i being Nat st i in m holds Y.i <= x) &
           eval(P,@(<%z,x%>^X^Y)) = 0};
A2: A c= X
  proof
    let a be object such that
A3:    a in A;
    reconsider a as n-element XFinSequence of NAT by A3,HILB10_2:def 5;
    consider x be Element of NAT such that
A4:   for z be Element of NAT st z <= x
        ex Y being m-element XFinSequence of NAT st
          (for i be object st i in dom Y holds Y.i <= x) &
             eval(P,@(<%z,x%>^a^Y)) = 0 by A3,A1;
    now let z be Element of NAT such that
A5:     z <= x;
      consider Y be m-element XFinSequence of NAT such that
A6:     (for i be object st i in dom Y holds Y.i <= x) &
        eval(P,@(<%z,x%>^a^Y)) = 0 by A4,A5;
      take Y;
      len Y=m by CARD_1:def 7;
      hence (for i being Nat st i in m holds Y.i <= x)
        & eval(P,@(<%z,x%>^a^Y)) = 0 by A6;
     end;
     hence thesis;
  end;
  X c= A
  proof
    let b be object such that
A7:     b in X;
    consider X be n-element XFinSequence of NAT such that
A8:   b=X &
      ex x being Element of NAT st
        for z being Element of NAT st z <= x
        ex Y being m-element XFinSequence of NAT st
          (for i being Nat st i in m holds Y.i <= x) &
          eval(P,@(<%z,x%>^X^Y)) = 0 by A7;
    consider x be Element of NAT such that
      A9: for z being Element of NAT st z <= x
        ex Y being m-element XFinSequence of NAT st
        (for i being Nat st i in m holds Y.i <= x) &
        eval(P,@(<%z,x%>^X^Y)) = 0 by A8;
    now let z be Element of NAT such that A10: z <= x;
      consider Y being m-element XFinSequence of NAT such that
        A11: (for i being Nat st i in m holds Y.i <= x) &
        eval(P,@(<%z,x%>^X^Y)) = 0 by A9,A10;
      take Y;
      m=len Y by CARD_1:def 7;
      hence (for i be object st i in dom Y holds Y.i <= x) &
        eval(P,@(<%z,x%>^X^Y)) = 0 by A11;
    end;
    hence thesis by A1,A8;
  end;
  then X=A by A2,XBOOLE_0:def 10;
  hence thesis by Th19;
end;
