Article RADIX_6, MML version 4.99.1005

:: RADIX_6:th 1
theorem
for b1 being natural set
   st 1 <= b1
for b2, b3 being natural set
      st 1 <= b2 & 2 <= b3
   holds SDDec Fmin(b2 + b1,b2,b3) = SDDec Fmin(b2,b2,b3);

:: RADIX_6:th 2
theorem
for b1, b2 being natural set
      st 1 <= b1 & 2 <= b2
   holds 0 < SDDec Fmin(b1,b1,b2);

:: RADIX_6:funcnot 1 => RADIX_6:func 1
definition
  let a1, a2, a3 be natural set;
  let a4 be Element of (a2 + 2) -tuples_on (a3 -SD);
  assume a1 in Seg (a2 + 2);
  func M0Digit(A4,A1) -> Element of a3 -SD equals
    a4 . a1
    if a2 <= a1
    otherwise   case a1 < a2;
    thus 0;
  end;
;
end;

:: RADIX_6:def 1
theorem
for b1, b2, b3 being natural set
for b4 being Element of (b2 + 2) -tuples_on (b3 -SD)
      st b1 in Seg (b2 + 2)
   holds (b2 <= b1 implies M0Digit(b4,b1) = b4 . b1) & (b2 <= b1 or M0Digit(b4,b1) = 0);

:: RADIX_6:funcnot 2 => RADIX_6:func 2
definition
  let a1, a2 be natural set;
  let a3 be Element of (a1 + 2) -tuples_on (a2 -SD);
  func M0 A3 -> Element of (a1 + 2) -tuples_on (a2 -SD) means
    for b1 being natural set
          st b1 in Seg (a1 + 2)
       holds DigA(it,b1) = M0Digit(a3,b1);
end;

:: RADIX_6:def 2
theorem
for b1, b2 being natural set
for b3, b4 being Element of (b1 + 2) -tuples_on (b2 -SD) holds
   b4 = M0 b3
iff
   for b5 being natural set
         st b5 in Seg (b1 + 2)
      holds DigA(b4,b5) = M0Digit(b3,b5);

:: RADIX_6:funcnot 3 => RADIX_6:func 3
definition
  let a1, a2, a3 be natural set;
  let a4 be Element of (a2 + 2) -tuples_on (a3 -SD);
  assume 2 <= a3 & a1 in Seg (a2 + 2);
  func MmaxDigit(A4,A1) -> Element of a3 -SD equals
    a4 . a1
    if a2 <= a1
    otherwise   case a1 < a2;
    thus (Radix a3) - 1;
  end;
;
end;

:: RADIX_6:def 3
theorem
for b1, b2, b3 being natural set
for b4 being Element of (b2 + 2) -tuples_on (b3 -SD)
      st 2 <= b3 & b1 in Seg (b2 + 2)
   holds (b2 <= b1 implies MmaxDigit(b4,b1) = b4 . b1) &
    (b2 <= b1 or MmaxDigit(b4,b1) = (Radix b3) - 1);

:: RADIX_6:funcnot 4 => RADIX_6:func 4
definition
  let a1, a2 be natural set;
  let a3 be Element of (a1 + 2) -tuples_on (a2 -SD);
  func Mmax A3 -> Element of (a1 + 2) -tuples_on (a2 -SD) means
    for b1 being natural set
          st b1 in Seg (a1 + 2)
       holds DigA(it,b1) = MmaxDigit(a3,b1);
end;

:: RADIX_6:def 4
theorem
for b1, b2 being natural set
for b3, b4 being Element of (b1 + 2) -tuples_on (b2 -SD) holds
   b4 = Mmax b3
iff
   for b5 being natural set
         st b5 in Seg (b1 + 2)
      holds DigA(b4,b5) = MmaxDigit(b3,b5);

:: RADIX_6:funcnot 5 => RADIX_6:func 5
definition
  let a1, a2, a3 be natural set;
  let a4 be Element of (a2 + 2) -tuples_on (a3 -SD);
  assume 2 <= a3 & a1 in Seg (a2 + 2);
  func MminDigit(A4,A1) -> Element of a3 -SD equals
    a4 . a1
    if a2 <= a1
    otherwise   case a1 < a2;
    thus (- Radix a3) + 1;
  end;
