reserve x, y for set;

theorem Th8:
  for s being non empty finite set ex c being Real st c in ]. -1, 0 .[ &
  card(derangements s) - (((card s)!) / number_e) =
     -(card s)! * (exp_R c * (-1) |^ ((card s)+1) / (((card s)+1)!))
  proof
    let s be non empty finite set;
    set n = card s;
    consider XF be XFinSequence of INT such that
A1: Sum XF=card {h where h is Function of s, s: h is one-to-one
      & for x st x in s holds h.x<>x} and
A2: dom XF = n+1 and
A3: for m be Nat st m in dom XF holds XF.m=((-1)|^m)*(n!)/(m!) by CARD_FIN:63;
A4: Sum XF = card (derangements s) by A1,Th7;
    set T = Taylor(exp_R, [#]REAL, 0, -1);
    consider c be Real such that
A5: c in ]. -1, 0 .[
    & exp_R (-1) = Partial_Sums(T).n + exp_R c * (-1-0) |^ (n+1) / ((n+1)!)
                                                                 by Th5;
    Partial_Sums(n!(#)T) = n!(#)Partial_Sums(T) by SERIES_1:9;
    then
A6: Partial_Sums(n!(#)T) . n = n! * (Partial_Sums(T) . n) by SEQ_1:9;
 Partial_Sums(n!(#)T) . n = Sum (XF)
    proof
      consider f be sequence of  INT such that
A7:   f.0 = XF . 0 and
A8:   for n be Nat st n + 1 < len XF holds f.(n+1) =
           addint . (f.n, XF.(n+1)) and
A9:  addint "**" XF = f.(len XF - 1) by A2,AFINSQ_2:def 8;
A10:  Sum XF = f.(len XF - 1) by A9,AFINSQ_2:50;
      defpred P[Nat] means $1 in Segm(n+1) implies
          Partial_Sums(n!(#)T) . $1 = f.($1);
A11:     0 in REAL by XREAL_0:def 1;
A12:  P[0]
      proof
        0 in Segm(n+1) by NAT_1:44;
        then
A13:    0 in dom XF by A2;
        Partial_Sums(n!(#)T) . 0 = (n!(#)T) . 0 by SERIES_1:def 1
              .= n! * T . 0 by SEQ_1:9
              .= n! * ((diff(exp_R, [#]REAL).0).0 * (-1 - 0) |^ 0 / (0!))
                                                             by TAYLOR_1:def 7
              .= n! * (1 * (-1) |^ 0 / (0!)) by SIN_COS2:13,TAYLOR_2:7,A11
              .= (n! * (-1) |^ 0 / (0!))
              .= f.0 by A3,A13,A7;
        hence thesis;
      end;
A14:  for j be Nat st P[j] holds P[j+1]
      proof
        let j be Nat such that
A15:    P[j];
        set j1 = j+1;
        assume
A16:    j+1 in Segm(n+1); then
A17:    j+1 < n+1 by NAT_1:44; then
A18:    j < n + 1 by NAT_1:13;
        (n!(#)T) . j1 = n! * T . j1 by SEQ_1:9
             .= n! * ((diff(exp_R, [#]REAL).j1).0 * (-1 - 0) |^ j1 / (j1!))
                                                             by TAYLOR_1:def 7
             .= n! * (1 * (-1) |^ j1 / (j1!)) by SIN_COS2:13,TAYLOR_2:7,A11
             .= (n! * (-1) |^ j1 / (j1!))
             .= XF.j1 by A3,A16,A2;
        hence Partial_Sums(n!(#)T) . (j + 1) = f.(j) + XF.j1
                                         by A15,A18,NAT_1:44,SERIES_1:def 1
             .= addint . (f.j, XF.j1) by BINOP_2:def 20
             .= f.j1 by A8,A17,A2;
      end;
      for j be Nat holds P[j] from NAT_1:sch 2(A12, A14);
      hence thesis by A10,A2,NAT_1:45;
    end;
then A19:card (derangements s) + n! * (exp_R c * (-1) |^ (n+1) / ((n+1)!))
           = n! * exp_R (-1)  by A4,A5,A6
          .= n! * (1 / exp_R 1) by TAYLOR_1:4
          .= n! / number_e by IRRAT_1:def 7;
    take c;
    thus c in ]. -1, 0 .[ by A5;
    thus card(derangements s) - (((card s)!) / number_e) =
                   -n! * (exp_R c * (-1) |^ (n+1) / ((n+1)!)) by A19;
  end;
