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 6, O(n!) c O((n+1)!))
  Big_Oh(seq_n!(0)) c= Big_Oh(seq_n!(1)) &
  Big_Oh(seq_n!(0)) <> Big_Oh(seq_n!(1))
proof
  set g = seq_n!(1);
  set f = seq_n!(0);
  set h = f/"g;
A1: for n holds h.n = 1/(n+1)
  proof
    let n;
A2: n! <> 0 by NEWTON:17;
    h.n = f.n/g.n by Lm4
      .= (n+0)!/g.n by Def4
      .= (n!)/((n+1)!) by Def4
      .= ((n!)*1)/((n+1)*(n!)) by NEWTON:15
      .= (1/(n+1))*((n!)/(n!)) by XCMPLX_1:76
      .= (1/(n+1))*1 by A2,XCMPLX_1:60;
    hence thesis;
  end;
A3: now
    let p be Real;
    assume
A4: p > 0;
    set N = max( 1, [/1/p\] );
A5: N >= 1 by XXREAL_0:25;
A6: N >= ([/1/p\]) by XXREAL_0:25;
    N is Integer by XXREAL_0:16;
    then reconsider N as Element of NAT by A5,INT_1:3;
    [/1/p\] >= 1/p by INT_1:def 7;
    then
A7: N >= 1/p by A6,XXREAL_0:2;
     reconsider N as Nat;
    take N;
    let n be Nat;
A8:  n in NAT by ORDINAL1:def 12;
    assume n >= N;
    then n+1 > N by NAT_1:13;
    then (n+1) > 1/p by A7,XXREAL_0:2;
    then 1/(n+1) < 1/(1/p) by A4,XREAL_1:88;
    then
A9: h.n < p by A1,A8;
A10: 0 < 1/(n+1);
    -p < -0 by A4,XREAL_1:24;
    then
A11: -p < h.n by A1,A10,A8;
    |.h.n.| < p
    proof
      per cases;
      suppose
        h.n >= 0;
        hence thesis by A9,ABSVALUE:def 1;
      end;
      suppose
A12:    h.n < 0;
A13:    (-1)*(-p) > (-1)*h.n by A11,XREAL_1:69;
        |.h.n.| = -h.n by A12,ABSVALUE:def 1;
        hence thesis by A13;
      end;
    end;
    hence |.h.n-0.| < p;
  end;
  then
A14: h is convergent by SEQ_2:def 6;
  then
A15: lim h = 0 by A3,SEQ_2:def 7;
  then not g in Big_Oh(f) by A14,ASYMPT_0:16;
  then
A16: not f in Big_Omega(g) by ASYMPT_0:19;
  f in Big_Oh(g) by A14,A15,ASYMPT_0:16;
  hence thesis by A16,Th4;
end;