;
end;

:: RADIX_6:def 5
theorem
for b1, b2, b3 being natural set
for b4 being Element of (b2 + 2) -tuples_on (b3 -SD)
      st 2 <= b3 & b1 in Seg (b2 + 2)
   holds (b2 <= b1 implies MminDigit(b4,b1) = b4 . b1) &
    (b2 <= b1 or MminDigit(b4,b1) = (- Radix b3) + 1);

:: RADIX_6:funcnot 6 => RADIX_6:func 6
definition
  let a1, a2 be natural set;
  let a3 be Element of (a1 + 2) -tuples_on (a2 -SD);
  func Mmin A3 -> Element of (a1 + 2) -tuples_on (a2 -SD) means
    for b1 being natural set
          st b1 in Seg (a1 + 2)
       holds DigA(it,b1) = MminDigit(a3,b1);
end;

:: RADIX_6:def 6
theorem
for b1, b2 being natural set
for b3, b4 being Element of (b1 + 2) -tuples_on (b2 -SD) holds
   b4 = Mmin b3
iff
   for b5 being natural set
         st b5 in Seg (b1 + 2)
      holds DigA(b4,b5) = MminDigit(b3,b5);

:: RADIX_6:th 3
theorem
for b1, b2 being natural set
   st 1 <= b1 & 2 <= b2
for b3 being Element of (b1 + 2) -tuples_on (b2 -SD) holds
   SDDec b3 <= SDDec Mmax b3;

:: RADIX_6:th 4
theorem
for b1, b2 being natural set
   st 1 <= b1 & 2 <= b2
for b3 being Element of (b1 + 2) -tuples_on (b2 -SD) holds
   SDDec Mmin b3 <= SDDec b3;

