reserve X for set;
reserve a,b,c,k,m,n for Nat;
reserve i for Integer;
reserve r for Real;
reserve p for Prime;

theorem Th23:
  for p being odd Prime holds p divides a+1 implies
  p|^(k+1) divides a|^(p|^k) + 1 & p|^k divides a|^(p|^k) + 1
  proof
    let p be odd Prime such that
A1: p divides a+1;
    defpred P[Nat] means p|^($1+1) divides a|^(p|^$1) + 1;
    p|^0 = 1 by NEWTON:4;
    then
A2: P[0] by A1;
A3: for x being Nat st P[x] holds P[x+1]
    proof
      let x be Nat;
      assume P[x];
      then p|^(x+2) divides a|^(p|^(x+1)) + 1 by Th22;
      hence P[x+1];
    end;
    for x being Nat holds P[x] from NAT_1:sch 2(A2,A3);
    hence
A4: p|^(k+1) divides a|^(p|^k) + 1;
    p|^k divides p|^(k+1) by NEWTON:89,NAT_1:11;
    hence p|^k divides a|^(p|^k) + 1 by A4,NAT_D:4;
  end;
