Metamath Proof Explorer


Theorem znf1o

Description: The function F enumerates all equivalence classes in Z/nZ for each n . When n = 0 , ZZ / 0 ZZ = ZZ / { 0 } ~ZZ so we let W = ZZ ; otherwise W = { 0 , ... , n - 1 } enumerates all the equivalence classes. (Contributed by Mario Carneiro, 15-Jun-2015) (Revised by Mario Carneiro, 2-May-2016) (Revised by AV, 13-Jun-2019)

Ref Expression
Hypotheses znf1o.y ⊢ Y = ℤ/Nℤ
znf1o.b ⊢ B = Base Y
znf1o.f ⊢ F = ℤRHom ⁡ Y ↾ W
znf1o.w ⊢ W = if N = 0 ℤ 0 ..^ N
Assertion znf1o ⊢ N ∈ ℕ 0 → F : W ⟶ 1-1 onto B

Proof

Step Hyp Ref Expression
1 znf1o.y ⊢ Y = ℤ/Nℤ
2 znf1o.b ⊢ B = Base Y
3 znf1o.f ⊢ F = ℤRHom ⁡ Y ↾ W
4 znf1o.w ⊢ W = if N = 0 ℤ 0 ..^ N
5 1 zncrng ⊢ N ∈ ℕ 0 → Y ∈ CRing
6 crngring ⊢ Y ∈ CRing → Y ∈ Ring
7 eqid ⊢ ℤRHom ⁡ Y = ℤRHom ⁡ Y
8 7 zrhrhm ⊢ Y ∈ Ring → ℤRHom ⁡ Y ∈ ℤ ring RingHom Y
9 zringbas ⊢ ℤ = Base ℤ ring
10 9 2 rhmf ⊢ ℤRHom ⁡ Y ∈ ℤ ring RingHom Y → ℤRHom ⁡ Y : ℤ ⟶ B
11 5 6 8 10 4syl ⊢ N ∈ ℕ 0 → ℤRHom ⁡ Y : ℤ ⟶ B
12 sseq1 ⊢ ℤ = if N = 0 ℤ 0 ..^ N → ℤ ⊆ ℤ ↔ if N = 0 ℤ 0 ..^ N ⊆ ℤ
13 sseq1 ⊢ 0 ..^ N = if N = 0 ℤ 0 ..^ N → 0 ..^ N ⊆ ℤ ↔ if N = 0 ℤ 0 ..^ N ⊆ ℤ
14 ssid ⊢ ℤ ⊆ ℤ
15 elfzoelz ⊢ x ∈ 0 ..^ N → x ∈ ℤ
16 15 ssriv ⊢ 0 ..^ N ⊆ ℤ
17 12 13 14 16 keephyp ⊢ if N = 0 ℤ 0 ..^ N ⊆ ℤ
18 4 17 eqsstri ⊢ W ⊆ ℤ
19 fssres ⊢ ℤRHom ⁡ Y : ℤ ⟶ B ∧ W ⊆ ℤ → ℤRHom ⁡ Y ↾ W : W ⟶ B
20 11 18 19 sylancl ⊢ N ∈ ℕ 0 → ℤRHom ⁡ Y ↾ W : W ⟶ B
21 3 feq1i ⊢ F : W ⟶ B ↔ ℤRHom ⁡ Y ↾ W : W ⟶ B
22 20 21 sylibr ⊢ N ∈ ℕ 0 → F : W ⟶ B
23 3 fveq1i ⊢ F ⁡ x = ℤRHom ⁡ Y ↾ W ⁡ x
24 fvres ⊢ x ∈ W → ℤRHom ⁡ Y ↾ W ⁡ x = ℤRHom ⁡ Y ⁡ x
25 24 ad2antrl ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → ℤRHom ⁡ Y ↾ W ⁡ x = ℤRHom ⁡ Y ⁡ x
26 23 25 eqtrid ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → F ⁡ x = ℤRHom ⁡ Y ⁡ x
27 3 fveq1i ⊢ F ⁡ y = ℤRHom ⁡ Y ↾ W ⁡ y
28 fvres ⊢ y ∈ W → ℤRHom ⁡ Y ↾ W ⁡ y = ℤRHom ⁡ Y ⁡ y
29 28 ad2antll ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → ℤRHom ⁡ Y ↾ W ⁡ y = ℤRHom ⁡ Y ⁡ y
30 27 29 eqtrid ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → F ⁡ y = ℤRHom ⁡ Y ⁡ y
31 26 30 eqeq12d ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → F ⁡ x = F ⁡ y ↔ ℤRHom ⁡ Y ⁡ x = ℤRHom ⁡ Y ⁡ y
32 simpl ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → N ∈ ℕ 0
33 simprl ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → x ∈ W
34 18 33 sselid ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → x ∈ ℤ
35 simprr ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → y ∈ W
36 18 35 sselid ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → y ∈ ℤ
37 1 7 zndvds ⊢ N ∈ ℕ 0 ∧ x ∈ ℤ ∧ y ∈ ℤ → ℤRHom ⁡ Y ⁡ x = ℤRHom ⁡ Y ⁡ y ↔ N ∥ x − y
38 32 34 36 37 syl3anc ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → ℤRHom ⁡ Y ⁡ x = ℤRHom ⁡ Y ⁡ y ↔ N ∥ x − y
39 elnn0 ⊢ N ∈ ℕ 0 ↔ N ∈ ℕ ∨ N = 0
40 simpl ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → N ∈ ℕ
41 simprl ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → x ∈ W
42 18 41 sselid ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → x ∈ ℤ
43 simprr ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → y ∈ W
44 18 43 sselid ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → y ∈ ℤ
45 moddvds ⊢ N ∈ ℕ ∧ x ∈ ℤ ∧ y ∈ ℤ → x mod N = y mod N ↔ N ∥ x − y
46 40 42 44 45 syl3anc ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → x mod N = y mod N ↔ N ∥ x − y
47 42 zred ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → x ∈ ℝ
48 nnrp ⊢ N ∈ ℕ → N ∈ ℝ +
49 48 adantr ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → N ∈ ℝ +
50 nnne0 ⊢ N ∈ ℕ → N ≠ 0
51 ifnefalse ⊢ N ≠ 0 → if N = 0 ℤ 0 ..^ N = 0 ..^ N
52 50 51 syl ⊢ N ∈ ℕ → if N = 0 ℤ 0 ..^ N = 0 ..^ N
53 4 52 eqtrid ⊢ N ∈ ℕ → W = 0 ..^ N
54 53 adantr ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → W = 0 ..^ N
55 41 54 eleqtrd ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → x ∈ 0 ..^ N
56 elfzole1 ⊢ x ∈ 0 ..^ N → 0 ≤ x
57 55 56 syl ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → 0 ≤ x
58 elfzolt2 ⊢ x ∈ 0 ..^ N → x < N
59 55 58 syl ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → x < N
60 modid ⊢ x ∈ ℝ ∧ N ∈ ℝ + ∧ 0 ≤ x ∧ x < N → x mod N = x
61 47 49 57 59 60 syl22anc ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → x mod N = x
62 44 zred ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → y ∈ ℝ
63 43 54 eleqtrd ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → y ∈ 0 ..^ N
64 elfzole1 ⊢ y ∈ 0 ..^ N → 0 ≤ y
65 63 64 syl ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → 0 ≤ y
66 elfzolt2 ⊢ y ∈ 0 ..^ N → y < N
67 63 66 syl ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → y < N
68 modid ⊢ y ∈ ℝ ∧ N ∈ ℝ + ∧ 0 ≤ y ∧ y < N → y mod N = y
69 62 49 65 67 68 syl22anc ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → y mod N = y
70 61 69 eqeq12d ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → x mod N = y mod N ↔ x = y
71 46 70 bitr3d ⊢ N ∈ ℕ ∧ x ∈ W ∧ y ∈ W → N ∥ x − y ↔ x = y
72 simpl ⊢ N = 0 ∧ x ∈ W ∧ y ∈ W → N = 0
73 72 breq1d ⊢ N = 0 ∧ x ∈ W ∧ y ∈ W → N ∥ x − y ↔ 0 ∥ x − y
74 id ⊢ N = 0 → N = 0
75 0nn0 ⊢ 0 ∈ ℕ 0
76 74 75 eqeltrdi ⊢ N = 0 → N ∈ ℕ 0
77 76 34 sylan ⊢ N = 0 ∧ x ∈ W ∧ y ∈ W → x ∈ ℤ
78 76 36 sylan ⊢ N = 0 ∧ x ∈ W ∧ y ∈ W → y ∈ ℤ
79 77 78 zsubcld ⊢ N = 0 ∧ x ∈ W ∧ y ∈ W → x − y ∈ ℤ
80 0dvds ⊢ x − y ∈ ℤ → 0 ∥ x − y ↔ x − y = 0
81 79 80 syl ⊢ N = 0 ∧ x ∈ W ∧ y ∈ W → 0 ∥ x − y ↔ x − y = 0
82 77 zcnd ⊢ N = 0 ∧ x ∈ W ∧ y ∈ W → x ∈ ℂ
83 78 zcnd ⊢ N = 0 ∧ x ∈ W ∧ y ∈ W → y ∈ ℂ
84 82 83 subeq0ad ⊢ N = 0 ∧ x ∈ W ∧ y ∈ W → x − y = 0 ↔ x = y
85 73 81 84 3bitrd ⊢ N = 0 ∧ x ∈ W ∧ y ∈ W → N ∥ x − y ↔ x = y
86 71 85 jaoian ⊢ N ∈ ℕ ∨ N = 0 ∧ x ∈ W ∧ y ∈ W → N ∥ x − y ↔ x = y
87 39 86 sylanb ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → N ∥ x − y ↔ x = y
88 31 38 87 3bitrd ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → F ⁡ x = F ⁡ y ↔ x = y
89 88 biimpd ⊢ N ∈ ℕ 0 ∧ x ∈ W ∧ y ∈ W → F ⁡ x = F ⁡ y → x = y
90 89 ralrimivva ⊢ N ∈ ℕ 0 → ∀ x ∈ W ∀ y ∈ W F ⁡ x = F ⁡ y → x = y
91 dff13 ⊢ F : W ⟶ 1-1 B ↔ F : W ⟶ B ∧ ∀ x ∈ W ∀ y ∈ W F ⁡ x = F ⁡ y → x = y
92 22 90 91 sylanbrc ⊢ N ∈ ℕ 0 → F : W ⟶ 1-1 B
93 zmodfzo ⊢ z ∈ ℤ ∧ N ∈ ℕ → z mod N ∈ 0 ..^ N
94 93 ancoms ⊢ N ∈ ℕ ∧ z ∈ ℤ → z mod N ∈ 0 ..^ N
95 53 adantr ⊢ N ∈ ℕ ∧ z ∈ ℤ → W = 0 ..^ N
96 94 95 eleqtrrd ⊢ N ∈ ℕ ∧ z ∈ ℤ → z mod N ∈ W
97 zre ⊢ z ∈ ℤ → z ∈ ℝ
98 modabs2 ⊢ z ∈ ℝ ∧ N ∈ ℝ + → z mod N mod N = z mod N
99 97 48 98 syl2anr ⊢ N ∈ ℕ ∧ z ∈ ℤ → z mod N mod N = z mod N
100 simpl ⊢ N ∈ ℕ ∧ z ∈ ℤ → N ∈ ℕ
101 16 94 sselid ⊢ N ∈ ℕ ∧ z ∈ ℤ → z mod N ∈ ℤ
102 simpr ⊢ N ∈ ℕ ∧ z ∈ ℤ → z ∈ ℤ
103 moddvds ⊢ N ∈ ℕ ∧ z mod N ∈ ℤ ∧ z ∈ ℤ → z mod N mod N = z mod N ↔ N ∥ z mod N − z
104 100 101 102 103 syl3anc ⊢ N ∈ ℕ ∧ z ∈ ℤ → z mod N mod N = z mod N ↔ N ∥ z mod N − z
105 99 104 mpbid ⊢ N ∈ ℕ ∧ z ∈ ℤ → N ∥ z mod N − z
106 nnnn0 ⊢ N ∈ ℕ → N ∈ ℕ 0
107 106 adantr ⊢ N ∈ ℕ ∧ z ∈ ℤ → N ∈ ℕ 0
108 1 7 zndvds ⊢ N ∈ ℕ 0 ∧ z mod N ∈ ℤ ∧ z ∈ ℤ → ℤRHom ⁡ Y ⁡ z mod N = ℤRHom ⁡ Y ⁡ z ↔ N ∥ z mod N − z
109 107 101 102 108 syl3anc ⊢ N ∈ ℕ ∧ z ∈ ℤ → ℤRHom ⁡ Y ⁡ z mod N = ℤRHom ⁡ Y ⁡ z ↔ N ∥ z mod N − z
110 105 109 mpbird ⊢ N ∈ ℕ ∧ z ∈ ℤ → ℤRHom ⁡ Y ⁡ z mod N = ℤRHom ⁡ Y ⁡ z
111 110 eqcomd ⊢ N ∈ ℕ ∧ z ∈ ℤ → ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ z mod N
112 fveq2 ⊢ y = z mod N → ℤRHom ⁡ Y ⁡ y = ℤRHom ⁡ Y ⁡ z mod N
113 112 rspceeqv ⊢ z mod N ∈ W ∧ ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ z mod N → ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ y
114 96 111 113 syl2anc ⊢ N ∈ ℕ ∧ z ∈ ℤ → ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ y
115 iftrue ⊢ N = 0 → if N = 0 ℤ 0 ..^ N = ℤ
116 115 eleq2d ⊢ N = 0 → z ∈ if N = 0 ℤ 0 ..^ N ↔ z ∈ ℤ
117 116 biimpar ⊢ N = 0 ∧ z ∈ ℤ → z ∈ if N = 0 ℤ 0 ..^ N
118 117 4 eleqtrrdi ⊢ N = 0 ∧ z ∈ ℤ → z ∈ W
119 eqidd ⊢ N = 0 ∧ z ∈ ℤ → ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ z
120 fveq2 ⊢ y = z → ℤRHom ⁡ Y ⁡ y = ℤRHom ⁡ Y ⁡ z
121 120 rspceeqv ⊢ z ∈ W ∧ ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ z → ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ y
122 118 119 121 syl2anc ⊢ N = 0 ∧ z ∈ ℤ → ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ y
123 114 122 jaoian ⊢ N ∈ ℕ ∨ N = 0 ∧ z ∈ ℤ → ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ y
124 39 123 sylanb ⊢ N ∈ ℕ 0 ∧ z ∈ ℤ → ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ y
125 27 28 eqtrid ⊢ y ∈ W → F ⁡ y = ℤRHom ⁡ Y ⁡ y
126 125 eqeq2d ⊢ y ∈ W → ℤRHom ⁡ Y ⁡ z = F ⁡ y ↔ ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ y
127 126 rexbiia ⊢ ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = F ⁡ y ↔ ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = ℤRHom ⁡ Y ⁡ y
128 124 127 sylibr ⊢ N ∈ ℕ 0 ∧ z ∈ ℤ → ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = F ⁡ y
129 128 ralrimiva ⊢ N ∈ ℕ 0 → ∀ z ∈ ℤ ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = F ⁡ y
130 1 2 7 znzrhfo ⊢ N ∈ ℕ 0 → ℤRHom ⁡ Y : ℤ ⟶ onto B
131 fofn ⊢ ℤRHom ⁡ Y : ℤ ⟶ onto B → ℤRHom ⁡ Y Fn ℤ
132 eqeq1 ⊢ x = ℤRHom ⁡ Y ⁡ z → x = F ⁡ y ↔ ℤRHom ⁡ Y ⁡ z = F ⁡ y
133 132 rexbidv ⊢ x = ℤRHom ⁡ Y ⁡ z → ∃ y ∈ W x = F ⁡ y ↔ ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = F ⁡ y
134 133 ralrn ⊢ ℤRHom ⁡ Y Fn ℤ → ∀ x ∈ ran ⁡ ℤRHom ⁡ Y ∃ y ∈ W x = F ⁡ y ↔ ∀ z ∈ ℤ ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = F ⁡ y
135 130 131 134 3syl ⊢ N ∈ ℕ 0 → ∀ x ∈ ran ⁡ ℤRHom ⁡ Y ∃ y ∈ W x = F ⁡ y ↔ ∀ z ∈ ℤ ∃ y ∈ W ℤRHom ⁡ Y ⁡ z = F ⁡ y
136 129 135 mpbird ⊢ N ∈ ℕ 0 → ∀ x ∈ ran ⁡ ℤRHom ⁡ Y ∃ y ∈ W x = F ⁡ y
137 forn ⊢ ℤRHom ⁡ Y : ℤ ⟶ onto B → ran ⁡ ℤRHom ⁡ Y = B
138 130 137 syl ⊢ N ∈ ℕ 0 → ran ⁡ ℤRHom ⁡ Y = B
139 136 138 raleqtrdv ⊢ N ∈ ℕ 0 → ∀ x ∈ B ∃ y ∈ W x = F ⁡ y
140 dffo3 ⊢ F : W ⟶ onto B ↔ F : W ⟶ B ∧ ∀ x ∈ B ∃ y ∈ W x = F ⁡ y
141 22 139 140 sylanbrc ⊢ N ∈ ℕ 0 → F : W ⟶ onto B
142 df-f1o ⊢ F : W ⟶ 1-1 onto B ↔ F : W ⟶ 1-1 B ∧ F : W ⟶ onto B
143 92 141 142 sylanbrc ⊢ N ∈ ℕ 0 → F : W ⟶ 1-1 onto B