:: RADIX_2 semantic presentation
theorem Th1: :: RADIX_2:1
for
b1 being
Nat holds
b1 mod 1
= 0
theorem Th2: :: RADIX_2:2
theorem Th3: :: RADIX_2:3
theorem Th4: :: RADIX_2:4
theorem Th5: :: RADIX_2:5
theorem Th6: :: RADIX_2:6
theorem Th7: :: RADIX_2:7
theorem Th8: :: RADIX_2:8
theorem Th9: :: RADIX_2:9
theorem Th10: :: RADIX_2:10
theorem Th11: :: RADIX_2:11
:: deftheorem Def1 defines SubDigit2 RADIX_2:def 1 :
definition
let c1,
c2 be
Nat;
let c3 be
Tuple of
c1,
NAT ;
func DigitSD2 c3,
c2 -> Tuple of
a1,
NAT means :
Def2:
:: RADIX_2:def 2
for
b1 being
Nat st
b1 in Seg a1 holds
a4 /. b1 = SubDigit2 a3,
b1,
a2;
existence
ex b1 being Tuple of c1,NAT st
for b2 being Nat st b2 in Seg c1 holds
b1 /. b2 = SubDigit2 c3,b2,c2
uniqueness
for b1, b2 being Tuple of c1,NAT st ( for b3 being Nat st b3 in Seg c1 holds
b1 /. b3 = SubDigit2 c3,b3,c2 ) & ( for b3 being Nat st b3 in Seg c1 holds
b2 /. b3 = SubDigit2 c3,b3,c2 ) holds
b1 = b2
end;
:: deftheorem Def2 defines DigitSD2 RADIX_2:def 2 :
:: deftheorem Def3 defines SDDec2 RADIX_2:def 3 :
:: deftheorem Def4 defines DigitDC2 RADIX_2:def 4 :
definition
let c1,
c2,
c3 be
Nat;
func DecSD2 c3,
c2,
c1 -> Tuple of
a2,
NAT means :
Def5:
:: RADIX_2:def 5
for
b1 being
Nat st
b1 in Seg a2 holds
a4 . b1 = DigitDC2 a3,
b1,
a1;
existence
ex b1 being Tuple of c2,NAT st
for b2 being Nat st b2 in Seg c2 holds
b1 . b2 = DigitDC2 c3,b2,c1
uniqueness
for b1, b2 being Tuple of c2,NAT st ( for b3 being Nat st b3 in Seg c2 holds
b1 . b3 = DigitDC2 c3,b3,c1 ) & ( for b3 being Nat st b3 in Seg c2 holds
b2 . b3 = DigitDC2 c3,b3,c1 ) holds
b1 = b2
end;
:: deftheorem Def5 defines DecSD2 RADIX_2:def 5 :
theorem Th12: :: RADIX_2:12
theorem Th13: :: RADIX_2:13
theorem Th14: :: RADIX_2:14
theorem Th15: :: RADIX_2:15
:: deftheorem Def6 defines Table1 RADIX_2:def 6 :
definition
let c1 be
Integer;
let c2,
c3,
c4 be
Nat;
let c5 be
Tuple of
c4,
(c2 -SD );
assume E16:
c4 >= 1
;
func Mul_mod c1,
c5,
c3,
c2 -> Tuple of
a4,
INT means :
Def7:
:: RADIX_2:def 7
(
a6 . 1
= Table1 a1,
a5,
a3,
a4 & ( for
b1 being
Nat st 1
<= b1 &
b1 <= a4 - 1 holds
ex
b2,
b3 being
Integer st
(
b2 = a6 . b1 &
b3 = a6 . (b1 + 1) &
b3 = (((Radix a2) * b2) + (Table1 a1,a5,a3,(a4 -' b1))) mod a3 ) ) );
existence
ex b1 being Tuple of c4,INT st
( b1 . 1 = Table1 c1,c5,c3,c4 & ( for b2 being Nat st 1 <= b2 & b2 <= c4 - 1 holds
ex b3, b4 being Integer st
( b3 = b1 . b2 & b4 = b1 . (b2 + 1) & b4 = (((Radix c2) * b3) + (Table1 c1,c5,c3,(c4 -' b2))) mod c3 ) ) )
uniqueness
for b1, b2 being Tuple of c4,INT st b1 . 1 = Table1 c1,c5,c3,c4 & ( for b3 being Nat st 1 <= b3 & b3 <= c4 - 1 holds
ex b4, b5 being Integer st
( b4 = b1 . b3 & b5 = b1 . (b3 + 1) & b5 = (((Radix c2) * b4) + (Table1 c1,c5,c3,(c4 -' b3))) mod c3 ) ) & b2 . 1 = Table1 c1,c5,c3,c4 & ( for b3 being Nat st 1 <= b3 & b3 <= c4 - 1 holds
ex b4, b5 being Integer st
( b4 = b2 . b3 & b5 = b2 . (b3 + 1) & b5 = (((Radix c2) * b4) + (Table1 c1,c5,c3,(c4 -' b3))) mod c3 ) ) holds
b1 = b2
end;
:: deftheorem Def7 defines Mul_mod RADIX_2:def 7 :
for
b1 being
Integer for
b2,
b3,
b4 being
Nat for
b5 being
Tuple of
b4,
(b2 -SD ) st
b4 >= 1 holds
for
b6 being
Tuple of
b4,
INT holds
(
b6 = Mul_mod b1,
b5,
b3,
b2 iff (
b6 . 1
= Table1 b1,
b5,
b3,
b4 & ( for
b7 being
Nat st 1
<= b7 &
b7 <= b4 - 1 holds
ex
b8,
b9 being
Integer st
(
b8 = b6 . b7 &
b9 = b6 . (b7 + 1) &
b9 = (((Radix b2) * b8) + (Table1 b1,b5,b3,(b4 -' b7))) mod b3 ) ) ) );
theorem Th16: :: RADIX_2:16
:: deftheorem Def8 defines Table2 RADIX_2:def 8 :
definition
let c1,
c2,
c3,
c4 be
Nat;
let c5 be
Tuple of
c4,
NAT ;
assume E17:
c4 >= 1
;
func Pow_mod c3,
c5,
c2,
c1 -> Tuple of
a4,
NAT means :
Def9:
:: RADIX_2:def 9
(
a6 . 1
= Table2 a3,
a5,
a2,
a4 & ( for
b1 being
Nat st 1
<= b1 &
b1 <= a4 - 1 holds
ex
b2,
b3 being
Nat st
(
b2 = a6 . b1 &
b3 = a6 . (b1 + 1) &
b3 = (((b2 |^ (Radix a1)) mod a2) * (Table2 a3,a5,a2,(a4 -' b1))) mod a2 ) ) );
existence
ex b1 being Tuple of c4,NAT st
( b1 . 1 = Table2 c3,c5,c2,c4 & ( for b2 being Nat st 1 <= b2 & b2 <= c4 - 1 holds
ex b3, b4 being Nat st
( b3 = b1 . b2 & b4 = b1 . (b2 + 1) & b4 = (((b3 |^ (Radix c1)) mod c2) * (Table2 c3,c5,c2,(c4 -' b2))) mod c2 ) ) )
uniqueness
for b1, b2 being Tuple of c4,NAT st b1 . 1 = Table2 c3,c5,c2,c4 & ( for b3 being Nat st 1 <= b3 & b3 <= c4 - 1 holds
ex b4, b5 being Nat st
( b4 = b1 . b3 & b5 = b1 . (b3 + 1) & b5 = (((b4 |^ (Radix c1)) mod c2) * (Table2 c3,c5,c2,(c4 -' b3))) mod c2 ) ) & b2 . 1 = Table2 c3,c5,c2,c4 & ( for b3 being Nat st 1 <= b3 & b3 <= c4 - 1 holds
ex b4, b5 being Nat st
( b4 = b2 . b3 & b5 = b2 . (b3 + 1) & b5 = (((b4 |^ (Radix c1)) mod c2) * (Table2 c3,c5,c2,(c4 -' b3))) mod c2 ) ) holds
b1 = b2
end;
:: deftheorem Def9 defines Pow_mod RADIX_2:def 9 :
for
b1,
b2,
b3,
b4 being
Nat for
b5 being
Tuple of
b4,
NAT st
b4 >= 1 holds
for
b6 being
Tuple of
b4,
NAT holds
(
b6 = Pow_mod b3,
b5,
b2,
b1 iff (
b6 . 1
= Table2 b3,
b5,
b2,
b4 & ( for
b7 being
Nat st 1
<= b7 &
b7 <= b4 - 1 holds
ex
b8,
b9 being
Nat st
(
b8 = b6 . b7 &
b9 = b6 . (b7 + 1) &
b9 = (((b8 |^ (Radix b1)) mod b2) * (Table2 b3,b5,b2,(b4 -' b7))) mod b2 ) ) ) );
theorem Th17: :: RADIX_2:17
for
b1 being
Nat st
b1 >= 1 holds
for
b2,
b3,
b4,
b5 being
Nat st
b5 is_represented_by b1,
b3 &
b4 > 0 holds
for
b6 being
Tuple of
b1,
NAT st
b6 = DecSD2 b5,
b1,
b3 holds
(Pow_mod b2,b6,b4,b3) . b1 = (b2 |^ b5) mod b4