reserve a,b,d,n,k,i,j,x,s for Nat;

theorem Th2:
  b > 1 & n >0 & n*(b|^k) <= x < (n+1)*(b|^k)
    implies digits(n,b) = digits(x,b)/^k
proof
  assume that
A1: b > 1 & n > 0 and
A2: n*(b|^k) <= x < (n+1)*(b|^k);
  per cases;
  suppose
A3:   k=0;
    then n*1 <= x < (n+1)*1 by A2,NEWTON:4;
    then n <= x <= n by NAT_1:13;
    then n=x by XXREAL_0:1;
    hence thesis by A3,AFINSQ_2:10;
  end;
  suppose
A4:   k>0;
    set D=digits(x,b),Dk=D|k,K=D/^k;
A5:   n*(b|^k) >= 1*(b|^k) by A1,NAT_1:14,XREAL_1:64;
    x < b|^(len D) by A1,NUMBER11:9;
    then n*(b|^k) < b|^(len D) by A2,XXREAL_0:2;
    then b to_power k < b to_power (len D) by A5,XXREAL_0:2;
    then k < len D by A1,PRE_FF:8;
    then
A6:   len Dk = k by AFINSQ_1:54;
A7:   Dk^K = D;
    then
A8:   value(D,b) = value(Dk,b) + value(K,b) * b|^k by A6,Th1;
A9:   x<>0 by A1,A2;
    for i being Nat st i in dom Dk holds Dk.i<b
    proof
      let i be Nat such that
A10:    i in dom Dk;
      dom Dk c= dom D by A7,AFINSQ_1:21;
      then D.i < b by A10,A1,A9,NUMERAL1:def 2;
      hence thesis by A7,A10,AFINSQ_1:def 3;
    end;
    then
A11:  0<= value(Dk,b)/(b|^k) < 1 by A6,A4,A1,NUMBER11:8,XREAL_1:191;
    x <> 0 by A1,A2;
    then x = value(Dk,b) + value(K,b) * b|^k by A8,A1,NUMERAL1:def 2;
    then
A12:  n*(b|^k)/ (b|^k) <=
      (value(Dk,b) + value(K,b) * b|^k)/(b|^k) < (n+1)*(b|^k)/(b|^k)
      by A1,A2,XREAL_1:72,74;
    (value(Dk,b) + value(D/^k,b) * b|^k)/(b|^k)
       = value(Dk,b)/(b|^k) + (value(D/^k,b) * b|^k)/(b|^k) by XCMPLX_1:62
      .= value(Dk,b)/(b|^k) + value(D/^k,b) by A1,XCMPLX_1:89;
    then
A13:  n <= value(Dk,b)/(b|^k) + value(D/^k,b) < n+1 by A12,A1,XCMPLX_1:89;
    then
A14:  n - value(Dk,b)/(b|^k) <=
      value(Dk,b)/(b|^k) + value(K,b) - value(Dk,b)/(b|^k) = value(K,b)
      by XREAL_1:9;
    n - value(Dk,b)/(b|^k) > n-1 by A11,XREAL_1:15;
    then n-1 < value(D/^k,b) by A14,XXREAL_0:2;
    then
A15:  n-1+1 <= value(D/^k,b) by INT_1:7;
A16:  value(K,b) < n+1 - value(Dk,b)/(b|^k) by A13,XREAL_1:20;
    n+1 - value(Dk,b)/(b|^k) <= n+1 - 0 by XREAL_1:13;
    then value(K,b) < n+1 by A16,XXREAL_0:2;
    then value(K,b) <= n by NAT_1:13;
    then
A17:  digits(value(K,b),b) = digits(n,b) by A15,XXREAL_0:1;
A18:  K <> {} by A15,A1,NUMBER11:1;
    then reconsider L=len K-1 as Nat;
A19:  len Dk + len K = len D by A7,AFINSQ_1:17;
    L<L+1 by NAT_1:13;
    then L in Segm len K by NAT_1:44;
    then
A20:  D.(k+L) = K.L by A7,A6,AFINSQ_1:def 3;
A21:  D.((len D)-1)<>0 by A9,A1, NUMERAL1:def 2;
    for i being Nat st i in dom K holds K.i<b
    proof
      let i be Nat such that
A22:  i in dom K;
      i + k in dom D by A6,A7,A22,AFINSQ_1:23;
      then D.(k+i)<b by A1,A9,NUMERAL1:def 2;
      hence thesis by A7,A22,A6,AFINSQ_1:def 3;
    end;
    hence thesis by A17,A1,A18,A21,A19,A20,A6,NUMBER11:5;
  end;
end;
