Metamath Proof Explorer


Theorem crth

Description: The Chinese Remainder Theorem: the function that maps x to its remainder classes mod M and mod N is 1-1 and onto when M and N are coprime. (Contributed by Mario Carneiro, 24-Feb-2014) (Proof shortened by Mario Carneiro, 2-May-2016)

Ref Expression
Hypotheses crth.1 ⊢ S = 0 ..^ M ⋅ N
crth.2 ⊢ T = 0 ..^ M × 0 ..^ N
crth.3 ⊢ F = x ∈ S ⟼ x mod M x mod N
crth.4 ⊢ φ → M ∈ ℕ ∧ N ∈ ℕ ∧ M gcd N = 1
Assertion crth ⊢ φ → F : S ⟶ 1-1 onto T

Proof

Step Hyp Ref Expression
1 crth.1 ⊢ S = 0 ..^ M ⋅ N
2 crth.2 ⊢ T = 0 ..^ M × 0 ..^ N
3 crth.3 ⊢ F = x ∈ S ⟼ x mod M x mod N
4 crth.4 ⊢ φ → M ∈ ℕ ∧ N ∈ ℕ ∧ M gcd N = 1
5 elfzoelz ⊢ x ∈ 0 ..^ M ⋅ N → x ∈ ℤ
6 5 1 eleq2s ⊢ x ∈ S → x ∈ ℤ
7 simpr ⊢ φ ∧ x ∈ ℤ → x ∈ ℤ
8 4 simp1d ⊢ φ → M ∈ ℕ
9 8 adantr ⊢ φ ∧ x ∈ ℤ → M ∈ ℕ
10 zmodfzo ⊢ x ∈ ℤ ∧ M ∈ ℕ → x mod M ∈ 0 ..^ M
11 7 9 10 syl2anc ⊢ φ ∧ x ∈ ℤ → x mod M ∈ 0 ..^ M
12 4 simp2d ⊢ φ → N ∈ ℕ
13 12 adantr ⊢ φ ∧ x ∈ ℤ → N ∈ ℕ
14 zmodfzo ⊢ x ∈ ℤ ∧ N ∈ ℕ → x mod N ∈ 0 ..^ N
15 7 13 14 syl2anc ⊢ φ ∧ x ∈ ℤ → x mod N ∈ 0 ..^ N
16 11 15 opelxpd ⊢ φ ∧ x ∈ ℤ → x mod M x mod N ∈ 0 ..^ M × 0 ..^ N
17 16 2 eleqtrrdi ⊢ φ ∧ x ∈ ℤ → x mod M x mod N ∈ T
18 6 17 sylan2 ⊢ φ ∧ x ∈ S → x mod M x mod N ∈ T
19 18 3 fmptd ⊢ φ → F : S ⟶ T
20 oveq1 ⊢ x = y → x mod M = y mod M
21 oveq1 ⊢ x = y → x mod N = y mod N
22 20 21 opeq12d ⊢ x = y → x mod M x mod N = y mod M y mod N
23 opex ⊢ y mod M y mod N ∈ V
24 22 3 23 fvmpt ⊢ y ∈ S → F ⁡ y = y mod M y mod N
25 24 ad2antrl ⊢ φ ∧ y ∈ S ∧ z ∈ S → F ⁡ y = y mod M y mod N
26 oveq1 ⊢ x = z → x mod M = z mod M
27 oveq1 ⊢ x = z → x mod N = z mod N
28 26 27 opeq12d ⊢ x = z → x mod M x mod N = z mod M z mod N
29 opex ⊢ z mod M z mod N ∈ V
30 28 3 29 fvmpt ⊢ z ∈ S → F ⁡ z = z mod M z mod N
31 30 ad2antll ⊢ φ ∧ y ∈ S ∧ z ∈ S → F ⁡ z = z mod M z mod N
32 25 31 eqeq12d ⊢ φ ∧ y ∈ S ∧ z ∈ S → F ⁡ y = F ⁡ z ↔ y mod M y mod N = z mod M z mod N
33 ovex ⊢ y mod M ∈ V
34 ovex ⊢ y mod N ∈ V
35 33 34 opth ⊢ y mod M y mod N = z mod M z mod N ↔ y mod M = z mod M ∧ y mod N = z mod N
36 32 35 bitrdi ⊢ φ ∧ y ∈ S ∧ z ∈ S → F ⁡ y = F ⁡ z ↔ y mod M = z mod M ∧ y mod N = z mod N
37 8 adantr ⊢ φ ∧ y ∈ S ∧ z ∈ S → M ∈ ℕ
38 37 nnzd ⊢ φ ∧ y ∈ S ∧ z ∈ S → M ∈ ℤ
39 12 adantr ⊢ φ ∧ y ∈ S ∧ z ∈ S → N ∈ ℕ
40 39 nnzd ⊢ φ ∧ y ∈ S ∧ z ∈ S → N ∈ ℤ
41 simprl ⊢ φ ∧ y ∈ S ∧ z ∈ S → y ∈ S
42 41 1 eleqtrdi ⊢ φ ∧ y ∈ S ∧ z ∈ S → y ∈ 0 ..^ M ⋅ N
43 elfzoelz ⊢ y ∈ 0 ..^ M ⋅ N → y ∈ ℤ
44 42 43 syl ⊢ φ ∧ y ∈ S ∧ z ∈ S → y ∈ ℤ
45 simprr ⊢ φ ∧ y ∈ S ∧ z ∈ S → z ∈ S
46 45 1 eleqtrdi ⊢ φ ∧ y ∈ S ∧ z ∈ S → z ∈ 0 ..^ M ⋅ N
47 elfzoelz ⊢ z ∈ 0 ..^ M ⋅ N → z ∈ ℤ
48 46 47 syl ⊢ φ ∧ y ∈ S ∧ z ∈ S → z ∈ ℤ
49 44 48 zsubcld ⊢ φ ∧ y ∈ S ∧ z ∈ S → y − z ∈ ℤ
50 4 simp3d ⊢ φ → M gcd N = 1
51 50 adantr ⊢ φ ∧ y ∈ S ∧ z ∈ S → M gcd N = 1
52 coprmdvds2 ⊢ M ∈ ℤ ∧ N ∈ ℤ ∧ y − z ∈ ℤ ∧ M gcd N = 1 → M ∥ y − z ∧ N ∥ y − z → M ⋅ N ∥ y − z
53 38 40 49 51 52 syl31anc ⊢ φ ∧ y ∈ S ∧ z ∈ S → M ∥ y − z ∧ N ∥ y − z → M ⋅ N ∥ y − z
54 moddvds ⊢ M ∈ ℕ ∧ y ∈ ℤ ∧ z ∈ ℤ → y mod M = z mod M ↔ M ∥ y − z
55 37 44 48 54 syl3anc ⊢ φ ∧ y ∈ S ∧ z ∈ S → y mod M = z mod M ↔ M ∥ y − z
56 moddvds ⊢ N ∈ ℕ ∧ y ∈ ℤ ∧ z ∈ ℤ → y mod N = z mod N ↔ N ∥ y − z
57 39 44 48 56 syl3anc ⊢ φ ∧ y ∈ S ∧ z ∈ S → y mod N = z mod N ↔ N ∥ y − z
58 55 57 anbi12d ⊢ φ ∧ y ∈ S ∧ z ∈ S → y mod M = z mod M ∧ y mod N = z mod N ↔ M ∥ y − z ∧ N ∥ y − z
59 44 zred ⊢ φ ∧ y ∈ S ∧ z ∈ S → y ∈ ℝ
60 37 39 nnmulcld ⊢ φ ∧ y ∈ S ∧ z ∈ S → M ⋅ N ∈ ℕ
61 60 nnrpd ⊢ φ ∧ y ∈ S ∧ z ∈ S → M ⋅ N ∈ ℝ +
62 elfzole1 ⊢ y ∈ 0 ..^ M ⋅ N → 0 ≤ y
63 42 62 syl ⊢ φ ∧ y ∈ S ∧ z ∈ S → 0 ≤ y
64 elfzolt2 ⊢ y ∈ 0 ..^ M ⋅ N → y < M ⋅ N
65 42 64 syl ⊢ φ ∧ y ∈ S ∧ z ∈ S → y < M ⋅ N
66 modid ⊢ y ∈ ℝ ∧ M ⋅ N ∈ ℝ + ∧ 0 ≤ y ∧ y < M ⋅ N → y mod M ⋅ N = y
67 59 61 63 65 66 syl22anc ⊢ φ ∧ y ∈ S ∧ z ∈ S → y mod M ⋅ N = y
68 48 zred ⊢ φ ∧ y ∈ S ∧ z ∈ S → z ∈ ℝ
69 elfzole1 ⊢ z ∈ 0 ..^ M ⋅ N → 0 ≤ z
70 46 69 syl ⊢ φ ∧ y ∈ S ∧ z ∈ S → 0 ≤ z
71 elfzolt2 ⊢ z ∈ 0 ..^ M ⋅ N → z < M ⋅ N
72 46 71 syl ⊢ φ ∧ y ∈ S ∧ z ∈ S → z < M ⋅ N
73 modid ⊢ z ∈ ℝ ∧ M ⋅ N ∈ ℝ + ∧ 0 ≤ z ∧ z < M ⋅ N → z mod M ⋅ N = z
74 68 61 70 72 73 syl22anc ⊢ φ ∧ y ∈ S ∧ z ∈ S → z mod M ⋅ N = z
75 67 74 eqeq12d ⊢ φ ∧ y ∈ S ∧ z ∈ S → y mod M ⋅ N = z mod M ⋅ N ↔ y = z
76 moddvds ⊢ M ⋅ N ∈ ℕ ∧ y ∈ ℤ ∧ z ∈ ℤ → y mod M ⋅ N = z mod M ⋅ N ↔ M ⋅ N ∥ y − z
77 60 44 48 76 syl3anc ⊢ φ ∧ y ∈ S ∧ z ∈ S → y mod M ⋅ N = z mod M ⋅ N ↔ M ⋅ N ∥ y − z
78 75 77 bitr3d ⊢ φ ∧ y ∈ S ∧ z ∈ S → y = z ↔ M ⋅ N ∥ y − z
79 53 58 78 3imtr4d ⊢ φ ∧ y ∈ S ∧ z ∈ S → y mod M = z mod M ∧ y mod N = z mod N → y = z
80 36 79 sylbid ⊢ φ ∧ y ∈ S ∧ z ∈ S → F ⁡ y = F ⁡ z → y = z
81 80 ralrimivva ⊢ φ → ∀ y ∈ S ∀ z ∈ S F ⁡ y = F ⁡ z → y = z
82 dff13 ⊢ F : S ⟶ 1-1 T ↔ F : S ⟶ T ∧ ∀ y ∈ S ∀ z ∈ S F ⁡ y = F ⁡ z → y = z
83 19 81 82 sylanbrc ⊢ φ → F : S ⟶ 1-1 T
84 nnnn0 ⊢ M ∈ ℕ → M ∈ ℕ 0
85 nnnn0 ⊢ N ∈ ℕ → N ∈ ℕ 0
86 nn0mulcl ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → M ⋅ N ∈ ℕ 0
87 hashfzo0 ⊢ M ⋅ N ∈ ℕ 0 → 0 ..^ M ⋅ N = M ⋅ N
88 86 87 syl ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 ..^ M ⋅ N = M ⋅ N
89 fzofi ⊢ 0 ..^ M ∈ Fin
90 fzofi ⊢ 0 ..^ N ∈ Fin
91 hashxp ⊢ 0 ..^ M ∈ Fin ∧ 0 ..^ N ∈ Fin → 0 ..^ M × 0 ..^ N = 0 ..^ M ⁢ 0 ..^ N
92 89 90 91 mp2an ⊢ 0 ..^ M × 0 ..^ N = 0 ..^ M ⁢ 0 ..^ N
93 hashfzo0 ⊢ M ∈ ℕ 0 → 0 ..^ M = M
94 hashfzo0 ⊢ N ∈ ℕ 0 → 0 ..^ N = N
95 93 94 oveqan12d ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 ..^ M ⁢ 0 ..^ N = M ⋅ N
96 92 95 eqtrid ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 ..^ M × 0 ..^ N = M ⋅ N
97 88 96 eqtr4d ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 ..^ M ⋅ N = 0 ..^ M × 0 ..^ N
98 fzofi ⊢ 0 ..^ M ⋅ N ∈ Fin
99 xpfi ⊢ 0 ..^ M ∈ Fin ∧ 0 ..^ N ∈ Fin → 0 ..^ M × 0 ..^ N ∈ Fin
100 89 90 99 mp2an ⊢ 0 ..^ M × 0 ..^ N ∈ Fin
101 hashen ⊢ 0 ..^ M ⋅ N ∈ Fin ∧ 0 ..^ M × 0 ..^ N ∈ Fin → 0 ..^ M ⋅ N = 0 ..^ M × 0 ..^ N ↔ 0 ..^ M ⋅ N ≈ 0 ..^ M × 0 ..^ N
102 98 100 101 mp2an ⊢ 0 ..^ M ⋅ N = 0 ..^ M × 0 ..^ N ↔ 0 ..^ M ⋅ N ≈ 0 ..^ M × 0 ..^ N
103 97 102 sylib ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 ..^ M ⋅ N ≈ 0 ..^ M × 0 ..^ N
104 84 85 103 syl2an ⊢ M ∈ ℕ ∧ N ∈ ℕ → 0 ..^ M ⋅ N ≈ 0 ..^ M × 0 ..^ N
105 8 12 104 syl2anc ⊢ φ → 0 ..^ M ⋅ N ≈ 0 ..^ M × 0 ..^ N
106 105 1 2 3brtr4g ⊢ φ → S ≈ T
107 2 100 eqeltri ⊢ T ∈ Fin
108 f1finf1o ⊢ S ≈ T ∧ T ∈ Fin → F : S ⟶ 1-1 T ↔ F : S ⟶ 1-1 onto T
109 106 107 108 sylancl ⊢ φ → F : S ⟶ 1-1 T ↔ F : S ⟶ 1-1 onto T
110 83 109 mpbid ⊢ φ → F : S ⟶ 1-1 onto T