:: RADIX_2 semantic presentation
theorem Th1: :: RADIX_2:1
for b
1 being
Nat holds b
1 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 c
1, c
2 be
Nat;
let c
3 be
Tuple of c
1,
NAT ;
func DigitSD2 c
3,c
2 -> Tuple of a
1,
NAT means :
Def2:
:: RADIX_2:def 2
for b
1 being
Nat holds
( b
1 in Seg a
1 implies a
4 /. b
1 = SubDigit2 a
3,b
1,a
2 );
existence
ex b1 being Tuple of c1,NAT st
for b2 being Nat holds
( b2 in Seg c1 implies b1 /. b2 = SubDigit2 c3,b2,c2 )
uniqueness
for b1, b2 being Tuple of c1,NAT holds
( ( for b3 being Nat holds
( b3 in Seg c1 implies b1 /. b3 = SubDigit2 c3,b3,c2 ) ) & ( for b3 being Nat holds
( b3 in Seg c1 implies b2 /. b3 = SubDigit2 c3,b3,c2 ) ) implies 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 c
1, c
2, c
3 be
Nat;
func DecSD2 c
3,c
2,c
1 -> Tuple of a
2,
NAT means :
Def5:
:: RADIX_2:def 5
for b
1 being
Nat holds
( b
1 in Seg a
2 implies a
4 . b
1 = DigitDC2 a
3,b
1,a
1 );
existence
ex b1 being Tuple of c2,NAT st
for b2 being Nat holds
( b2 in Seg c2 implies b1 . b2 = DigitDC2 c3,b2,c1 )
uniqueness
for b1, b2 being Tuple of c2,NAT holds
( ( for b3 being Nat holds
( b3 in Seg c2 implies b1 . b3 = DigitDC2 c3,b3,c1 ) ) & ( for b3 being Nat holds
( b3 in Seg c2 implies b2 . b3 = DigitDC2 c3,b3,c1 ) ) implies 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 c
1 be
Integer;
let c
2, c
3, c
4 be
Nat;
let c
5 be
Tuple of c
4,
(c2 -SD );
assume E16:
c
4 >= 1
;
func Mul_mod c
1,c
5,c
3,c
2 -> Tuple of a
4,
INT means :
Def7:
:: RADIX_2:def 7
( a
6 . 1
= Table1 a
1,a
5,a
3,a
4 & ( for b
1 being
Nat holds
not ( 1
<= b
1 & b
1 <= a
4 - 1 & ( for b
2, b
3 being
Integer holds
not ( b
2 = a
6 . b
1 & b
3 = a
6 . (b1 + 1) & b
3 = (((Radix a2) * b2) + (Table1 a1,a5,a3,(a4 -' b1))) mod a
3 ) ) ) ) );
existence
ex b1 being Tuple of c4,INT st
( b1 . 1 = Table1 c1,c5,c3,c4 & ( for b2 being Nat holds
not ( 1 <= b2 & b2 <= c4 - 1 & ( for b3, b4 being Integer holds
not ( 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 holds
( b1 . 1 = Table1 c1,c5,c3,c4 & ( for b3 being Nat holds
not ( 1 <= b3 & b3 <= c4 - 1 & ( for b4, b5 being Integer holds
not ( 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 holds
not ( 1 <= b3 & b3 <= c4 - 1 & ( for b4, b5 being Integer holds
not ( b4 = b2 . b3 & b5 = b2 . (b3 + 1) & b5 = (((Radix c2) * b4) + (Table1 c1,c5,c3,(c4 -' b3))) mod c3 ) ) ) ) implies b1 = b2 )
end;
:: deftheorem Def7 defines Mul_mod RADIX_2:def 7 :
for b
1 being
Integerfor b
2, b
3, b
4 being
Natfor b
5 being
Tuple of b
4,
(b2 -SD ) holds
( b
4 >= 1 implies for b
6 being
Tuple of b
4,
INT holds
( b
6 = Mul_mod b
1,b
5,b
3,b
2 iff ( b
6 . 1
= Table1 b
1,b
5,b
3,b
4 & ( for b
7 being
Nat holds
not ( 1
<= b
7 & b
7 <= b
4 - 1 & ( for b
8, b
9 being
Integer holds
not ( b
8 = b
6 . b
7 & b
9 = b
6 . (b7 + 1) & b
9 = (((Radix b2) * b8) + (Table1 b1,b5,b3,(b4 -' b7))) mod b
3 ) ) ) ) ) ) );
theorem Th16: :: RADIX_2:16
:: deftheorem Def8 defines Table2 RADIX_2:def 8 :
definition
let c
1, c
2, c
3, c
4 be
Nat;
let c
5 be
Tuple of c
4,
NAT ;
assume E17:
c
4 >= 1
;
func Pow_mod c
3,c
5,c
2,c
1 -> Tuple of a
4,
NAT means :
Def9:
:: RADIX_2:def 9
( a
6 . 1
= Table2 a
3,a
5,a
2,a
4 & ( for b
1 being
Nat holds
not ( 1
<= b
1 & b
1 <= a
4 - 1 & ( for b
2, b
3 being
Nat holds
not ( b
2 = a
6 . b
1 & b
3 = a
6 . (b1 + 1) & b
3 = (((b2 |^ (Radix a1)) mod a2) * (Table2 a3,a5,a2,(a4 -' b1))) mod a
2 ) ) ) ) );
existence
ex b1 being Tuple of c4,NAT st
( b1 . 1 = Table2 c3,c5,c2,c4 & ( for b2 being Nat holds
not ( 1 <= b2 & b2 <= c4 - 1 & ( for b3, b4 being Nat holds
not ( 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 holds
( b1 . 1 = Table2 c3,c5,c2,c4 & ( for b3 being Nat holds
not ( 1 <= b3 & b3 <= c4 - 1 & ( for b4, b5 being Nat holds
not ( 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 holds
not ( 1 <= b3 & b3 <= c4 - 1 & ( for b4, b5 being Nat holds
not ( b4 = b2 . b3 & b5 = b2 . (b3 + 1) & b5 = (((b4 |^ (Radix c1)) mod c2) * (Table2 c3,c5,c2,(c4 -' b3))) mod c2 ) ) ) ) implies b1 = b2 )
end;
:: deftheorem Def9 defines Pow_mod RADIX_2:def 9 :
for b
1, b
2, b
3, b
4 being
Natfor b
5 being
Tuple of b
4,
NAT holds
( b
4 >= 1 implies for b
6 being
Tuple of b
4,
NAT holds
( b
6 = Pow_mod b
3,b
5,b
2,b
1 iff ( b
6 . 1
= Table2 b
3,b
5,b
2,b
4 & ( for b
7 being
Nat holds
not ( 1
<= b
7 & b
7 <= b
4 - 1 & ( for b
8, b
9 being
Nat holds
not ( b
8 = b
6 . b
7 & b
9 = b
6 . (b7 + 1) & b
9 = (((b8 |^ (Radix b1)) mod b2) * (Table2 b3,b5,b2,(b4 -' b7))) mod b
2 ) ) ) ) ) ) );
theorem Th17: :: RADIX_2:17
for b
1 being
Nat holds
( b
1 >= 1 implies for b
2, b
3, b
4, b
5 being
Nat holds
( b
5 is_represented_by b
1,b
3 & b
4 > 0 implies for b
6 being
Tuple of b
1,
NAT holds
( b
6 = DecSD2 b
5,b
1,b
3 implies
(Pow_mod b2,b6,b4,b3) . b
1 = (b2 |^ b5) mod b
4 ) ) )