reserve k for Nat;

theorem Th4:
  for a,b,i be Nat st 1 <= i & 0 < b holds
  (a mod (b |^ i)) div (b |^ (i -'1)) = (a div (b |^ (i -'1))) mod b
proof
  let a,b,i be Nat;
  assume that
A1: 1 <= i and
A2: 0 < b;
  set j = i -' 1;
  set B0 = b |^ j;
A3: B0 > 0 by A2,PREPOWER:6;
  set B1 = b |^ (j+1);
A4: a mod B1 = a - (B1)*(a div B1) by A2,NEWTON:63,PREPOWER:6;
  reconsider Z = (b*(-(a div B1))) as Integer;
  j + 1 = i - 1 + 1 by A1,XREAL_1:233
    .= i;
  then
  (a mod (b |^ i)) div (b |^ (i-'1)) = (a + (B1)*(-(a div B1))) div B0 by A4
    .= (a + (B0)*b*(-(a div B1))) div B0 by NEWTON:6
    .= [\ (a + (B0)*Z)/B0 /] by INT_1:def 9
    .= [\ a/B0 + Z /] by A3,XCMPLX_1:113
    .= [\ a/B0 /] + Z by INT_1:28
    .= (a div B0) + -b*(a div B1) by INT_1:def 9
    .= (a div B0) - b*(a div B1)
    .= (a div B0) - b*(a div B0*b) by NEWTON:6
    .= (a div B0) - b*((a div B0) div b) by NAT_2:27;
  hence thesis by A2,NEWTON:63;
end;
