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;
reserve x,y,x1,u,w for Nat;

theorem Th23:
  n >= k implies
    Product ((n+1)+(-idseq k)) = k!*(n choose k)
proof
  defpred P[Nat] means $1 <= n implies
       Product ( (n+1)+(-idseq $1)) = $1!*(n choose $1);
A1: P[0] by RVSUM_1:94,NEWTON:12,19;
A2: P[i] implies P[i+1]
  proof
    set i1=i+1;
    assume
A3: P[i] & i1 <= n;
A4: (-1)*<*i1*> = -<*i1*>
      .= <*-i1*> by RVSUM_1:20;
    -idseq i1 = (-1) * ((idseq i) ^<*i1*>) by FINSEQ_2:51
      .= (- idseq i) ^<*-i1*> by A4,NEWTON04:43;
    then (n+1)+(-idseq i1) = ((n+1)+ - idseq i) ^((n+1)+<*-i1*>) by BASEL_1:3
      .= ((n+1)+ - idseq i) ^<*(n+1)+-i1*> by BASEL_1:2;
    then
A5:   Product ( (n+1)+(-idseq i1))
      = Product ( (n+1)+(-idseq i)) * ((n+1)+-i1) by RVSUM_1:96;
    reconsider l=n-i1 as Element of NAT by A3,NAT_1:21;
A6:   i <=n &n-i = l+1 by NAT_1:13,A3;
    n choose i1 = n! / ((i1!)*(l!)) by A3,NEWTON:def 3;
    then i1! * (n choose i1)
       = (i1!)*(n!) / ((i1!) *(l!)) by XCMPLX_1:74
      .= (n!) / (l!) by XCMPLX_1:91
      .= (n!*(l+1)) / (l!*(l+1)) by XCMPLX_1:91
      .= (n!*(l+1)) / ((l+1)!) by NEWTON:15
      .= (n!*(l+1)*(i!)) / ((l+1)!*(i!)) by XCMPLX_1:91
      .= ((l+1)*(i!)*(n!)) / ((l+1)!*(i!))
      .= ((l+1)*(i!))* ((n!) / ((l+1)!*(i!))) by XCMPLX_1:74
      .= ((n+1)+-i1)*(i!)* (n choose i) by NEWTON:def 3,A6;
    hence thesis by NAT_1:13,A3,A5;
  end;
  P[i] from NAT_1:sch 2(A1,A2);
  hence thesis;
end;
