reserve a,b,i,k,m,n for Nat;
reserve s,z for non zero Nat;
reserve r for Real;
reserve c for Complex;
reserve e1,e2,e3,e4,e5 for ExtReal;

theorem Th29:
  1 < m implies (m divides a|^b + 1 iff m divides (a mod m)|^b + 1)
  proof
    set r = a mod m;
    assume
A1: 1 < m; then
A2: 1 mod m = 1 by NAT_D:24;
A3: ((-1 mod m) + (1 mod m)) mod m = (-1+1) mod m by NAT_D:66
    .= 0;
    thus m divides a|^b + 1 implies m divides r|^b+1
    proof
      assume
A4:   m divides a|^b + 1;
      set k = a div m;
      (a|^b+1) mod m = 0 by A1,A4,INT_1:62;
      then
A5:   (a|^b+1-1) mod m = (0-1) mod m by A2,INT_6:7;
A6:   a = m*k+r by A1,NAT_D:2;
A7:   m*k mod m = 0 by NAT_D:13;
      ((m*k+r)|^n) mod m = (((m*k mod m) + (r mod m))|^n) mod m
      by Th28;
      then (a|^b) mod m = ((r mod m)|^b) mod m by A6,A7;
      then (r|^b+1) mod m = 0 by A3,A5,NAT_D:66;
      hence m divides r|^b+1 by A1,INT_1:62;
    end;
    assume m divides r|^b+1;
    then (r|^b+1) mod m = 0 by A1,INT_1:62;
    then
A8: (r|^b+1-1) mod m = (0-1) mod m by A2,INT_6:7;
    (a|^b) mod m = ((a mod m)|^b) mod m by PEPIN:12;
    then (a|^b+1) mod m = 0 by A3,A8,NAT_D:66;
    hence thesis by A1,INT_1:62;
  end;
