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 = y ∈ 0 ..^ M N | y gcd M N = 1
hashgcdlem.b ⊢ B = z ∈ 0 ..^ M | z gcd M = N
hashgcdlem.f ⊢ F = x ∈ A ⟼ x ⋅ N
Assertion hashgcdlem ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → F : A ⟶ 1-1 onto B

Proof

Step Hyp Ref Expression
1 hashgcdlem.a ⊢ A = y ∈ 0 ..^ M N | y gcd M N = 1
2 hashgcdlem.b ⊢ B = z ∈ 0 ..^ M | z gcd M = N
3 hashgcdlem.f ⊢ F = x ∈ A ⟼ x ⋅ N
4 oveq1 ⊢ y = x → y gcd M N = x gcd M N
5 4 eqeq1d ⊢ y = x → y gcd M N = 1 ↔ x gcd M N = 1
6 5 1 elrab2 ⊢ x ∈ A ↔ x ∈ 0 ..^ M N ∧ x gcd M N = 1
7 elfzonn0 ⊢ x ∈ 0 ..^ M N → x ∈ ℕ 0
8 7 ad2antrl ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x ∈ ℕ 0
9 nnnn0 ⊢ N ∈ ℕ → N ∈ ℕ 0
10 9 3ad2ant2 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → N ∈ ℕ 0
11 10 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → N ∈ ℕ 0
12 8 11 nn0mulcld ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x ⋅ N ∈ ℕ 0
13 simpl1 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → M ∈ ℕ
14 elfzolt2 ⊢ x ∈ 0 ..^ M N → x < M N
15 14 ad2antrl ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x < M N
16 elfzoelz ⊢ x ∈ 0 ..^ M N → x ∈ ℤ
17 16 ad2antrl ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x ∈ ℤ
18 17 zred ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x ∈ ℝ
19 nnre ⊢ M ∈ ℕ → M ∈ ℝ
20 19 3ad2ant1 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → M ∈ ℝ
21 20 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → M ∈ ℝ
22 nnre ⊢ N ∈ ℕ → N ∈ ℝ
23 nngt0 ⊢ N ∈ ℕ → 0 < N
24 22 23 jca ⊢ N ∈ ℕ → N ∈ ℝ ∧ 0 < N
25 24 3ad2ant2 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → N ∈ ℝ ∧ 0 < N
26 25 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → N ∈ ℝ ∧ 0 < N
27 ltmuldiv ⊢ x ∈ ℝ ∧ M ∈ ℝ ∧ N ∈ ℝ ∧ 0 < N → x ⋅ N < M ↔ x < M N
28 18 21 26 27 syl3anc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x ⋅ N < M ↔ x < M N
29 15 28 mpbird ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x ⋅ N < M
30 elfzo0 ⊢ x ⋅ N ∈ 0 ..^ M ↔ x ⋅ N ∈ ℕ 0 ∧ M ∈ ℕ ∧ x ⋅ N < M
31 12 13 29 30 syl3anbrc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x ⋅ N ∈ 0 ..^ M
32 nncn ⊢ M ∈ ℕ → M ∈ ℂ
33 32 3ad2ant1 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → M ∈ ℂ
34 nncn ⊢ N ∈ ℕ → N ∈ ℂ
35 34 3ad2ant2 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → N ∈ ℂ
36 nnne0 ⊢ N ∈ ℕ → N ≠ 0
37 36 3ad2ant2 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → N ≠ 0
38 33 35 37 divcan1d ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → M N ⋅ N = M
39 38 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → M N ⋅ N = M
40 39 eqcomd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → M = M N ⋅ N
41 40 oveq2d ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x ⋅ N gcd M = x ⋅ N gcd M N ⋅ N
42 nndivdvds ⊢ M ∈ ℕ ∧ N ∈ ℕ → N ∥ M ↔ M N ∈ ℕ
43 42 biimp3a ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → M N ∈ ℕ
44 43 nnzd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → M N ∈ ℤ
45 44 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → M N ∈ ℤ
46 mulgcdr ⊢ x ∈ ℤ ∧ M N ∈ ℤ ∧ N ∈ ℕ 0 → x ⋅ N gcd M N ⋅ N = x gcd M N ⋅ N
47 17 45 11 46 syl3anc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x ⋅ N gcd M N ⋅ N = x gcd M N ⋅ N
48 simprr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x gcd M N = 1
49 48 oveq1d ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x gcd M N ⋅ N = 1 ⋅ N
50 35 mullidd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → 1 ⋅ N = N
51 50 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → 1 ⋅ N = N
52 49 51 eqtrd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x gcd M N ⋅ N = N
53 41 47 52 3eqtrd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x ⋅ N gcd M = N
54 oveq1 ⊢ z = x ⋅ N → z gcd M = x ⋅ N gcd M
55 54 eqeq1d ⊢ z = x ⋅ N → z gcd M = N ↔ x ⋅ N gcd M = N
56 55 2 elrab2 ⊢ x ⋅ N ∈ B ↔ x ⋅ N ∈ 0 ..^ M ∧ x ⋅ N gcd M = N
57 31 53 56 sylanbrc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ x gcd M N = 1 → x ⋅ N ∈ B
58 6 57 sylan2b ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ A → x ⋅ N ∈ B
59 oveq1 ⊢ z = w → z gcd M = w gcd M
60 59 eqeq1d ⊢ z = w → z gcd M = N ↔ w gcd M = N
61 60 2 elrab2 ⊢ w ∈ B ↔ w ∈ 0 ..^ M ∧ w gcd M = N
62 simprr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w gcd M = N
63 elfzoelz ⊢ w ∈ 0 ..^ M → w ∈ ℤ
64 63 ad2antrl ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w ∈ ℤ
65 simpl1 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → M ∈ ℕ
66 65 nnzd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → M ∈ ℤ
67 gcddvds ⊢ w ∈ ℤ ∧ M ∈ ℤ → w gcd M ∥ w ∧ w gcd M ∥ M
68 64 66 67 syl2anc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w gcd M ∥ w ∧ w gcd M ∥ M
69 68 simpld ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w gcd M ∥ w
70 62 69 eqbrtrrd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → N ∥ w
71 nnz ⊢ N ∈ ℕ → N ∈ ℤ
72 71 3ad2ant2 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → N ∈ ℤ
73 72 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → N ∈ ℤ
74 37 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → N ≠ 0
75 dvdsval2 ⊢ N ∈ ℤ ∧ N ≠ 0 ∧ w ∈ ℤ → N ∥ w ↔ w N ∈ ℤ
76 73 74 64 75 syl3anc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → N ∥ w ↔ w N ∈ ℤ
77 70 76 mpbid ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w N ∈ ℤ
78 elfzofz ⊢ w ∈ 0 ..^ M → w ∈ 0 … M
79 78 ad2antrl ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w ∈ 0 … M
80 elfznn0 ⊢ w ∈ 0 … M → w ∈ ℕ 0
81 nn0re ⊢ w ∈ ℕ 0 → w ∈ ℝ
82 nn0ge0 ⊢ w ∈ ℕ 0 → 0 ≤ w
83 81 82 jca ⊢ w ∈ ℕ 0 → w ∈ ℝ ∧ 0 ≤ w
84 79 80 83 3syl ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w ∈ ℝ ∧ 0 ≤ w
85 25 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → N ∈ ℝ ∧ 0 < N
86 divge0 ⊢ w ∈ ℝ ∧ 0 ≤ w ∧ N ∈ ℝ ∧ 0 < N → 0 ≤ w N
87 84 85 86 syl2anc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → 0 ≤ w N
88 elnn0z ⊢ w N ∈ ℕ 0 ↔ w N ∈ ℤ ∧ 0 ≤ w N
89 77 87 88 sylanbrc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w N ∈ ℕ 0
90 43 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → M N ∈ ℕ
91 elfzolt2 ⊢ w ∈ 0 ..^ M → w < M
92 91 ad2antrl ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w < M
93 64 zred ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w ∈ ℝ
94 20 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → M ∈ ℝ
95 ltdiv1 ⊢ w ∈ ℝ ∧ M ∈ ℝ ∧ N ∈ ℝ ∧ 0 < N → w < M ↔ w N < M N
96 93 94 85 95 syl3anc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w < M ↔ w N < M N
97 92 96 mpbid ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w N < M N
98 elfzo0 ⊢ w N ∈ 0 ..^ M N ↔ w N ∈ ℕ 0 ∧ M N ∈ ℕ ∧ w N < M N
99 89 90 97 98 syl3anbrc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w N ∈ 0 ..^ M N
100 62 oveq1d ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w gcd M N = N N
101 simpl2 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → N ∈ ℕ
102 simpl3 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → N ∥ M
103 gcddiv ⊢ w ∈ ℤ ∧ M ∈ ℤ ∧ N ∈ ℕ ∧ N ∥ w ∧ N ∥ M → w gcd M N = w N gcd M N
104 64 66 101 70 102 103 syl32anc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w gcd M N = w N gcd M N
105 35 37 dividd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → N N = 1
106 105 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → N N = 1
107 100 104 106 3eqtr3d ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w N gcd M N = 1
108 oveq1 ⊢ y = w N → y gcd M N = w N gcd M N
109 108 eqeq1d ⊢ y = w N → y gcd M N = 1 ↔ w N gcd M N = 1
110 109 1 elrab2 ⊢ w N ∈ A ↔ w N ∈ 0 ..^ M N ∧ w N gcd M N = 1
111 99 107 110 sylanbrc ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ 0 ..^ M ∧ w gcd M = N → w N ∈ A
112 61 111 sylan2b ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ w ∈ B → w N ∈ A
113 6 simplbi ⊢ x ∈ A → x ∈ 0 ..^ M N
114 61 simplbi ⊢ w ∈ B → w ∈ 0 ..^ M
115 113 114 anim12i ⊢ x ∈ A ∧ w ∈ B → x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M
116 63 ad2antll ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → w ∈ ℤ
117 116 zcnd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → w ∈ ℂ
118 35 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → N ∈ ℂ
119 37 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → N ≠ 0
120 117 118 119 divcan1d ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → w N ⋅ N = w
121 120 eqcomd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → w = w N ⋅ N
122 oveq1 ⊢ x = w N → x ⋅ N = w N ⋅ N
123 122 eqeq2d ⊢ x = w N → w = x ⋅ N ↔ w = w N ⋅ N
124 121 123 syl5ibrcom ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → x = w N → w = x ⋅ N
125 16 ad2antrl ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → x ∈ ℤ
126 125 zcnd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → x ∈ ℂ
127 126 118 119 divcan4d ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → x ⋅ N N = x
128 127 eqcomd ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → x = x ⋅ N N
129 oveq1 ⊢ w = x ⋅ N → w N = x ⋅ N N
130 129 eqeq2d ⊢ w = x ⋅ N → x = w N ↔ x = x ⋅ N N
131 128 130 syl5ibrcom ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → w = x ⋅ N → x = w N
132 124 131 impbid ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ 0 ..^ M N ∧ w ∈ 0 ..^ M → x = w N ↔ w = x ⋅ N
133 115 132 sylan2 ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M ∧ x ∈ A ∧ w ∈ B → x = w N ↔ w = x ⋅ N
134 3 58 112 133 f1o2d ⊢ M ∈ ℕ ∧ N ∈ ℕ ∧ N ∥ M → F : A ⟶ 1-1 onto B