reserve c, c1, c2, d, d1, d2, e, y for Real,
  k, n, m, N, n1, N0, N1, N2, N3, M for Element of NAT,
  x for set;

theorem :: Part 4
  not seq_n!(0) in Big_Theta(seq_n!(1))
proof
  set g = seq_n!(1);
  set f = seq_n!(0);
A1: Big_Theta(g) = { s where s is Element of Funcs(NAT, REAL) : ex c,d,N st
c > 0 & d > 0 & for n st n >= N holds d*g.n <= s.n & s.n <= c*g.n } by
ASYMPT_0:27;
  now
    assume f in Big_Theta(g);
    then consider s being Element of Funcs(NAT, REAL) such that
A2: s = f and
A3: ex c,d,N st c > 0 & d > 0 & for n st n >= N holds d*g.n <= s.n & s
    .n <= c*g.n by A1;
    consider c,d,N such that
    c > 0 and
A4: d > 0 and
A5: for n st n >= N holds d*g.n <= s.n & s.n <= c*g.n by A3;
    ex n st n >= N & d*g.n > f.n
    proof
      [/(N+1)/d\] >= (N+1)/d by INT_1:def 7;
      then [/(N+1)/d\] + 1 >= (N+1)/d + 1 by XREAL_1:6;
      then
A6:   d*([/(N+1)/d\] + 1) >= d*((N+1)/d + 1) by A4,XREAL_1:64;
A7:   N+1 >= 1+0 by XREAL_1:6;
      d*(((N+1)/d) + 1) = d*((N+1)/d) + d*1 .= (N+1) + d by A4,XCMPLX_1:87;
      then
A8:   d*(((N+1)/d) + 1) > 1 by A4,A7,XREAL_1:8;
      take n = max( N, [/(N+1)/d\] );
A9:   n >= N by XXREAL_0:25;
A10:  n >= [/(N+1)/d\] by XXREAL_0:25;
      n is Integer by XXREAL_0:16;
      then reconsider n as Element of NAT by A9,INT_1:3;
A11:  n! <> 0 by NEWTON:17;
      n+1 >= [/(N+1)/d\]+1 by A10,XREAL_1:6;
      then d*(n+1) >= d*([/(N+1)/d\]+1) by A4,XREAL_1:64;
      then
A12:  d*(n+1) >= d*(((N+1)/d) + 1) by A6,XXREAL_0:2;
A13:  f.n*(n!)" = (n+0)!*(n!)" by Def4
        .= 1 by A11,XCMPLX_0:def 7;
      (d*g.n)*(n!)" = (d*((n+1)!))*(n!)" by Def4
        .= (d*((n+1)*(n!)))*(n!)" by NEWTON:15
        .= (d*(n+1)*((n!)*(n!)"))
        .= (d*(n+1))*1 by A11,XCMPLX_0:def 7
        .= d*(n+1);
      then (d*g.n)*(n!)" > 1 by A12,A8,XXREAL_0:2;
      hence thesis by A13,XREAL_1:64,XXREAL_0:25;
    end;
    hence contradiction by A2,A5;
  end;
  hence thesis;
end;
