Article NUMERAL1, MML version 4.99.1005

:: NUMERAL1:th 1
theorem
for b1, b2 being finite T-Sequence of NAT holds
Sum (b1 ^ b2) = (Sum b1) + Sum b2;

:: NUMERAL1:th 2
theorem
for b1 being Function-like quasi_total Relation of NAT,REAL
for b2 being finite T-Sequence of NAT
for b3 being natural set
      st b2 = b1 | (b3 + 1)
   holds Sum b2 = (Partial_Sums b1) . b3;

:: NUMERAL1:th 3
theorem
for b1, b2, b3 being natural set holds
(b1 (#) (b2 GeoSeq)) | b3 is finite T-Sequence of NAT;

:: NUMERAL1:th 4
theorem
for b1, b2 being finite T-Sequence of NAT
      st 1 <= len b1 &
         len b1 = len b2 &
         (for b3 being natural set
               st b3 in dom b1
            holds b1 . b3 <= b2 . b3)
   holds Sum b1 <= Sum b2;

:: NUMERAL1:th 5
theorem
for b1 being finite T-Sequence of NAT
for b2 being natural set
      st for b3 being natural set
              st b3 in dom b1
           holds b2 divides b1 . b3
   holds b2 divides Sum b1;

:: NUMERAL1:th 6
theorem
for b1, b2 being finite T-Sequence of NAT
for b3 being natural set
      st dom b1 = dom b2 &
         (for b4 being natural set
               st b4 in dom b1
            holds b2 . b4 = (b1 . b4) mod b3)
   holds (Sum b1) mod b3 = (Sum b2) mod b3;

:: NUMERAL1:funcnot 1 => NUMERAL1:func 1
definition
  let a1 be finite T-Sequence of NAT;
  let a2 be natural set;
  func value(A1,A2) -> natural set means
    ex b1 being finite T-Sequence of NAT st
       dom b1 = dom a1 &
        (for b2 being natural set
              st b2 in dom b1
           holds b1 . b2 = (a1 . b2) * (a2 |^ b2)) &
        it = Sum b1;
end;

:: NUMERAL1:def 1
theorem
for b1 being finite T-Sequence of NAT
for b2, b3 being natural set holds
   b3 = value(b1,b2)
iff
   ex b4 being finite T-Sequence of NAT st
      dom b4 = dom b1 &
       (for b5 being natural set
             st b5 in dom b4
          holds b4 . b5 = (b1 . b5) * (b2 |^ b5)) &
       b3 = Sum b4;

:: NUMERAL1:funcnot 2 => NUMERAL1:func 2
definition
  let a1, a2 be natural set;
  assume 1 < a2;
  func digits(A1,A2) -> finite T-Sequence of NAT means
    value(it,a2) = a1 &
     it . ((len it) - 1) <> 0 &
     (for b1 being natural set
           st b1 in dom it
        holds 0 <= it . b1 & it . b1 < a2)
    if a1 <> 0
    otherwise it = <%0%>;
end;

:: NUMERAL1:def 2
theorem
for b1, b2 being natural set
   st 1 < b2
for b3 being finite T-Sequence of NAT holds
   (b1 = 0 or    (b3 = digits(b1,b2)
    iff
       value(b3,b2) = b1 &
        b3 . ((len b3) - 1) <> 0 &
        (for b4 being natural set
              st b4 in dom b3
           holds 0 <= b3 . b4 & b3 . b4 < b2))) &
    (b1 = 0 implies    (b3 = digits(b1,b2)
    iff
       b3 = <%0%>));

:: NUMERAL1:th 7
theorem
for b1, b2 being natural set
      st 1 < b2
   holds 1 <= len digits(b1,b2);

:: NUMERAL1:th 8
theorem
for b1, b2 being natural set
      st 1 < b2
   holds value(digits(b1,b2),b2) = b1;

:: NUMERAL1:th 9
theorem
for b1, b2 being natural set
      st b2 = (10 |^ b1) - 1
   holds 9 divides b2;

:: NUMERAL1:th 10
theorem
for b1, b2 being natural set
      st 1 < b2
   holds    b2 divides b1
   iff
      (digits(b1,b2)) . 0 = 0;

:: NUMERAL1:th 11
theorem
for b1 being natural set holds
      2 divides b1
   iff
      2 divides (digits(b1,10)) . 0;

:: NUMERAL1:th 12
theorem
for b1 being natural set holds
      3 divides b1
   iff
      3 divides Sum digits(b1,10);

:: NUMERAL1:th 13
theorem
for b1 being natural set holds
      5 divides b1
   iff
      5 divides (digits(b1,10)) . 0;