ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  hashgcdlem Unicode version

Theorem hashgcdlem 11695
Description: A correspondence between elements of specific GCD and relative primes in a smaller ring. (Contributed by Stefan O'Rear, 12-Sep-2015.)
Hypotheses
Ref Expression
hashgcdlem.a  |-  A  =  { y  e.  ( 0..^ ( M  /  N ) )  |  ( y  gcd  ( M  /  N ) )  =  1 }
hashgcdlem.b  |-  B  =  { z  e.  ( 0..^ M )  |  ( z  gcd  M
)  =  N }
hashgcdlem.f  |-  F  =  ( x  e.  A  |->  ( x  x.  N
) )
Assertion
Ref Expression
hashgcdlem  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  F : A -1-1-onto-> B )
Distinct variable groups:    x, y, M   
x, z, M    x, A    x, B    x, N, y    z, N
Allowed substitution hints:    A( y, z)    B( y, z)    F( x, y, z)

Proof of Theorem hashgcdlem
Dummy variable  w is distinct from all other variables.
StepHypRef Expression
1 hashgcdlem.f . 2  |-  F  =  ( x  e.  A  |->  ( x  x.  N
) )
2 oveq1 5713 . . . . 5  |-  ( y  =  x  ->  (
y  gcd  ( M  /  N ) )  =  ( x  gcd  ( M  /  N ) ) )
32eqeq1d 2108 . . . 4  |-  ( y  =  x  ->  (
( y  gcd  ( M  /  N ) )  =  1  <->  ( x  gcd  ( M  /  N
) )  =  1 ) )
4 hashgcdlem.a . . . 4  |-  A  =  { y  e.  ( 0..^ ( M  /  N ) )  |  ( y  gcd  ( M  /  N ) )  =  1 }
53, 4elrab2 2796 . . 3  |-  ( x  e.  A  <->  ( x  e.  ( 0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N
) )  =  1 ) )
6 elfzonn0 9804 . . . . . . 7  |-  ( x  e.  ( 0..^ ( M  /  N ) )  ->  x  e.  NN0 )
76ad2antrl 477 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  x  e.  NN0 )
8 nnnn0 8836 . . . . . . . 8  |-  ( N  e.  NN  ->  N  e.  NN0 )
983ad2ant2 971 . . . . . . 7  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  N  e.  NN0 )
109adantr 272 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  N  e.  NN0 )
117, 10nn0mulcld 8887 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( x  x.  N )  e.  NN0 )
12 simpl1 952 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  M  e.  NN )
13 elfzolt2 9774 . . . . . . 7  |-  ( x  e.  ( 0..^ ( M  /  N ) )  ->  x  <  ( M  /  N ) )
1413ad2antrl 477 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  x  <  ( M  /  N ) )
15 elfzoelz 9765 . . . . . . . . 9  |-  ( x  e.  ( 0..^ ( M  /  N ) )  ->  x  e.  ZZ )
1615ad2antrl 477 . . . . . . . 8  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  x  e.  ZZ )
1716zred 9025 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  x  e.  RR )
18 nnre 8585 . . . . . . . . 9  |-  ( M  e.  NN  ->  M  e.  RR )
19183ad2ant1 970 . . . . . . . 8  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  M  e.  RR )
2019adantr 272 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  M  e.  RR )
21 nnre 8585 . . . . . . . . . 10  |-  ( N  e.  NN  ->  N  e.  RR )
22 nngt0 8603 . . . . . . . . . 10  |-  ( N  e.  NN  ->  0  <  N )
2321, 22jca 302 . . . . . . . . 9  |-  ( N  e.  NN  ->  ( N  e.  RR  /\  0  <  N ) )
24233ad2ant2 971 . . . . . . . 8  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  ( N  e.  RR  /\  0  <  N ) )
2524adantr 272 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( N  e.  RR  /\  0  < 
N ) )
26 ltmuldiv 8490 . . . . . . 7  |-  ( ( x  e.  RR  /\  M  e.  RR  /\  ( N  e.  RR  /\  0  <  N ) )  -> 
( ( x  x.  N )  <  M  <->  x  <  ( M  /  N ) ) )
2717, 20, 25, 26syl3anc 1184 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( ( x  x.  N )  < 
M  <->  x  <  ( M  /  N ) ) )
2814, 27mpbird 166 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( x  x.  N )  <  M
)
29 elfzo0 9800 . . . . 5  |-  ( ( x  x.  N )  e.  ( 0..^ M )  <->  ( ( x  x.  N )  e. 
NN0  /\  M  e.  NN  /\  ( x  x.  N )  <  M
) )
3011, 12, 28, 29syl3anbrc 1133 . . . 4  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( x  x.  N )  e.  ( 0..^ M ) )
31 nncn 8586 . . . . . . . . . 10  |-  ( M  e.  NN  ->  M  e.  CC )
32313ad2ant1 970 . . . . . . . . 9  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  M  e.  CC )
33 nncn 8586 . . . . . . . . . 10  |-  ( N  e.  NN  ->  N  e.  CC )
34333ad2ant2 971 . . . . . . . . 9  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  N  e.  CC )
35 nnap0 8607 . . . . . . . . . 10  |-  ( N  e.  NN  ->  N #  0 )
36353ad2ant2 971 . . . . . . . . 9  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  N #  0 )
3732, 34, 36divcanap1d 8412 . . . . . . . 8  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  (
( M  /  N
)  x.  N )  =  M )
3837adantr 272 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( ( M  /  N )  x.  N )  =  M )
3938eqcomd 2105 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  M  =  ( ( M  /  N
)  x.  N ) )
4039oveq2d 5722 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( ( x  x.  N )  gcd 
M )  =  ( ( x  x.  N
)  gcd  ( ( M  /  N )  x.  N ) ) )
41 nndivdvds 11294 . . . . . . . . 9  |-  ( ( M  e.  NN  /\  N  e.  NN )  ->  ( N  ||  M  <->  ( M  /  N )  e.  NN ) )
4241biimp3a 1291 . . . . . . . 8  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  ( M  /  N )  e.  NN )
4342nnzd 9024 . . . . . . 7  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  ( M  /  N )  e.  ZZ )
4443adantr 272 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( M  /  N )  e.  ZZ )
45 mulgcdr 11499 . . . . . 6  |-  ( ( x  e.  ZZ  /\  ( M  /  N
)  e.  ZZ  /\  N  e.  NN0 )  -> 
( ( x  x.  N )  gcd  (
( M  /  N
)  x.  N ) )  =  ( ( x  gcd  ( M  /  N ) )  x.  N ) )
4616, 44, 10, 45syl3anc 1184 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( ( x  x.  N )  gcd  ( ( M  /  N )  x.  N
) )  =  ( ( x  gcd  ( M  /  N ) )  x.  N ) )
47 simprr 502 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( x  gcd  ( M  /  N
) )  =  1 )
4847oveq1d 5721 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( ( x  gcd  ( M  /  N ) )  x.  N )  =  ( 1  x.  N ) )
4934mulid2d 7656 . . . . . . 7  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  (
1  x.  N )  =  N )
5049adantr 272 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( 1  x.  N )  =  N )
5148, 50eqtrd 2132 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( ( x  gcd  ( M  /  N ) )  x.  N )  =  N )
5240, 46, 513eqtrd 2136 . . . 4  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( ( x  x.  N )  gcd 
M )  =  N )
53 oveq1 5713 . . . . . 6  |-  ( z  =  ( x  x.  N )  ->  (
z  gcd  M )  =  ( ( x  x.  N )  gcd 
M ) )
5453eqeq1d 2108 . . . . 5  |-  ( z  =  ( x  x.  N )  ->  (
( z  gcd  M
)  =  N  <->  ( (
x  x.  N )  gcd  M )  =  N ) )
55 hashgcdlem.b . . . . 5  |-  B  =  { z  e.  ( 0..^ M )  |  ( z  gcd  M
)  =  N }
5654, 55elrab2 2796 . . . 4  |-  ( ( x  x.  N )  e.  B  <->  ( (
x  x.  N )  e.  ( 0..^ M )  /\  ( ( x  x.  N )  gcd  M )  =  N ) )
5730, 52, 56sylanbrc 411 . . 3  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  ( x  gcd  ( M  /  N ) )  =  1 ) )  ->  ( x  x.  N )  e.  B
)
585, 57sylan2b 283 . 2  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  x  e.  A )  ->  ( x  x.  N
)  e.  B )
59 oveq1 5713 . . . . 5  |-  ( z  =  w  ->  (
z  gcd  M )  =  ( w  gcd  M ) )
6059eqeq1d 2108 . . . 4  |-  ( z  =  w  ->  (
( z  gcd  M
)  =  N  <->  ( w  gcd  M )  =  N ) )
6160, 55elrab2 2796 . . 3  |-  ( w  e.  B  <->  ( w  e.  ( 0..^ M )  /\  ( w  gcd  M )  =  N ) )
62 simprr 502 . . . . . . . 8  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( w  gcd  M )  =  N )
63 elfzoelz 9765 . . . . . . . . . . 11  |-  ( w  e.  ( 0..^ M )  ->  w  e.  ZZ )
6463ad2antrl 477 . . . . . . . . . 10  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  w  e.  ZZ )
65 simpl1 952 . . . . . . . . . . 11  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  M  e.  NN )
6665nnzd 9024 . . . . . . . . . 10  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  M  e.  ZZ )
67 gcddvds 11447 . . . . . . . . . 10  |-  ( ( w  e.  ZZ  /\  M  e.  ZZ )  ->  ( ( w  gcd  M )  ||  w  /\  ( w  gcd  M ) 
||  M ) )
6864, 66, 67syl2anc 406 . . . . . . . . 9  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( ( w  gcd  M )  ||  w  /\  ( w  gcd  M )  ||  M ) )
6968simpld 111 . . . . . . . 8  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( w  gcd  M )  ||  w )
7062, 69eqbrtrrd 3897 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  N  ||  w
)
71 nnz 8925 . . . . . . . . . 10  |-  ( N  e.  NN  ->  N  e.  ZZ )
72713ad2ant2 971 . . . . . . . . 9  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  N  e.  ZZ )
7372adantr 272 . . . . . . . 8  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  N  e.  ZZ )
74 nnne0 8606 . . . . . . . . . 10  |-  ( N  e.  NN  ->  N  =/=  0 )
75743ad2ant2 971 . . . . . . . . 9  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  N  =/=  0 )
7675adantr 272 . . . . . . . 8  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  N  =/=  0
)
77 dvdsval2 11291 . . . . . . . 8  |-  ( ( N  e.  ZZ  /\  N  =/=  0  /\  w  e.  ZZ )  ->  ( N  ||  w  <->  ( w  /  N )  e.  ZZ ) )
7873, 76, 64, 77syl3anc 1184 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( N  ||  w 
<->  ( w  /  N
)  e.  ZZ ) )
7970, 78mpbid 146 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( w  /  N )  e.  ZZ )
80 elfzofz 9780 . . . . . . . . 9  |-  ( w  e.  ( 0..^ M )  ->  w  e.  ( 0 ... M
) )
8180ad2antrl 477 . . . . . . . 8  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  w  e.  ( 0 ... M ) )
82 elfznn0 9735 . . . . . . . 8  |-  ( w  e.  ( 0 ... M )  ->  w  e.  NN0 )
83 nn0re 8838 . . . . . . . . 9  |-  ( w  e.  NN0  ->  w  e.  RR )
84 nn0ge0 8854 . . . . . . . . 9  |-  ( w  e.  NN0  ->  0  <_  w )
8583, 84jca 302 . . . . . . . 8  |-  ( w  e.  NN0  ->  ( w  e.  RR  /\  0  <_  w ) )
8681, 82, 853syl 17 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( w  e.  RR  /\  0  <_  w ) )
8724adantr 272 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( N  e.  RR  /\  0  < 
N ) )
88 divge0 8489 . . . . . . 7  |-  ( ( ( w  e.  RR  /\  0  <_  w )  /\  ( N  e.  RR  /\  0  <  N ) )  ->  0  <_  ( w  /  N ) )
8986, 87, 88syl2anc 406 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  0  <_  (
w  /  N ) )
90 elnn0z 8919 . . . . . 6  |-  ( ( w  /  N )  e.  NN0  <->  ( ( w  /  N )  e.  ZZ  /\  0  <_ 
( w  /  N
) ) )
9179, 89, 90sylanbrc 411 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( w  /  N )  e.  NN0 )
9242adantr 272 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( M  /  N )  e.  NN )
93 elfzolt2 9774 . . . . . . 7  |-  ( w  e.  ( 0..^ M )  ->  w  <  M )
9493ad2antrl 477 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  w  <  M
)
9564zred 9025 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  w  e.  RR )
9619adantr 272 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  M  e.  RR )
97 ltdiv1 8484 . . . . . . 7  |-  ( ( w  e.  RR  /\  M  e.  RR  /\  ( N  e.  RR  /\  0  <  N ) )  -> 
( w  <  M  <->  ( w  /  N )  <  ( M  /  N ) ) )
9895, 96, 87, 97syl3anc 1184 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( w  < 
M  <->  ( w  /  N )  <  ( M  /  N ) ) )
9994, 98mpbid 146 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( w  /  N )  <  ( M  /  N ) )
100 elfzo0 9800 . . . . 5  |-  ( ( w  /  N )  e.  ( 0..^ ( M  /  N ) )  <->  ( ( w  /  N )  e. 
NN0  /\  ( M  /  N )  e.  NN  /\  ( w  /  N
)  <  ( M  /  N ) ) )
10191, 92, 99, 100syl3anbrc 1133 . . . 4  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( w  /  N )  e.  ( 0..^ ( M  /  N ) ) )
10262oveq1d 5721 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( ( w  gcd  M )  /  N )  =  ( N  /  N ) )
103 simpl2 953 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  N  e.  NN )
104 simpl3 954 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  N  ||  M
)
105 gcddiv 11500 . . . . . 6  |-  ( ( ( w  e.  ZZ  /\  M  e.  ZZ  /\  N  e.  NN )  /\  ( N  ||  w  /\  N  ||  M ) )  ->  ( (
w  gcd  M )  /  N )  =  ( ( w  /  N
)  gcd  ( M  /  N ) ) )
10664, 66, 103, 70, 104, 105syl32anc 1192 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( ( w  gcd  M )  /  N )  =  ( ( w  /  N
)  gcd  ( M  /  N ) ) )
10734, 36dividapd 8407 . . . . . 6  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  ( N  /  N )  =  1 )
108107adantr 272 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( N  /  N )  =  1 )
109102, 106, 1083eqtr3d 2140 . . . 4  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( ( w  /  N )  gcd  ( M  /  N
) )  =  1 )
110 oveq1 5713 . . . . . 6  |-  ( y  =  ( w  /  N )  ->  (
y  gcd  ( M  /  N ) )  =  ( ( w  /  N )  gcd  ( M  /  N ) ) )
111110eqeq1d 2108 . . . . 5  |-  ( y  =  ( w  /  N )  ->  (
( y  gcd  ( M  /  N ) )  =  1  <->  ( (
w  /  N )  gcd  ( M  /  N ) )  =  1 ) )
112111, 4elrab2 2796 . . . 4  |-  ( ( w  /  N )  e.  A  <->  ( (
w  /  N )  e.  ( 0..^ ( M  /  N ) )  /\  ( ( w  /  N )  gcd  ( M  /  N ) )  =  1 ) )
113101, 109, 112sylanbrc 411 . . 3  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( w  e.  (
0..^ M )  /\  ( w  gcd  M )  =  N ) )  ->  ( w  /  N )  e.  A
)
11461, 113sylan2b 283 . 2  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  w  e.  B )  ->  ( w  /  N
)  e.  A )
1155simplbi 270 . . . 4  |-  ( x  e.  A  ->  x  e.  ( 0..^ ( M  /  N ) ) )
11661simplbi 270 . . . 4  |-  ( w  e.  B  ->  w  e.  ( 0..^ M ) )
117115, 116anim12i 334 . . 3  |-  ( ( x  e.  A  /\  w  e.  B )  ->  ( x  e.  ( 0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )
11863ad2antll 478 . . . . . . . 8  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  w  e.  ZZ )
119118zcnd 9026 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  w  e.  CC )
12034adantr 272 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  N  e.  CC )
12136adantr 272 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  N #  0 )
122119, 120, 121divcanap1d 8412 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  ( ( w  /  N )  x.  N )  =  w )
123122eqcomd 2105 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  w  =  ( ( w  /  N
)  x.  N ) )
124 oveq1 5713 . . . . . 6  |-  ( x  =  ( w  /  N )  ->  (
x  x.  N )  =  ( ( w  /  N )  x.  N ) )
125124eqeq2d 2111 . . . . 5  |-  ( x  =  ( w  /  N )  ->  (
w  =  ( x  x.  N )  <->  w  =  ( ( w  /  N )  x.  N
) ) )
126123, 125syl5ibrcom 156 . . . 4  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  ( x  =  ( w  /  N
)  ->  w  =  ( x  x.  N
) ) )
12715ad2antrl 477 . . . . . . . 8  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  x  e.  ZZ )
128127zcnd 9026 . . . . . . 7  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  x  e.  CC )
129128, 120, 121divcanap4d 8417 . . . . . 6  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  ( ( x  x.  N )  /  N )  =  x )
130129eqcomd 2105 . . . . 5  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  x  =  ( ( x  x.  N
)  /  N ) )
131 oveq1 5713 . . . . . 6  |-  ( w  =  ( x  x.  N )  ->  (
w  /  N )  =  ( ( x  x.  N )  /  N ) )
132131eqeq2d 2111 . . . . 5  |-  ( w  =  ( x  x.  N )  ->  (
x  =  ( w  /  N )  <->  x  =  ( ( x  x.  N )  /  N
) ) )
133130, 132syl5ibrcom 156 . . . 4  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  ( w  =  ( x  x.  N
)  ->  x  =  ( w  /  N
) ) )
134126, 133impbid 128 . . 3  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  (
0..^ ( M  /  N ) )  /\  w  e.  ( 0..^ M ) ) )  ->  ( x  =  ( w  /  N
)  <->  w  =  (
x  x.  N ) ) )
135117, 134sylan2 282 . 2  |-  ( ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  /\  ( x  e.  A  /\  w  e.  B
) )  ->  (
x  =  ( w  /  N )  <->  w  =  ( x  x.  N
) ) )
1361, 58, 114, 135f1o2d 5907 1  |-  ( ( M  e.  NN  /\  N  e.  NN  /\  N  ||  M )  ->  F : A -1-1-onto-> B )
Colors of variables: wff set class
Syntax hints:    -> wi 4    /\ wa 103    <-> wb 104    /\ w3a 930    = wceq 1299    e. wcel 1448    =/= wne 2267   {crab 2379   class class class wbr 3875    |-> cmpt 3929   -1-1-onto->wf1o 5058  (class class class)co 5706   CCcc 7498   RRcr 7499   0cc0 7500   1c1 7501    x. cmul 7505    < clt 7672    <_ cle 7673   # cap 8209    / cdiv 8293   NNcn 8578   NN0cn0 8829   ZZcz 8906   ...cfz 9631  ..^cfzo 9760    || cdvds 11288    gcd cgcd 11430
This theorem was proved from axioms:  ax-1 5  ax-2 6  ax-mp 7  ax-ia1 105  ax-ia2 106  ax-ia3 107  ax-in1 584  ax-in2 585  ax-io 671  ax-5 1391  ax-7 1392  ax-gen 1393  ax-ie1 1437  ax-ie2 1438  ax-8 1450  ax-10 1451  ax-11 1452  ax-i12 1453  ax-bndl 1454  ax-4 1455  ax-13 1459  ax-14 1460  ax-17 1474  ax-i9 1478  ax-ial 1482  ax-i5r 1483  ax-ext 2082  ax-coll 3983  ax-sep 3986  ax-nul 3994  ax-pow 4038  ax-pr 4069  ax-un 4293  ax-setind 4390  ax-iinf 4440  ax-cnex 7586  ax-resscn 7587  ax-1cn 7588  ax-1re 7589  ax-icn 7590  ax-addcl 7591  ax-addrcl 7592  ax-mulcl 7593  ax-mulrcl 7594  ax-addcom 7595  ax-mulcom 7596  ax-addass 7597  ax-mulass 7598  ax-distr 7599  ax-i2m1 7600  ax-0lt1 7601  ax-1rid 7602  ax-0id 7603  ax-rnegex 7604  ax-precex 7605  ax-cnre 7606  ax-pre-ltirr 7607  ax-pre-ltwlin 7608  ax-pre-lttrn 7609  ax-pre-apti 7610  ax-pre-ltadd 7611  ax-pre-mulgt0 7612  ax-pre-mulext 7613  ax-arch 7614  ax-caucvg 7615
This theorem depends on definitions:  df-bi 116  df-dc 787  df-3or 931  df-3an 932  df-tru 1302  df-fal 1305  df-nf 1405  df-sb 1704  df-eu 1963  df-mo 1964  df-clab 2087  df-cleq 2093  df-clel 2096  df-nfc 2229  df-ne 2268  df-nel 2363  df-ral 2380  df-rex 2381  df-reu 2382  df-rmo 2383  df-rab 2384  df-v 2643  df-sbc 2863  df-csb 2956  df-dif 3023  df-un 3025  df-in 3027  df-ss 3034  df-nul 3311  df-if 3422  df-pw 3459  df-sn 3480  df-pr 3481  df-op 3483  df-uni 3684  df-int 3719  df-iun 3762  df-br 3876  df-opab 3930  df-mpt 3931  df-tr 3967  df-id 4153  df-po 4156  df-iso 4157  df-iord 4226  df-on 4228  df-ilim 4229  df-suc 4231  df-iom 4443  df-xp 4483  df-rel 4484  df-cnv 4485  df-co 4486  df-dm 4487  df-rn 4488  df-res 4489  df-ima 4490  df-iota 5024  df-fun 5061  df-fn 5062  df-f 5063  df-f1 5064  df-fo 5065  df-f1o 5066  df-fv 5067  df-riota 5662  df-ov 5709  df-oprab 5710  df-mpo 5711  df-1st 5969  df-2nd 5970  df-recs 6132  df-frec 6218  df-sup 6786  df-pnf 7674  df-mnf 7675  df-xr 7676  df-ltxr 7677  df-le 7678  df-sub 7806  df-neg 7807  df-reap 8203  df-ap 8210  df-div 8294  df-inn 8579  df-2 8637  df-3 8638  df-4 8639  df-n0 8830  df-z 8907  df-uz 9177  df-q 9262  df-rp 9292  df-fz 9632  df-fzo 9761  df-fl 9884  df-mod 9937  df-seqfrec 10060  df-exp 10134  df-cj 10455  df-re 10456  df-im 10457  df-rsqrt 10610  df-abs 10611  df-dvds 11289  df-gcd 11431
This theorem is referenced by:  hashgcdeq  11696
  Copyright terms: Public domain W3C validator