Metamath Proof Explorer


Theorem hashgcdlem

Description: A correspondence between elements of specific GCD and relative primes in a smaller ring. (Contributed by Stefan O'Rear, 12-Sep-2015)

Ref Expression
Hypotheses hashgcdlem.a A=y0..^MN|ygcdMN=1
hashgcdlem.b B=z0..^M|zgcdM=N
hashgcdlem.f F=xAx N
Assertion hashgcdlem MNNMF:A1-1 ontoB

Proof

Step Hyp Ref Expression
1 hashgcdlem.a A=y0..^MN|ygcdMN=1
2 hashgcdlem.b B=z0..^M|zgcdM=N
3 hashgcdlem.f F=xAx N
4 oveq1 y=xygcdMN=xgcdMN
5 4 eqeq1d y=xygcdMN=1xgcdMN=1
6 5 1 elrab2 xAx0..^MNxgcdMN=1
7 elfzonn0 x0..^MNx0
8 7 ad2antrl MNNMx0..^MNxgcdMN=1x0
9 nnnn0 NN0
10 9 3ad2ant2 MNNMN0
11 10 adantr MNNMx0..^MNxgcdMN=1N0
12 8 11 nn0mulcld MNNMx0..^MNxgcdMN=1x N0
13 simpl1 MNNMx0..^MNxgcdMN=1M
14 elfzolt2 x0..^MNx<MN
15 14 ad2antrl MNNMx0..^MNxgcdMN=1x<MN
16 elfzoelz x0..^MNx
17 16 ad2antrl MNNMx0..^MNxgcdMN=1x
18 17 zred MNNMx0..^MNxgcdMN=1x
19 nnre MM
20 19 3ad2ant1 MNNMM
21 20 adantr MNNMx0..^MNxgcdMN=1M
22 nnre NN
23 nngt0 N0<N
24 22 23 jca NN0<N
25 24 3ad2ant2 MNNMN0<N
26 25 adantr MNNMx0..^MNxgcdMN=1N0<N
27 ltmuldiv xMN0<Nx N<Mx<MN
28 18 21 26 27 syl3anc MNNMx0..^MNxgcdMN=1x N<Mx<MN
29 15 28 mpbird MNNMx0..^MNxgcdMN=1x N<M
30 elfzo0 x N0..^Mx N0Mx N<M
31 12 13 29 30 syl3anbrc MNNMx0..^MNxgcdMN=1x N0..^M
32 nncn MM
33 32 3ad2ant1 MNNMM
34 nncn NN
35 34 3ad2ant2 MNNMN
36 nnne0 NN0
37 36 3ad2ant2 MNNMN0
38 33 35 37 divcan1d MNNMMN N=M
39 38 adantr MNNMx0..^MNxgcdMN=1MN N=M
40 39 eqcomd MNNMx0..^MNxgcdMN=1M=MN N
41 40 oveq2d MNNMx0..^MNxgcdMN=1x NgcdM=x NgcdMN N
42 nndivdvds MNNMMN
43 42 biimp3a MNNMMN
44 43 nnzd MNNMMN
45 44 adantr MNNMx0..^MNxgcdMN=1MN
46 mulgcdr xMNN0x NgcdMN N=xgcdMN N
47 17 45 11 46 syl3anc MNNMx0..^MNxgcdMN=1x NgcdMN N=xgcdMN N
48 simprr MNNMx0..^MNxgcdMN=1xgcdMN=1
49 48 oveq1d MNNMx0..^MNxgcdMN=1xgcdMN N=1 N
50 35 mullidd MNNM1 N=N
51 50 adantr MNNMx0..^MNxgcdMN=11 N=N
52 49 51 eqtrd MNNMx0..^MNxgcdMN=1xgcdMN N=N
53 41 47 52 3eqtrd MNNMx0..^MNxgcdMN=1x NgcdM=N
54 oveq1 z=x NzgcdM=x NgcdM
55 54 eqeq1d z=x NzgcdM=Nx NgcdM=N
56 55 2 elrab2 x NBx N0..^Mx NgcdM=N
57 31 53 56 sylanbrc MNNMx0..^MNxgcdMN=1x NB
58 6 57 sylan2b MNNMxAx NB
59 oveq1 z=wzgcdM=wgcdM
60 59 eqeq1d z=wzgcdM=NwgcdM=N
61 60 2 elrab2 wBw0..^MwgcdM=N
62 simprr MNNMw0..^MwgcdM=NwgcdM=N
63 elfzoelz w0..^Mw
64 63 ad2antrl MNNMw0..^MwgcdM=Nw
65 simpl1 MNNMw0..^MwgcdM=NM
66 65 nnzd MNNMw0..^MwgcdM=NM
67 gcddvds wMwgcdMwwgcdMM
68 64 66 67 syl2anc MNNMw0..^MwgcdM=NwgcdMwwgcdMM
69 68 simpld MNNMw0..^MwgcdM=NwgcdMw
70 62 69 eqbrtrrd MNNMw0..^MwgcdM=NNw
71 nnz NN
72 71 3ad2ant2 MNNMN
73 72 adantr MNNMw0..^MwgcdM=NN
74 37 adantr MNNMw0..^MwgcdM=NN0
75 dvdsval2 NN0wNwwN
76 73 74 64 75 syl3anc MNNMw0..^MwgcdM=NNwwN
77 70 76 mpbid MNNMw0..^MwgcdM=NwN
78 elfzofz w0..^Mw0M
79 78 ad2antrl MNNMw0..^MwgcdM=Nw0M
80 elfznn0 w0Mw0
81 nn0re w0w
82 nn0ge0 w00w
83 81 82 jca w0w0w
84 79 80 83 3syl MNNMw0..^MwgcdM=Nw0w
85 25 adantr MNNMw0..^MwgcdM=NN0<N
86 divge0 w0wN0<N0wN
87 84 85 86 syl2anc MNNMw0..^MwgcdM=N0wN
88 elnn0z wN0wN0wN
89 77 87 88 sylanbrc MNNMw0..^MwgcdM=NwN0
90 43 adantr MNNMw0..^MwgcdM=NMN
91 elfzolt2 w0..^Mw<M
92 91 ad2antrl MNNMw0..^MwgcdM=Nw<M
93 64 zred MNNMw0..^MwgcdM=Nw
94 20 adantr MNNMw0..^MwgcdM=NM
95 ltdiv1 wMN0<Nw<MwN<MN
96 93 94 85 95 syl3anc MNNMw0..^MwgcdM=Nw<MwN<MN
97 92 96 mpbid MNNMw0..^MwgcdM=NwN<MN
98 elfzo0 wN0..^MNwN0MNwN<MN
99 89 90 97 98 syl3anbrc MNNMw0..^MwgcdM=NwN0..^MN
100 62 oveq1d MNNMw0..^MwgcdM=NwgcdMN=NN
101 simpl2 MNNMw0..^MwgcdM=NN
102 simpl3 MNNMw0..^MwgcdM=NNM
103 gcddiv wMNNwNMwgcdMN=wNgcdMN
104 64 66 101 70 102 103 syl32anc MNNMw0..^MwgcdM=NwgcdMN=wNgcdMN
105 35 37 dividd MNNMNN=1
106 105 adantr MNNMw0..^MwgcdM=NNN=1
107 100 104 106 3eqtr3d MNNMw0..^MwgcdM=NwNgcdMN=1
108 oveq1 y=wNygcdMN=wNgcdMN
109 108 eqeq1d y=wNygcdMN=1wNgcdMN=1
110 109 1 elrab2 wNAwN0..^MNwNgcdMN=1
111 99 107 110 sylanbrc MNNMw0..^MwgcdM=NwNA
112 61 111 sylan2b MNNMwBwNA
113 6 simplbi xAx0..^MN
114 61 simplbi wBw0..^M
115 113 114 anim12i xAwBx0..^MNw0..^M
116 63 ad2antll MNNMx0..^MNw0..^Mw
117 116 zcnd MNNMx0..^MNw0..^Mw
118 35 adantr MNNMx0..^MNw0..^MN
119 37 adantr MNNMx0..^MNw0..^MN0
120 117 118 119 divcan1d MNNMx0..^MNw0..^MwN N=w
121 120 eqcomd MNNMx0..^MNw0..^Mw=wN N
122 oveq1 x=wNx N=wN N
123 122 eqeq2d x=wNw=x Nw=wN N
124 121 123 syl5ibrcom MNNMx0..^MNw0..^Mx=wNw=x N
125 16 ad2antrl MNNMx0..^MNw0..^Mx
126 125 zcnd MNNMx0..^MNw0..^Mx
127 126 118 119 divcan4d MNNMx0..^MNw0..^Mx NN=x
128 127 eqcomd MNNMx0..^MNw0..^Mx=x NN
129 oveq1 w=x NwN=x NN
130 129 eqeq2d w=x Nx=wNx=x NN
131 128 130 syl5ibrcom MNNMx0..^MNw0..^Mw=x Nx=wN
132 124 131 impbid MNNMx0..^MNw0..^Mx=wNw=x N
133 115 132 sylan2 MNNMxAwBx=wNw=x N
134 3 58 112 133 f1o2d MNNMF:A1-1 ontoB