let m, n be Nat; :: thesis: ( m > 0 implies (n |^ m) mod n = 0 )
assume A1: m > 0 ; :: thesis: (n |^ m) mod n = 0
defpred S1[ Nat] means ( $1 > 0 implies (n |^ $1) mod n = 0 );
A2: for m being Nat st S1[m] holds
S1[m + 1]
proof
let m be Nat; :: thesis: ( S1[m] implies S1[m + 1] )
assume S1[m] ; :: thesis: S1[m + 1]
S1[m + 1]
proof
reconsider m = m, n = n as Element of NAT by ORDINAL1:def 12;
(n * (n |^ m)) mod n = ((n mod n) * (n |^ m)) mod n by EULER_2:8
.= (0 * (n |^ m)) mod n by NAT_D:25
.= 0 by NAT_D:26 ;
hence S1[m + 1] by NEWTON:6; :: thesis: verum
end;
hence S1[m + 1] ; :: thesis: verum
end;
A3: S1[ 0 ] ;
for n being Nat holds S1[n] from NAT_1:sch 2(A3, A2);
hence (n |^ m) mod n = 0 by A1; :: thesis: verum