:: RADIX_6:prednot 1 => RADIX_6:pred 1
definition
  let a1, a2 be natural set;
  let a3 be integer set;
  pred A3 needs_digits_of A1,A2 means
    a3 < (Radix a2) |^ a1 & (Radix a2) |^ (a1 -' 1) <= a3;
end;

:: RADIX_6:dfs 7
definiens
  let a1, a2 be natural set;
  let a3 be integer set;
To prove
     a3 needs_digits_of a1,a2
it is sufficient to prove
  thus a3 < (Radix a2) |^ a1 & (Radix a2) |^ (a1 -' 1) <= a3;

:: RADIX_6:def 7
theorem
for b1, b2 being natural set
for b3 being integer set holds
      b3 needs_digits_of b1,b2
   iff
      b3 < (Radix b2) |^ b1 & (Radix b2) |^ (b1 -' 1) <= b3;

:: RADIX_6:th 5
theorem
for b1, b2, b3, b4 being natural set
      st b4 in Seg b2
   holds 0 <= DigA(DecSD(b1,b2,b3),b4);

:: RADIX_6:th 6
theorem
for b1, b2, b3 being natural set
      st 1 <= b1 & 2 <= b2 & b3 needs_digits_of b1,b2
   holds 0 < DigA(DecSD(b3,b1,b2),b1);

:: RADIX_6:th 7
theorem
for b1, b2, b3 being natural set
      st 1 <= b2 & 2 <= b3 & b1 needs_digits_of b2,b3
   holds SDDec Fmin(b2 + 2,b2,b3) <= b1;

:: RADIX_6:th 8
theorem
for b1, b2, b3 being integer set
      st b2 < b1 + b3 & 0 < b3
   holds ex b4 being integer set st
      - b3 < b1 - (b4 * b3) & b2 - (b4 * b3) < b3;

:: RADIX_6:th 9
theorem
for b1, b2 being natural set
   st 1 <= b1 & 2 <= b2
for b3 being Element of (b1 + 2) -tuples_on (b2 -SD) holds
   (SDDec Mmax b3) + SDDec DecSD(0,b1 + 2,b2) = (SDDec M0 b3) + SDDec SDMax(b1 + 2,b1,b2);

:: RADIX_6:th 10
theorem
for b1, b2 being natural set
   st 1 <= b1 & 2 <= b2
for b3 being Element of (b1 + 2) -tuples_on (b2 -SD) holds
   SDDec Mmax b3 < (SDDec M0 b3) + SDDec Fmin(b1 + 2,b1,b2);

:: RADIX_6:th 11
theorem
for b1, b2 being natural set
   st 1 <= b1 & 2 <= b2
for b3 being Element of (b1 + 2) -tuples_on (b2 -SD) holds
   (SDDec Mmin b3) + SDDec DecSD(0,b1 + 2,b2) = (SDDec M0 b3) + SDDec SDMin(b1 + 2,b1,b2);

:: RADIX_6:th 12
theorem
for b1, b2 being natural set
for b3 being Element of (b1 + 2) -tuples_on (b2 -SD)
      st 1 <= b1 & 2 <= b2
   holds (SDDec M0 b3) + SDDec DecSD(0,b1 + 2,b2) = (SDDec Mmin b3) + SDDec SDMax(b1 + 2,b1,b2);

:: RADIX_6:th 13
theorem
for b1, b2 being natural set
   st 1 <= b1 & 2 <= b2
for b3 being Element of (b1 + 2) -tuples_on (b2 -SD) holds
   SDDec M0 b3 < (SDDec Mmin b3) + SDDec Fmin(b1 + 2,b1,b2);

:: RADIX_6:th 14
theorem
for b1, b2, b3 being natural set
for b4 being Element of (b1 + 2) -tuples_on (b2 -SD)
      st 1 <= b1 & 2 <= b2 & b3 needs_digits_of b1,b2
   holds ex b5 being integer set st
      - b3 < (SDDec M0 b4) - (b5 * b3) &
       (SDDec Mmax b4) - (b5 * b3) < b3;

:: RADIX_6:th 15
theorem
for b1, b2, b3 being natural set
for b4 being Element of (b1 + 2) -tuples_on (b2 -SD)
      st 1 <= b1 & 2 <= b2 & b3 needs_digits_of b1,b2
   holds ex b5 being integer set st
      - b3 < (SDDec Mmin b4) - (b5 * b3) &
       (SDDec M0 b4) - (b5 * b3) < b3;

:: RADIX_6:th 16
theorem
for b1, b2 being natural set
for b3 being Element of (b1 + 2) -tuples_on (b2 -SD)
      st 1 <= b1 &
         2 <= b2 &
         (SDDec M0 b3 <= SDDec b3 implies SDDec Mmax b3 < SDDec b3)
   holds SDDec Mmin b3 <= SDDec b3 & SDDec b3 < SDDec M0 b3;

:: RADIX_6:funcnot 7 => RADIX_6:func 7
definition
  let a1, a2, a3 be natural set;
  let a4 be Element of (a2 + 2) -tuples_on (a3 -SD);
  assume a1 in Seg (a2 + 2);
  func MmaskDigit(A4,A1) -> Element of a3 -SD equals
    a4 . a1
    if a1 < a2
    otherwise   case a2 <= a1;
    thus 0;
  end;
;
end;

:: RADIX_6:def 8
theorem
for b1, b2, b3 being natural set
for b4 being Element of (b2 + 2) -tuples_on (b3 -SD)
      st b1 in Seg (b2 + 2)
   holds (b2 <= b1 or MmaskDigit(b4,b1) = b4 . b1) & (b2 <= b1 implies MmaskDigit(b4,b1) = 0);

:: RADIX_6:funcnot 8 => RADIX_6:func 8
definition
  let a1, a2 be natural set;
  let a3 be Element of (a1 + 2) -tuples_on (a2 -SD);
  func Mmask A3 -> Element of (a1 + 2) -tuples_on (a2 -SD) means
    for b1 being natural set
          st b1 in Seg (a1 + 2)
       holds DigA(it,b1) = MmaskDigit(a3,b1);
end;

:: RADIX_6:def 9
theorem
for b1, b2 being natural set
for b3, b4 being Element of (b1 + 2) -tuples_on (b2 -SD) holds
   b4 = Mmask b3
iff
   for b5 being natural set
         st b5 in Seg (b1 + 2)
      holds DigA(b4,b5) = MmaskDigit(b3,b5);

:: RADIX_6:th 17
theorem
for b1, b2 being natural set
for b3 being Element of (b1 + 2) -tuples_on (b2 -SD)
      st 1 <= b1 & 2 <= b2
   holds (SDDec M0 b3) + SDDec Mmask b3 = (SDDec b3) + SDDec DecSD(0,b1 + 2,b2);

:: RADIX_6:th 18
theorem
for b1, b2 being natural set
for b3 being Element of (b1 + 2) -tuples_on (b2 -SD)
      st 1 <= b1 & 2 <= b2 & 0 < SDDec Mmask b3
   holds SDDec M0 b3 < SDDec b3;

:: RADIX_6:funcnot 9 => RADIX_6:func 9
definition
  let a1, a2, a3 be natural set;
  assume 2 <= a3;
  func FSDMinDigit(A2,A3,A1) -> Element of a3 -SD equals
    0
    if a2 < a1,
1
    if a1 = a2
    otherwise (- Radix a3) + 1;
end;

:: RADIX_6:def 10
theorem
for b1, b2, b3 being natural set
      st 2 <= b3
   holds (b1 <= b2 or FSDMinDigit(b2,b3,b1) = 0) &
    (b1 = b2 implies FSDMinDigit(b2,b3,b1) = 1) &
    (b1 <= b2 & b1 <> b2 implies FSDMinDigit(b2,b3,b1) = (- Radix b3) + 1);

:: RADIX_6:funcnot 10 => RADIX_6:func 10
definition
  let a1, a2, a3 be natural set;
  func FSDMin(A1,A2,A3) -> Element of a1 -tuples_on (a3 -SD) means
    for b1 being natural set
          st b1 in Seg a1
       holds DigA(it,b1) = FSDMinDigit(a2,a3,b1);
end;

:: RADIX_6:def 11
theorem
for b1, b2, b3 being natural set
for b4 being Element of b1 -tuples_on (b3 -SD) holds
      b4 = FSDMin(b1,b2,b3)
   iff
      for b5 being natural set
            st b5 in Seg b1
         holds DigA(b4,b5) = FSDMinDigit(b2,b3,b5);

:: RADIX_6:th 19
theorem
for b1 being natural set
   st 1 <= b1
for b2, b3 being natural set
      st b2 in Seg b1 & 2 <= b3
   holds SDDec FSDMin(b1,b2,b3) = 1;

:: RADIX_6:prednot 2 => RADIX_6:pred 2
definition
  let a1, a2, a3 be natural set;
  let a4 be Element of (a2 + 2) -tuples_on (a3 -SD);
  pred A4 is_Zero_over A1 means
    for b1 being natural set
          st a1 < b1
       holds DigA(a4,b1) = 0;
end;

:: RADIX_6:dfs 12
definiens
  let a1, a2, a3 be natural set;
  let a4 be Element of (a2 + 2) -tuples_on (a3 -SD);
To prove
     a4 is_Zero_over a1
it is sufficient to prove
  thus for b1 being natural set
          st a1 < b1
       holds DigA(a4,b1) = 0;

:: RADIX_6:def 12
theorem
for b1, b2, b3 being natural set
for b4 being Element of (b2 + 2) -tuples_on (b3 -SD) holds
      b4 is_Zero_over b1
   iff
      for b5 being natural set
            st b1 < b5
         holds DigA(b4,b5) = 0;

:: RADIX_6:th 20
theorem
for b1 being natural set
   st 1 <= b1
for b2, b3 being natural set
for b4 being Element of (b1 + 2) -tuples_on (b3 -SD)
      st 2 <= b3 & b2 in Seg (b1 + 2) & Mmask b4 is_Zero_over b2 & 0 < DigA(Mmask b4,b2)
   holds 0 < SDDec Mmask b4;