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