reserve i,j,n,n1,n2,m,k,l,u for Nat,
        r,r1,r2 for Real,
        x,y for Integer,
        a,b for non trivial Nat,
        F for XFinSequence,
        cF,cF1,cF2 for complex-valued XFinSequence,
        c,c1,c2 for Complex;

theorem Th18:
   for x,y being Nat holds
     y = x! iff
  ex n,y1,y2,y3 being Nat st
     y1 = (2*x) |^(x+1) &
     y2 = n|^x &
     y3 = n choose x &
     n > y1 &
     y = [\y2/y3/]
proof
   let x,y be Nat;
   thus y=x! implies
     ex n,y1,y2,y3 be Nat st y1=(2*x) |^(x+1) & y2 = n|^x &
     y3 = n choose x & n > y1 & y=[\y2/y3/]
   proof
     assume
A1:    y =x!;
     per cases;
     suppose
A2:      x=0;
       take n=1,y1=0,y2=1,y3=1;
       thus y1 = (2*x)|^(x+1) & y2 = n|^x & y3 = n choose x
          & n > y1 by A2,NEWTON:19;
       thus thesis by NEWTON:12,A2,A1;
     end;
     suppose
A3:    x>0;
       take n = (2*x)|^(x+1)+1,y1 = (2*x)|^(x+1);
       take y2 = n|^x,y3 = n choose x;
       n > y1 by NAT_1:13;
       hence thesis by A1,A3,Th17;
     end;
   end;
   given n,y1,y2,y3 be Nat such that
A4:  y1=(2*x) |^(x+1) & y2 = n|^x & y3 = n choose x & n > y1 and
A5:  y=[\y2/y3/];
   per cases;
   suppose
A6:    x=0;
     then y1= 0 & y2 = 1 & y3 = 1 by A4,NEWTON:4,19;
     hence thesis by NEWTON:12,A6,A5;
   end;
   suppose x>0;
     hence thesis by A4,A5,Th17;
   end;
 end;
