reserve i,s,t,m,n,k for Nat,
        c,d,e for Element of NAT,
        fn for FinSequence of NAT,
        x,y for Integer;
reserve p for Prime;

theorem
  n>1 & i,n are_coprime & len fn = order(i,n) &
  (for d st d in dom fn holds fn.d = i|^(d-'1))
     implies (for d st d in dom fn holds fn.d|^order(i,n) mod n = 1)
proof
   assume
A1:n>1 & i,n are_coprime & len fn = order(i,n) &
   (for d st d in dom fn holds fn.d = i|^(d-'1));
   set K = order(i,n);
   let d;
   assume d in dom fn;
   then A2:fn.d = i|^(d -' 1) by A1;
A3:fn.d|^order(i,n) mod n
                 = i|^(K*(d-'1)) mod n by NEWTON:9,A2
                .= i|^K|^(d-'1) mod n by NEWTON:9;
   i|^order(i,n) mod n = 1 by A1,PEPIN:def 2
                      .= 1 mod n by A1,PEPIN:5;
   then (i|^K|^(d-'1)) mod n = 1|^(d-'1) mod n by INT_4:8
         .= 1 mod n
         .= 1 by A1,PEPIN:5;
  hence thesis by A3;
end;
