let p, i, n be Nat; :: thesis: ( p > 1 & i mod p = 1 implies (i |^ n) mod p = 1 )
assume A1: ( p > 1 & i mod p = 1 ) ; :: thesis: (i |^ n) mod p = 1
defpred S1[ Nat] means (i |^ $1) mod p = 1;
1 mod p = 1 by A1, NAT_D:24;
then A2: S1[ 0 ] by NEWTON:9;
A3: for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be Nat; :: thesis: ( S1[k] implies S1[k + 1] )
assume A4: (i |^ k) mod p = 1 ; :: thesis: S1[k + 1]
(i |^ (k + 1)) mod p = ((i |^ k) * i) mod p by NEWTON:11
.= (((i |^ k) mod p) * i) mod p by EULER_2:10
.= 1 by A1, A4 ;
hence S1[k + 1] ; :: thesis: verum
end;
for n being Nat holds S1[n] from NAT_1:sch 2(A2, A3);
hence (i |^ n) mod p = 1 ; :: thesis: verum