let p be Prime; for k, n being Nat
for m being non zero Nat st k + m < p holds
(((n * p) + k) choose (m + k)) mod p = 0
defpred S1[ Nat] means for k being Nat
for m being non zero Nat st k + m < p holds
((($1 * p) + k) choose (m + k)) mod p = 0 ;
A1:
S1[ 0 ]
A2:
for q being Nat st S1[q] holds
S1[q + 1]
proof
let q be
Nat;
( S1[q] implies S1[q + 1] )
assume
S1[
q]
;
S1[q + 1]
S1[
q + 1]
proof
defpred S2[
Nat]
means for
m being non
zero Nat st $1
+ m < p holds
((((q + 1) * p) + $1) choose (m + $1)) mod p = 0 ;
C1:
S2[
0 ]
C2:
for
a being
Nat st
S2[
a] holds
S2[
a + 1]
proof
let a be
Nat;
( S2[a] implies S2[a + 1] )
S2[
a + 1]
hence
(
S2[
a] implies
S2[
a + 1] )
;
verum
end;
for
b being
Nat holds
S2[
b]
from NAT_1:sch 2(C1, C2);
hence
S1[
q + 1]
;
verum
end;
hence
S1[
q + 1]
;
verum
end;
for c being Nat holds S1[c]
from NAT_1:sch 2(A1, A2);
hence
for k, n being Nat
for m being non zero Nat st k + m < p holds
(((n * p) + k) choose (m + k)) mod p = 0
; verum