reserve a,b,m,x,y,i1,i2,i3,i for Integer,
  k,p,q,n for Nat,
  c,c1,c2 for Element of NAT,
  z for set;

theorem
  for a,b,m,n being Nat st a mod m = b mod m
  holds (a|^n) mod m = (b|^n) mod m
proof
  let a,b,m,n be Nat;
  defpred P[Nat] means (a|^$1) mod m = (b|^$1) mod m;
  assume
A1: a mod m = b mod m;
A2: for k being Nat st P[k] holds P[k+1]
  proof
    let k be Nat;
    assume
A3: P[k];
    reconsider l1=a|^k,l2=b|^k,a,b,m as Element of NAT by ORDINAL1:def 12;
    (a|^(k+1)) mod m = ((a|^k)*a) mod m by NEWTON:6
      .=((l1 mod m)*(a mod m)) mod m by NAT_D:67
      .= (l2*b) mod m by A1,A3,NAT_D:67
      .= (b|^(k+1)) mod m by NEWTON:6;
    hence thesis;
  end;
  a|^0 = 1 by NEWTON:4;
  then
A4: P[0] by NEWTON:4;
  for k being Nat holds P[k] from NAT_1:sch 2(A4,A2);
  hence thesis;
end;
