
theorem Th13:
for n being Nat holds 100 divides n iff digits(n,10).0=0 & digits(n,10).1=0
proof
  let n be Nat;
  thus 100 divides n implies digits(n,10).0=0 & digits(n,10).1=0
  proof
    assume A1: 100 divides n;
    100=10*10;
    then 10 divides 100 by INT_1:def 3;
    then 10 divides n by A1,INT_2:9;
    hence A2: digits(n,10).0=0 by NUMERAL1:7;
    per cases;
    suppose not 1 in dom digits(n,10);
      hence digits(n,10).1=0 by FUNCT_1:def 2;
    end;
    suppose A3: 1 in dom digits(n,10);
      dom <%0%> = 1 by AFINSQ_1:def 4;
      then digits(n,10) <> <%0%> by A3;
      then A4: n<>0 by NUMERAL1:def 2;
      set s=mid(digits(n,10),2,len(digits(n,10)));
      10*10 divides 10*value(s,10) + 0 by NUMERAL2:19,A2,A1;
      then 10 divides value(s,10) by GROUP_22:1;
      then A5: digits(value(s,10),10).0 = 0 by NUMERAL1:7;
      A6: 1<len digits(n,10) by A3,AFINSQ_1:86;
      2-'1 = 2-1 by XREAL_0:def 2;
      then A7: s=digits(n,10)/^1;
      then A8: len s = len digits(n,10) - 1 by A6,AFINSQ_2:7;
      then A9: len s > 1-1 by A6,XREAL_1:9;
      then 0 < len s;
      then reconsider ls1=(len s) - 1 as Nat by NAT_1:20;
      ls1 + 1 = len digits(n,10) - 1 by A8;
      then ls1+1<len(digits(n,10))-0 by XREAL_1:15;
      then s.((len s)-1) = digits(n,10).(len(digits(n,10))-1)
      by A8,A7,AFINSQ_2:8;
      then A10: s.((len s)-1) <> 0 by A4,NUMERAL1:def 2;
      for i being Nat st i in dom s holds s.i<10
      proof
        let i be Nat;
        assume i in dom s;
        then A11: s.i in rng s by FUNCT_1:3;
        rng s c= rng digits(n,10) by AFINSQ_2:9;
        then s.i in rng digits(n,10) by A11;
        then consider o being object such that
        A12: o in dom digits(n,10) & s.i=digits(n,10).o by FUNCT_1:def 3;
        reconsider o as Nat by A12;
        thus s.i<10 by A4,A12,NUMERAL1:def 2;
      end;
      then A13: digits(value(s,10),10) = s by A9,A10,Th5;
      digits(n,10).(0+1) = s.0 by A6,A7,AFINSQ_2:8;
      hence digits(n,10).1=0 by A5,A13;
    end;
  end;
  assume A14: digits(n,10).0=0 & digits(n,10).1=0;
  consider d9 being XFinSequence of NAT such that
  A15: (dom d9 = dom digits(n,10) & for i being Nat st i in dom d9 holds
  d9.i = (digits(n,10).i)*(10|^i)) & value(digits(n,10),10) = Sum d9
  by NUMERAL1:def 1;
  now
    let i be Nat;
    assume A16: i in dom d9;
    per cases;
    suppose i<2;
      then i=0 or i=1 by NAT_1:23;
      then d9.i = (digits(n,10).0)*(10|^0) or d9.i = (digits(n,10).1)*(10|^1)
      by A16,A15;
      hence 100 divides d9.i by A14,INT_2:12;
    end;
    suppose i>=2;
      then reconsider j=i-2 as Nat by NAT_1:21;
      d9.i = (digits(n,10).i)*(10|^(j+2)) by A15,A16
      .= (digits(n,10).i)*((10|^j)*(10|^2)) by NEWTON:8
      .= (digits(n,10).i)*((10|^j)*(10*10)) by POLYEQ_5:1
      .= ((digits(n,10).i)*(10|^j))*100;
      hence 100 divides d9.i by INT_1:def 3;
    end;
  end;
  then 100 divides Sum d9 by NUMERAL2:16;
  then 100 divides value(digits(n,10),10) by A15;
  hence 100 divides n by NUMERAL1:5;
end;
