
theorem
  for n,b being Nat st b>1 holds b divides n iff digits(n,b).0 = 0
proof
  let n,b be Nat;
  reconsider B=b as Element of NAT by ORDINAL1:def 12;
  consider d being XFinSequence of NAT such that
  dom d = dom digits(n,b) and
A1: for i being Nat st i in dom d holds d.i = ( digits(n,b).i)*(b|^i) and
A2: value(digits(n,b),b) = Sum d by Def1;
  assume
A3: b>1;
  thus b divides n implies digits(n,b).0 = 0
  proof
A4: len digits(n,b)>=1 by A3,Th4;
    assume
A5: b divides n;
    consider d being XFinSequence of NAT such that
A6: dom d = dom digits(n,b) and
A7: for i being Nat st i in dom d holds d.i = ( digits(n,b).i)*(b|^i) and
A8: value(digits(n,b),b) = Sum d by Def1;
    per cases by A4,XXREAL_0:1;
    suppose
A9:   len digits(n,b)=1;
A10:  b divides Sum d by A3,A5,A8,Th5;
A11:  0 in dom digits(n,b) by A9,AFINSQ_1:86;
      len d = 1 by A6,A9;
      then d=<%d.0%> by AFINSQ_1:34;
      then Sum d = d.0 by AFINSQ_2:53
        .= digits(n,b).0*(b|^0) by A6,A7,A11;
      then
A12:  b divides digits(n,b).0*1 by A10,NEWTON:4;
      per cases;
      suppose
        n=0;
        then digits(n,b) = <%0%> by A3,Def2;
        hence thesis;
      end;
      suppose
        n<>0;
        then digits(n,b).0 < b by A3,A11,Def2;
        hence thesis by A12,NAT_D:7;
      end;
    end;
    suppose
A13:  len digits(n,b)>1;
      then reconsider k=len digits(n,b)-1 as Element of NAT by NAT_1:21;
      defpred P[Nat,set] means $2=d.($1+1);
A14:  now
        let l be Nat;
        assume l in dom <%d.0%>;
        then l in Segm 1 by AFINSQ_1:def 4;
        then l < 1 by NAT_1:44;
        then l=0 by NAT_1:14;
        hence d.l=<%d.0%>.l;
      end;
A15:  for u be Nat st u in Segm k ex x be Element of NAT st P[u, x];
      consider d9 being XFinSequence of NAT such that
A16:  dom d9=Segm k & for x being Nat st x in Segm k holds P[x,d9.x]
      from STIRL2_1:sch 5(A15);
      now
        let i be Nat;
        assume
A17:    i in dom d9;
        then i < len d9 by A16,NAT_1:44;
        then i+1 < k+1 by XREAL_1:8,A16;
        then
A18:    i+1 in dom d by A6,AFINSQ_1:86;
        d9.i=d.(i+1) by A16,A17
          .= digits(n,b).(i+1)*b|^(i+1) by A7,A18
          .= digits(n,b).(i+1)*(b|^i*b) by NEWTON:6
          .= b*(digits(n,b).(i+1)*b|^i);
        hence b divides d9.i by NAT_D:def 3;
      end;
      then b divides Sum d9 by Th2;
      then
A19:  Sum d9 mod B = 0 by A3,PEPIN:6;
A20:  now
        let l be Nat;
A21:    len <%d.0%> + l = l+1 by AFINSQ_1:34;
        assume l in dom d9;
        hence d.(len <%d.0%> + l) = d9.l by A16,A21;
      end;
A22:  0 in dom digits(n,b) by A13,AFINSQ_1:86;
      dom d = k+1 by A6
        .= len <%d.0%> + len d9 by A16,AFINSQ_1:33;
      then d=<%d.0%>^d9 by A14,A20,AFINSQ_1:def 3;
      then Sum d = Sum <%d.0%> + Sum d9 by AFINSQ_2:55;
      then n = Sum <%d.0%> + Sum d9 by A3,A8,Th5;
      then n = d.0 + Sum d9 by AFINSQ_2:53;
      then (d.0 + Sum d9) mod B = 0 by A3,A5,PEPIN:6;
      then d.0 mod b = 0 by A19,NAT_D:17;
      then B divides d.0 by A3,PEPIN:6;
      then b divides digits(n,b).0*(b|^0) by A6,A7,A22;
      then
A23:  b divides digits(n,b).0*1 by NEWTON:4;
      per cases;
      suppose
        n=0;
        then digits(n,b) = <%0%> by A3,Def2;
        hence thesis;
      end;
      suppose
        n<>0;
        then digits(n,b).0 < b by A3,A22,Def2;
        hence thesis by A23,NAT_D:7;
      end;
    end;
  end;
  assume
A24: digits(n,b).0=0;
  now
    let i be Nat;
    assume
A25: i in dom d;
    per cases;
    suppose
      i=0;
      then d.i = (digits(n,b).0)*b|^0 by A1,A25
        .= digits(n,b).0*1 by NEWTON:4;
      hence b divides d.i by A24,NAT_D:6;
    end;
    suppose
      i>0;
      then consider j being Nat such that
A26:  j+1=i by NAT_1:6;
      d.i = digits(n,b).i*(b|^(j+1)) by A1,A25,A26
        .= digits(n,b).i*((b|^j)*b) by NEWTON:6
        .= b*(digits(n,b).i*(b|^j));
      hence b divides d.i by NAT_D:def 3;
    end;
  end;
  then b divides value(digits(n,b),b) by A2,Th2;
  hence thesis by A3,Th5;
end;
