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