
theorem PC0:
  for p be Prime, n be Nat, k be non zero Nat holds n + k < p implies
    ((p + n) choose (k+n)) mod p = 0
  proof
    let p be Prime;
    defpred P[Nat] means
      for k be non zero Nat holds
        (k + $1 < p implies ((p + $1) choose (k + $1)) mod p = 0);
    A2: P[0] by PCK;
    A3: for m be Nat st P[m] holds P[m + 1]
    proof
      let m be Nat such that
      B1: for k be non zero Nat holds k + m < p implies
        ((p + m) choose (k + m)) mod p = 0;
      for k be non zero Nat holds k + (m + 1) < p implies
        ((p + (m + 1)) choose (k + (m + 1))) mod p = 0
      proof
        let k be non zero Nat;
        assume
        C1: k + (m + 1) < p;
        (k + m) + 0 < (k + m) + 1 by XREAL_1:6; then
        C2:  k + m < p by C1,XXREAL_0:2;
        C3: ((p + m) choose (m + (k + 1))) mod p = 0 by C1,B1;
        ((p + m + 1) choose (k + m + 1)) mod p = (((p + m) choose (k + m)) +
          ((p + m) choose (k + m + 1))) mod p by NEWTON:22
        .= ((((p + m) choose (k + m)) mod p) +
             (((p + m) choose (k + m + 1)) mod p)) mod p by NAT_D:66
        .= (0 + 0) mod p by B1,C2,C3;
        hence thesis;
      end;
      hence thesis;
    end;
    for c be Nat holds P[c] from NAT_1:sch 2(A2,A3);
    hence thesis;
  end;
