reserve d,i,j,k,m,n,p,q,x,k1,k2 for Nat,
  a,c,i1,i2,i3,i5 for Integer;

theorem Th34:
  for k holds p is prime & d divides (p |^ k) implies
  ex t being Element of NAT st d = p |^ t & t <= k
proof
  let n;
  assume that
A1: p is prime and
A2: d divides (p |^ n);
  defpred P[Nat] means d divides (p |^ $1) implies ex t being Element of NAT
  st d = p |^ t & t <= $1;
A3: p > 0 by A1,INT_2:def 4;
A4: for n st P[n] holds P[n+1]
  proof
    let n;
    assume
A5: P[n];
    now
      assume
A6:   d divides (p |^ (n+1));
      (p |^ (n+1)) > 0 by A3,PREPOWER:6;
      then
A7:   d <= p |^ (n+1) by A6,NAT_D:7;
      now
        per cases by A7,XXREAL_0:1;
        suppose
          d < p |^ (n+1);
          then ex t being Element of NAT st d = p |^ t & t <= n by A1,A5,A6
,Th33;
          hence thesis by NAT_1:12;
        end;
        suppose
          d = p |^ (n+1);
          hence thesis;
        end;
      end;
      hence thesis;
    end;
    hence thesis;
  end;
A8: P[0]
  proof
    assume
A9: d divides (p |^ 0);
    d = p |^ 0
    proof
      ex t being Nat st p |^ 0 = d*t by A9,NAT_D:def 3;
      then d = 1 by NAT_1:15,NEWTON:4;
      hence thesis by NEWTON:4;
    end;
    hence thesis;
  end;
  for n holds P[n] from NAT_1:sch 2(A8,A4);
  hence thesis by A2;
end;
