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