Metamath Proof Explorer


Theorem phimullem

Description: Lemma for phimul . (Contributed by Mario Carneiro, 24-Feb-2014)

Ref Expression
Hypotheses crth.1 𝑆 = ( 0 ..^ ( 𝑀 · 𝑁 ) )
crth.2 𝑇 = ( ( 0 ..^ 𝑀 ) × ( 0 ..^ 𝑁 ) )
crth.3 𝐹 = ( 𝑥𝑆 ↦ ⟨ ( 𝑥 mod 𝑀 ) , ( 𝑥 mod 𝑁 ) ⟩ )
crth.4 ( 𝜑 → ( 𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ ( 𝑀 gcd 𝑁 ) = 1 ) )
phimul.4 𝑈 = { 𝑦 ∈ ( 0 ..^ 𝑀 ) ∣ ( 𝑦 gcd 𝑀 ) = 1 }
phimul.5 𝑉 = { 𝑦 ∈ ( 0 ..^ 𝑁 ) ∣ ( 𝑦 gcd 𝑁 ) = 1 }
phimul.6 𝑊 = { 𝑦𝑆 ∣ ( 𝑦 gcd ( 𝑀 · 𝑁 ) ) = 1 }
Assertion phimullem ( 𝜑 → ( ϕ ‘ ( 𝑀 · 𝑁 ) ) = ( ( ϕ ‘ 𝑀 ) · ( ϕ ‘ 𝑁 ) ) )

Proof

Step Hyp Ref Expression
1 crth.1 𝑆 = ( 0 ..^ ( 𝑀 · 𝑁 ) )
2 crth.2 𝑇 = ( ( 0 ..^ 𝑀 ) × ( 0 ..^ 𝑁 ) )
3 crth.3 𝐹 = ( 𝑥𝑆 ↦ ⟨ ( 𝑥 mod 𝑀 ) , ( 𝑥 mod 𝑁 ) ⟩ )
4 crth.4 ( 𝜑 → ( 𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ ( 𝑀 gcd 𝑁 ) = 1 ) )
5 phimul.4 𝑈 = { 𝑦 ∈ ( 0 ..^ 𝑀 ) ∣ ( 𝑦 gcd 𝑀 ) = 1 }
6 phimul.5 𝑉 = { 𝑦 ∈ ( 0 ..^ 𝑁 ) ∣ ( 𝑦 gcd 𝑁 ) = 1 }
7 phimul.6 𝑊 = { 𝑦𝑆 ∣ ( 𝑦 gcd ( 𝑀 · 𝑁 ) ) = 1 }
8 oveq1 ( 𝑦 = 𝑤 → ( 𝑦 gcd ( 𝑀 · 𝑁 ) ) = ( 𝑤 gcd ( 𝑀 · 𝑁 ) ) )
9 8 eqeq1d ( 𝑦 = 𝑤 → ( ( 𝑦 gcd ( 𝑀 · 𝑁 ) ) = 1 ↔ ( 𝑤 gcd ( 𝑀 · 𝑁 ) ) = 1 ) )
10 9 7 elrab2 ( 𝑤𝑊 ↔ ( 𝑤𝑆 ∧ ( 𝑤 gcd ( 𝑀 · 𝑁 ) ) = 1 ) )
11 10 simplbi ( 𝑤𝑊𝑤𝑆 )
12 oveq1 ( 𝑥 = 𝑤 → ( 𝑥 mod 𝑀 ) = ( 𝑤 mod 𝑀 ) )
13 oveq1 ( 𝑥 = 𝑤 → ( 𝑥 mod 𝑁 ) = ( 𝑤 mod 𝑁 ) )
14 12 13 opeq12d ( 𝑥 = 𝑤 → ⟨ ( 𝑥 mod 𝑀 ) , ( 𝑥 mod 𝑁 ) ⟩ = ⟨ ( 𝑤 mod 𝑀 ) , ( 𝑤 mod 𝑁 ) ⟩ )
15 opex ⟨ ( 𝑤 mod 𝑀 ) , ( 𝑤 mod 𝑁 ) ⟩ ∈ V
16 14 3 15 fvmpt ( 𝑤𝑆 → ( 𝐹𝑤 ) = ⟨ ( 𝑤 mod 𝑀 ) , ( 𝑤 mod 𝑁 ) ⟩ )
17 11 16 syl ( 𝑤𝑊 → ( 𝐹𝑤 ) = ⟨ ( 𝑤 mod 𝑀 ) , ( 𝑤 mod 𝑁 ) ⟩ )
18 17 adantl ( ( 𝜑𝑤𝑊 ) → ( 𝐹𝑤 ) = ⟨ ( 𝑤 mod 𝑀 ) , ( 𝑤 mod 𝑁 ) ⟩ )
19 11 1 eleqtrdi ( 𝑤𝑊𝑤 ∈ ( 0 ..^ ( 𝑀 · 𝑁 ) ) )
20 19 adantl ( ( 𝜑𝑤𝑊 ) → 𝑤 ∈ ( 0 ..^ ( 𝑀 · 𝑁 ) ) )
21 elfzoelz ( 𝑤 ∈ ( 0 ..^ ( 𝑀 · 𝑁 ) ) → 𝑤 ∈ ℤ )
22 20 21 syl ( ( 𝜑𝑤𝑊 ) → 𝑤 ∈ ℤ )
23 4 simp1d ( 𝜑𝑀 ∈ ℕ )
24 23 adantr ( ( 𝜑𝑤𝑊 ) → 𝑀 ∈ ℕ )
25 zmodfzo ( ( 𝑤 ∈ ℤ ∧ 𝑀 ∈ ℕ ) → ( 𝑤 mod 𝑀 ) ∈ ( 0 ..^ 𝑀 ) )
26 22 24 25 syl2anc ( ( 𝜑𝑤𝑊 ) → ( 𝑤 mod 𝑀 ) ∈ ( 0 ..^ 𝑀 ) )
27 modgcd ( ( 𝑤 ∈ ℤ ∧ 𝑀 ∈ ℕ ) → ( ( 𝑤 mod 𝑀 ) gcd 𝑀 ) = ( 𝑤 gcd 𝑀 ) )
28 22 24 27 syl2anc ( ( 𝜑𝑤𝑊 ) → ( ( 𝑤 mod 𝑀 ) gcd 𝑀 ) = ( 𝑤 gcd 𝑀 ) )
29 24 nnzd ( ( 𝜑𝑤𝑊 ) → 𝑀 ∈ ℤ )
30 gcddvds ( ( 𝑤 ∈ ℤ ∧ 𝑀 ∈ ℤ ) → ( ( 𝑤 gcd 𝑀 ) ∥ 𝑤 ∧ ( 𝑤 gcd 𝑀 ) ∥ 𝑀 ) )
31 22 29 30 syl2anc ( ( 𝜑𝑤𝑊 ) → ( ( 𝑤 gcd 𝑀 ) ∥ 𝑤 ∧ ( 𝑤 gcd 𝑀 ) ∥ 𝑀 ) )
32 31 simpld ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑀 ) ∥ 𝑤 )
33 nnne0 ( 𝑀 ∈ ℕ → 𝑀 ≠ 0 )
34 simpr ( ( 𝑤 = 0 ∧ 𝑀 = 0 ) → 𝑀 = 0 )
35 34 necon3ai ( 𝑀 ≠ 0 → ¬ ( 𝑤 = 0 ∧ 𝑀 = 0 ) )
36 24 33 35 3syl ( ( 𝜑𝑤𝑊 ) → ¬ ( 𝑤 = 0 ∧ 𝑀 = 0 ) )
37 gcdn0cl ( ( ( 𝑤 ∈ ℤ ∧ 𝑀 ∈ ℤ ) ∧ ¬ ( 𝑤 = 0 ∧ 𝑀 = 0 ) ) → ( 𝑤 gcd 𝑀 ) ∈ ℕ )
38 22 29 36 37 syl21anc ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑀 ) ∈ ℕ )
39 38 nnzd ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑀 ) ∈ ℤ )
40 4 simp2d ( 𝜑𝑁 ∈ ℕ )
41 40 adantr ( ( 𝜑𝑤𝑊 ) → 𝑁 ∈ ℕ )
42 41 nnzd ( ( 𝜑𝑤𝑊 ) → 𝑁 ∈ ℤ )
43 31 simprd ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑀 ) ∥ 𝑀 )
44 39 29 42 43 dvdsmultr1d ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑀 ) ∥ ( 𝑀 · 𝑁 ) )
45 24 41 nnmulcld ( ( 𝜑𝑤𝑊 ) → ( 𝑀 · 𝑁 ) ∈ ℕ )
46 45 nnzd ( ( 𝜑𝑤𝑊 ) → ( 𝑀 · 𝑁 ) ∈ ℤ )
47 nnne0 ( ( 𝑀 · 𝑁 ) ∈ ℕ → ( 𝑀 · 𝑁 ) ≠ 0 )
48 simpr ( ( 𝑤 = 0 ∧ ( 𝑀 · 𝑁 ) = 0 ) → ( 𝑀 · 𝑁 ) = 0 )
49 48 necon3ai ( ( 𝑀 · 𝑁 ) ≠ 0 → ¬ ( 𝑤 = 0 ∧ ( 𝑀 · 𝑁 ) = 0 ) )
50 45 47 49 3syl ( ( 𝜑𝑤𝑊 ) → ¬ ( 𝑤 = 0 ∧ ( 𝑀 · 𝑁 ) = 0 ) )
51 dvdslegcd ( ( ( ( 𝑤 gcd 𝑀 ) ∈ ℤ ∧ 𝑤 ∈ ℤ ∧ ( 𝑀 · 𝑁 ) ∈ ℤ ) ∧ ¬ ( 𝑤 = 0 ∧ ( 𝑀 · 𝑁 ) = 0 ) ) → ( ( ( 𝑤 gcd 𝑀 ) ∥ 𝑤 ∧ ( 𝑤 gcd 𝑀 ) ∥ ( 𝑀 · 𝑁 ) ) → ( 𝑤 gcd 𝑀 ) ≤ ( 𝑤 gcd ( 𝑀 · 𝑁 ) ) ) )
52 39 22 46 50 51 syl31anc ( ( 𝜑𝑤𝑊 ) → ( ( ( 𝑤 gcd 𝑀 ) ∥ 𝑤 ∧ ( 𝑤 gcd 𝑀 ) ∥ ( 𝑀 · 𝑁 ) ) → ( 𝑤 gcd 𝑀 ) ≤ ( 𝑤 gcd ( 𝑀 · 𝑁 ) ) ) )
53 32 44 52 mp2and ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑀 ) ≤ ( 𝑤 gcd ( 𝑀 · 𝑁 ) ) )
54 10 simprbi ( 𝑤𝑊 → ( 𝑤 gcd ( 𝑀 · 𝑁 ) ) = 1 )
55 54 adantl ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd ( 𝑀 · 𝑁 ) ) = 1 )
56 53 55 breqtrd ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑀 ) ≤ 1 )
57 nnle1eq1 ( ( 𝑤 gcd 𝑀 ) ∈ ℕ → ( ( 𝑤 gcd 𝑀 ) ≤ 1 ↔ ( 𝑤 gcd 𝑀 ) = 1 ) )
58 38 57 syl ( ( 𝜑𝑤𝑊 ) → ( ( 𝑤 gcd 𝑀 ) ≤ 1 ↔ ( 𝑤 gcd 𝑀 ) = 1 ) )
59 56 58 mpbid ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑀 ) = 1 )
60 28 59 eqtrd ( ( 𝜑𝑤𝑊 ) → ( ( 𝑤 mod 𝑀 ) gcd 𝑀 ) = 1 )
61 oveq1 ( 𝑦 = ( 𝑤 mod 𝑀 ) → ( 𝑦 gcd 𝑀 ) = ( ( 𝑤 mod 𝑀 ) gcd 𝑀 ) )
62 61 eqeq1d ( 𝑦 = ( 𝑤 mod 𝑀 ) → ( ( 𝑦 gcd 𝑀 ) = 1 ↔ ( ( 𝑤 mod 𝑀 ) gcd 𝑀 ) = 1 ) )
63 62 5 elrab2 ( ( 𝑤 mod 𝑀 ) ∈ 𝑈 ↔ ( ( 𝑤 mod 𝑀 ) ∈ ( 0 ..^ 𝑀 ) ∧ ( ( 𝑤 mod 𝑀 ) gcd 𝑀 ) = 1 ) )
64 26 60 63 sylanbrc ( ( 𝜑𝑤𝑊 ) → ( 𝑤 mod 𝑀 ) ∈ 𝑈 )
65 zmodfzo ( ( 𝑤 ∈ ℤ ∧ 𝑁 ∈ ℕ ) → ( 𝑤 mod 𝑁 ) ∈ ( 0 ..^ 𝑁 ) )
66 22 41 65 syl2anc ( ( 𝜑𝑤𝑊 ) → ( 𝑤 mod 𝑁 ) ∈ ( 0 ..^ 𝑁 ) )
67 modgcd ( ( 𝑤 ∈ ℤ ∧ 𝑁 ∈ ℕ ) → ( ( 𝑤 mod 𝑁 ) gcd 𝑁 ) = ( 𝑤 gcd 𝑁 ) )
68 22 41 67 syl2anc ( ( 𝜑𝑤𝑊 ) → ( ( 𝑤 mod 𝑁 ) gcd 𝑁 ) = ( 𝑤 gcd 𝑁 ) )
69 gcddvds ( ( 𝑤 ∈ ℤ ∧ 𝑁 ∈ ℤ ) → ( ( 𝑤 gcd 𝑁 ) ∥ 𝑤 ∧ ( 𝑤 gcd 𝑁 ) ∥ 𝑁 ) )
70 22 42 69 syl2anc ( ( 𝜑𝑤𝑊 ) → ( ( 𝑤 gcd 𝑁 ) ∥ 𝑤 ∧ ( 𝑤 gcd 𝑁 ) ∥ 𝑁 ) )
71 70 simpld ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑁 ) ∥ 𝑤 )
72 nnne0 ( 𝑁 ∈ ℕ → 𝑁 ≠ 0 )
73 simpr ( ( 𝑤 = 0 ∧ 𝑁 = 0 ) → 𝑁 = 0 )
74 73 necon3ai ( 𝑁 ≠ 0 → ¬ ( 𝑤 = 0 ∧ 𝑁 = 0 ) )
75 41 72 74 3syl ( ( 𝜑𝑤𝑊 ) → ¬ ( 𝑤 = 0 ∧ 𝑁 = 0 ) )
76 gcdn0cl ( ( ( 𝑤 ∈ ℤ ∧ 𝑁 ∈ ℤ ) ∧ ¬ ( 𝑤 = 0 ∧ 𝑁 = 0 ) ) → ( 𝑤 gcd 𝑁 ) ∈ ℕ )
77 22 42 75 76 syl21anc ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑁 ) ∈ ℕ )
78 77 nnzd ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑁 ) ∈ ℤ )
79 70 simprd ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑁 ) ∥ 𝑁 )
80 dvdsmul2 ( ( 𝑀 ∈ ℤ ∧ 𝑁 ∈ ℤ ) → 𝑁 ∥ ( 𝑀 · 𝑁 ) )
81 29 42 80 syl2anc ( ( 𝜑𝑤𝑊 ) → 𝑁 ∥ ( 𝑀 · 𝑁 ) )
82 78 42 46 79 81 dvdstrd ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑁 ) ∥ ( 𝑀 · 𝑁 ) )
83 dvdslegcd ( ( ( ( 𝑤 gcd 𝑁 ) ∈ ℤ ∧ 𝑤 ∈ ℤ ∧ ( 𝑀 · 𝑁 ) ∈ ℤ ) ∧ ¬ ( 𝑤 = 0 ∧ ( 𝑀 · 𝑁 ) = 0 ) ) → ( ( ( 𝑤 gcd 𝑁 ) ∥ 𝑤 ∧ ( 𝑤 gcd 𝑁 ) ∥ ( 𝑀 · 𝑁 ) ) → ( 𝑤 gcd 𝑁 ) ≤ ( 𝑤 gcd ( 𝑀 · 𝑁 ) ) ) )
84 78 22 46 50 83 syl31anc ( ( 𝜑𝑤𝑊 ) → ( ( ( 𝑤 gcd 𝑁 ) ∥ 𝑤 ∧ ( 𝑤 gcd 𝑁 ) ∥ ( 𝑀 · 𝑁 ) ) → ( 𝑤 gcd 𝑁 ) ≤ ( 𝑤 gcd ( 𝑀 · 𝑁 ) ) ) )
85 71 82 84 mp2and ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑁 ) ≤ ( 𝑤 gcd ( 𝑀 · 𝑁 ) ) )
86 85 55 breqtrd ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑁 ) ≤ 1 )
87 nnle1eq1 ( ( 𝑤 gcd 𝑁 ) ∈ ℕ → ( ( 𝑤 gcd 𝑁 ) ≤ 1 ↔ ( 𝑤 gcd 𝑁 ) = 1 ) )
88 77 87 syl ( ( 𝜑𝑤𝑊 ) → ( ( 𝑤 gcd 𝑁 ) ≤ 1 ↔ ( 𝑤 gcd 𝑁 ) = 1 ) )
89 86 88 mpbid ( ( 𝜑𝑤𝑊 ) → ( 𝑤 gcd 𝑁 ) = 1 )
90 68 89 eqtrd ( ( 𝜑𝑤𝑊 ) → ( ( 𝑤 mod 𝑁 ) gcd 𝑁 ) = 1 )
91 oveq1 ( 𝑦 = ( 𝑤 mod 𝑁 ) → ( 𝑦 gcd 𝑁 ) = ( ( 𝑤 mod 𝑁 ) gcd 𝑁 ) )
92 91 eqeq1d ( 𝑦 = ( 𝑤 mod 𝑁 ) → ( ( 𝑦 gcd 𝑁 ) = 1 ↔ ( ( 𝑤 mod 𝑁 ) gcd 𝑁 ) = 1 ) )
93 92 6 elrab2 ( ( 𝑤 mod 𝑁 ) ∈ 𝑉 ↔ ( ( 𝑤 mod 𝑁 ) ∈ ( 0 ..^ 𝑁 ) ∧ ( ( 𝑤 mod 𝑁 ) gcd 𝑁 ) = 1 ) )
94 66 90 93 sylanbrc ( ( 𝜑𝑤𝑊 ) → ( 𝑤 mod 𝑁 ) ∈ 𝑉 )
95 64 94 opelxpd ( ( 𝜑𝑤𝑊 ) → ⟨ ( 𝑤 mod 𝑀 ) , ( 𝑤 mod 𝑁 ) ⟩ ∈ ( 𝑈 × 𝑉 ) )
96 18 95 eqeltrd ( ( 𝜑𝑤𝑊 ) → ( 𝐹𝑤 ) ∈ ( 𝑈 × 𝑉 ) )
97 96 ralrimiva ( 𝜑 → ∀ 𝑤𝑊 ( 𝐹𝑤 ) ∈ ( 𝑈 × 𝑉 ) )
98 1 2 3 4 crth ( 𝜑𝐹 : 𝑆1-1-onto𝑇 )
99 f1ofn ( 𝐹 : 𝑆1-1-onto𝑇𝐹 Fn 𝑆 )
100 fnfun ( 𝐹 Fn 𝑆 → Fun 𝐹 )
101 98 99 100 3syl ( 𝜑 → Fun 𝐹 )
102 7 ssrab3 𝑊𝑆
103 fndm ( 𝐹 Fn 𝑆 → dom 𝐹 = 𝑆 )
104 98 99 103 3syl ( 𝜑 → dom 𝐹 = 𝑆 )
105 102 104 sseqtrrid ( 𝜑𝑊 ⊆ dom 𝐹 )
106 funimass4 ( ( Fun 𝐹𝑊 ⊆ dom 𝐹 ) → ( ( 𝐹𝑊 ) ⊆ ( 𝑈 × 𝑉 ) ↔ ∀ 𝑤𝑊 ( 𝐹𝑤 ) ∈ ( 𝑈 × 𝑉 ) ) )
107 101 105 106 syl2anc ( 𝜑 → ( ( 𝐹𝑊 ) ⊆ ( 𝑈 × 𝑉 ) ↔ ∀ 𝑤𝑊 ( 𝐹𝑤 ) ∈ ( 𝑈 × 𝑉 ) ) )
108 97 107 mpbird ( 𝜑 → ( 𝐹𝑊 ) ⊆ ( 𝑈 × 𝑉 ) )
109 5 ssrab3 𝑈 ⊆ ( 0 ..^ 𝑀 )
110 6 ssrab3 𝑉 ⊆ ( 0 ..^ 𝑁 )
111 xpss12 ( ( 𝑈 ⊆ ( 0 ..^ 𝑀 ) ∧ 𝑉 ⊆ ( 0 ..^ 𝑁 ) ) → ( 𝑈 × 𝑉 ) ⊆ ( ( 0 ..^ 𝑀 ) × ( 0 ..^ 𝑁 ) ) )
112 109 110 111 mp2an ( 𝑈 × 𝑉 ) ⊆ ( ( 0 ..^ 𝑀 ) × ( 0 ..^ 𝑁 ) )
113 112 2 sseqtrri ( 𝑈 × 𝑉 ) ⊆ 𝑇
114 113 sseli ( 𝑧 ∈ ( 𝑈 × 𝑉 ) → 𝑧𝑇 )
115 f1ocnvfv2 ( ( 𝐹 : 𝑆1-1-onto𝑇𝑧𝑇 ) → ( 𝐹 ‘ ( 𝐹𝑧 ) ) = 𝑧 )
116 98 114 115 syl2an ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( 𝐹 ‘ ( 𝐹𝑧 ) ) = 𝑧 )
117 f1ocnv ( 𝐹 : 𝑆1-1-onto𝑇 𝐹 : 𝑇1-1-onto𝑆 )
118 f1of ( 𝐹 : 𝑇1-1-onto𝑆 𝐹 : 𝑇𝑆 )
119 98 117 118 3syl ( 𝜑 𝐹 : 𝑇𝑆 )
120 ffvelrn ( ( 𝐹 : 𝑇𝑆𝑧𝑇 ) → ( 𝐹𝑧 ) ∈ 𝑆 )
121 119 114 120 syl2an ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( 𝐹𝑧 ) ∈ 𝑆 )
122 121 1 eleqtrdi ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( 𝐹𝑧 ) ∈ ( 0 ..^ ( 𝑀 · 𝑁 ) ) )
123 elfzoelz ( ( 𝐹𝑧 ) ∈ ( 0 ..^ ( 𝑀 · 𝑁 ) ) → ( 𝐹𝑧 ) ∈ ℤ )
124 122 123 syl ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( 𝐹𝑧 ) ∈ ℤ )
125 23 adantr ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → 𝑀 ∈ ℕ )
126 modgcd ( ( ( 𝐹𝑧 ) ∈ ℤ ∧ 𝑀 ∈ ℕ ) → ( ( ( 𝐹𝑧 ) mod 𝑀 ) gcd 𝑀 ) = ( ( 𝐹𝑧 ) gcd 𝑀 ) )
127 124 125 126 syl2anc ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( ( 𝐹𝑧 ) mod 𝑀 ) gcd 𝑀 ) = ( ( 𝐹𝑧 ) gcd 𝑀 ) )
128 oveq1 ( 𝑤 = ( 𝐹𝑧 ) → ( 𝑤 mod 𝑀 ) = ( ( 𝐹𝑧 ) mod 𝑀 ) )
129 oveq1 ( 𝑤 = ( 𝐹𝑧 ) → ( 𝑤 mod 𝑁 ) = ( ( 𝐹𝑧 ) mod 𝑁 ) )
130 128 129 opeq12d ( 𝑤 = ( 𝐹𝑧 ) → ⟨ ( 𝑤 mod 𝑀 ) , ( 𝑤 mod 𝑁 ) ⟩ = ⟨ ( ( 𝐹𝑧 ) mod 𝑀 ) , ( ( 𝐹𝑧 ) mod 𝑁 ) ⟩ )
131 14 cbvmptv ( 𝑥𝑆 ↦ ⟨ ( 𝑥 mod 𝑀 ) , ( 𝑥 mod 𝑁 ) ⟩ ) = ( 𝑤𝑆 ↦ ⟨ ( 𝑤 mod 𝑀 ) , ( 𝑤 mod 𝑁 ) ⟩ )
132 3 131 eqtri 𝐹 = ( 𝑤𝑆 ↦ ⟨ ( 𝑤 mod 𝑀 ) , ( 𝑤 mod 𝑁 ) ⟩ )
133 opex ⟨ ( ( 𝐹𝑧 ) mod 𝑀 ) , ( ( 𝐹𝑧 ) mod 𝑁 ) ⟩ ∈ V
134 130 132 133 fvmpt ( ( 𝐹𝑧 ) ∈ 𝑆 → ( 𝐹 ‘ ( 𝐹𝑧 ) ) = ⟨ ( ( 𝐹𝑧 ) mod 𝑀 ) , ( ( 𝐹𝑧 ) mod 𝑁 ) ⟩ )
135 121 134 syl ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( 𝐹 ‘ ( 𝐹𝑧 ) ) = ⟨ ( ( 𝐹𝑧 ) mod 𝑀 ) , ( ( 𝐹𝑧 ) mod 𝑁 ) ⟩ )
136 116 135 eqtr3d ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → 𝑧 = ⟨ ( ( 𝐹𝑧 ) mod 𝑀 ) , ( ( 𝐹𝑧 ) mod 𝑁 ) ⟩ )
137 simpr ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → 𝑧 ∈ ( 𝑈 × 𝑉 ) )
138 136 137 eqeltrrd ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ⟨ ( ( 𝐹𝑧 ) mod 𝑀 ) , ( ( 𝐹𝑧 ) mod 𝑁 ) ⟩ ∈ ( 𝑈 × 𝑉 ) )
139 opelxp ( ⟨ ( ( 𝐹𝑧 ) mod 𝑀 ) , ( ( 𝐹𝑧 ) mod 𝑁 ) ⟩ ∈ ( 𝑈 × 𝑉 ) ↔ ( ( ( 𝐹𝑧 ) mod 𝑀 ) ∈ 𝑈 ∧ ( ( 𝐹𝑧 ) mod 𝑁 ) ∈ 𝑉 ) )
140 138 139 sylib ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( ( 𝐹𝑧 ) mod 𝑀 ) ∈ 𝑈 ∧ ( ( 𝐹𝑧 ) mod 𝑁 ) ∈ 𝑉 ) )
141 140 simpld ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( 𝐹𝑧 ) mod 𝑀 ) ∈ 𝑈 )
142 oveq1 ( 𝑦 = ( ( 𝐹𝑧 ) mod 𝑀 ) → ( 𝑦 gcd 𝑀 ) = ( ( ( 𝐹𝑧 ) mod 𝑀 ) gcd 𝑀 ) )
143 142 eqeq1d ( 𝑦 = ( ( 𝐹𝑧 ) mod 𝑀 ) → ( ( 𝑦 gcd 𝑀 ) = 1 ↔ ( ( ( 𝐹𝑧 ) mod 𝑀 ) gcd 𝑀 ) = 1 ) )
144 143 5 elrab2 ( ( ( 𝐹𝑧 ) mod 𝑀 ) ∈ 𝑈 ↔ ( ( ( 𝐹𝑧 ) mod 𝑀 ) ∈ ( 0 ..^ 𝑀 ) ∧ ( ( ( 𝐹𝑧 ) mod 𝑀 ) gcd 𝑀 ) = 1 ) )
145 141 144 sylib ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( ( 𝐹𝑧 ) mod 𝑀 ) ∈ ( 0 ..^ 𝑀 ) ∧ ( ( ( 𝐹𝑧 ) mod 𝑀 ) gcd 𝑀 ) = 1 ) )
146 145 simprd ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( ( 𝐹𝑧 ) mod 𝑀 ) gcd 𝑀 ) = 1 )
147 127 146 eqtr3d ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( 𝐹𝑧 ) gcd 𝑀 ) = 1 )
148 40 adantr ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → 𝑁 ∈ ℕ )
149 modgcd ( ( ( 𝐹𝑧 ) ∈ ℤ ∧ 𝑁 ∈ ℕ ) → ( ( ( 𝐹𝑧 ) mod 𝑁 ) gcd 𝑁 ) = ( ( 𝐹𝑧 ) gcd 𝑁 ) )
150 124 148 149 syl2anc ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( ( 𝐹𝑧 ) mod 𝑁 ) gcd 𝑁 ) = ( ( 𝐹𝑧 ) gcd 𝑁 ) )
151 140 simprd ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( 𝐹𝑧 ) mod 𝑁 ) ∈ 𝑉 )
152 oveq1 ( 𝑦 = ( ( 𝐹𝑧 ) mod 𝑁 ) → ( 𝑦 gcd 𝑁 ) = ( ( ( 𝐹𝑧 ) mod 𝑁 ) gcd 𝑁 ) )
153 152 eqeq1d ( 𝑦 = ( ( 𝐹𝑧 ) mod 𝑁 ) → ( ( 𝑦 gcd 𝑁 ) = 1 ↔ ( ( ( 𝐹𝑧 ) mod 𝑁 ) gcd 𝑁 ) = 1 ) )
154 153 6 elrab2 ( ( ( 𝐹𝑧 ) mod 𝑁 ) ∈ 𝑉 ↔ ( ( ( 𝐹𝑧 ) mod 𝑁 ) ∈ ( 0 ..^ 𝑁 ) ∧ ( ( ( 𝐹𝑧 ) mod 𝑁 ) gcd 𝑁 ) = 1 ) )
155 151 154 sylib ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( ( 𝐹𝑧 ) mod 𝑁 ) ∈ ( 0 ..^ 𝑁 ) ∧ ( ( ( 𝐹𝑧 ) mod 𝑁 ) gcd 𝑁 ) = 1 ) )
156 155 simprd ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( ( 𝐹𝑧 ) mod 𝑁 ) gcd 𝑁 ) = 1 )
157 150 156 eqtr3d ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( 𝐹𝑧 ) gcd 𝑁 ) = 1 )
158 23 nnzd ( 𝜑𝑀 ∈ ℤ )
159 158 adantr ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → 𝑀 ∈ ℤ )
160 40 nnzd ( 𝜑𝑁 ∈ ℤ )
161 160 adantr ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → 𝑁 ∈ ℤ )
162 rpmul ( ( ( 𝐹𝑧 ) ∈ ℤ ∧ 𝑀 ∈ ℤ ∧ 𝑁 ∈ ℤ ) → ( ( ( ( 𝐹𝑧 ) gcd 𝑀 ) = 1 ∧ ( ( 𝐹𝑧 ) gcd 𝑁 ) = 1 ) → ( ( 𝐹𝑧 ) gcd ( 𝑀 · 𝑁 ) ) = 1 ) )
163 124 159 161 162 syl3anc ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( ( ( 𝐹𝑧 ) gcd 𝑀 ) = 1 ∧ ( ( 𝐹𝑧 ) gcd 𝑁 ) = 1 ) → ( ( 𝐹𝑧 ) gcd ( 𝑀 · 𝑁 ) ) = 1 ) )
164 147 157 163 mp2and ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( ( 𝐹𝑧 ) gcd ( 𝑀 · 𝑁 ) ) = 1 )
165 oveq1 ( 𝑦 = ( 𝐹𝑧 ) → ( 𝑦 gcd ( 𝑀 · 𝑁 ) ) = ( ( 𝐹𝑧 ) gcd ( 𝑀 · 𝑁 ) ) )
166 165 eqeq1d ( 𝑦 = ( 𝐹𝑧 ) → ( ( 𝑦 gcd ( 𝑀 · 𝑁 ) ) = 1 ↔ ( ( 𝐹𝑧 ) gcd ( 𝑀 · 𝑁 ) ) = 1 ) )
167 166 7 elrab2 ( ( 𝐹𝑧 ) ∈ 𝑊 ↔ ( ( 𝐹𝑧 ) ∈ 𝑆 ∧ ( ( 𝐹𝑧 ) gcd ( 𝑀 · 𝑁 ) ) = 1 ) )
168 121 164 167 sylanbrc ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( 𝐹𝑧 ) ∈ 𝑊 )
169 funfvima2 ( ( Fun 𝐹𝑊 ⊆ dom 𝐹 ) → ( ( 𝐹𝑧 ) ∈ 𝑊 → ( 𝐹 ‘ ( 𝐹𝑧 ) ) ∈ ( 𝐹𝑊 ) ) )
170 101 105 169 syl2anc ( 𝜑 → ( ( 𝐹𝑧 ) ∈ 𝑊 → ( 𝐹 ‘ ( 𝐹𝑧 ) ) ∈ ( 𝐹𝑊 ) ) )
171 170 imp ( ( 𝜑 ∧ ( 𝐹𝑧 ) ∈ 𝑊 ) → ( 𝐹 ‘ ( 𝐹𝑧 ) ) ∈ ( 𝐹𝑊 ) )
172 168 171 syldan ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → ( 𝐹 ‘ ( 𝐹𝑧 ) ) ∈ ( 𝐹𝑊 ) )
173 116 172 eqeltrrd ( ( 𝜑𝑧 ∈ ( 𝑈 × 𝑉 ) ) → 𝑧 ∈ ( 𝐹𝑊 ) )
174 108 173 eqelssd ( 𝜑 → ( 𝐹𝑊 ) = ( 𝑈 × 𝑉 ) )
175 f1of1 ( 𝐹 : 𝑆1-1-onto𝑇𝐹 : 𝑆1-1𝑇 )
176 98 175 syl ( 𝜑𝐹 : 𝑆1-1𝑇 )
177 fzofi ( 0 ..^ ( 𝑀 · 𝑁 ) ) ∈ Fin
178 1 177 eqeltri 𝑆 ∈ Fin
179 ssfi ( ( 𝑆 ∈ Fin ∧ 𝑊𝑆 ) → 𝑊 ∈ Fin )
180 178 102 179 mp2an 𝑊 ∈ Fin
181 180 elexi 𝑊 ∈ V
182 181 f1imaen ( ( 𝐹 : 𝑆1-1𝑇𝑊𝑆 ) → ( 𝐹𝑊 ) ≈ 𝑊 )
183 176 102 182 sylancl ( 𝜑 → ( 𝐹𝑊 ) ≈ 𝑊 )
184 174 183 eqbrtrrd ( 𝜑 → ( 𝑈 × 𝑉 ) ≈ 𝑊 )
185 fzofi ( 0 ..^ 𝑀 ) ∈ Fin
186 ssrab2 { 𝑦 ∈ ( 0 ..^ 𝑀 ) ∣ ( 𝑦 gcd 𝑀 ) = 1 } ⊆ ( 0 ..^ 𝑀 )
187 ssfi ( ( ( 0 ..^ 𝑀 ) ∈ Fin ∧ { 𝑦 ∈ ( 0 ..^ 𝑀 ) ∣ ( 𝑦 gcd 𝑀 ) = 1 } ⊆ ( 0 ..^ 𝑀 ) ) → { 𝑦 ∈ ( 0 ..^ 𝑀 ) ∣ ( 𝑦 gcd 𝑀 ) = 1 } ∈ Fin )
188 185 186 187 mp2an { 𝑦 ∈ ( 0 ..^ 𝑀 ) ∣ ( 𝑦 gcd 𝑀 ) = 1 } ∈ Fin
189 5 188 eqeltri 𝑈 ∈ Fin
190 fzofi ( 0 ..^ 𝑁 ) ∈ Fin
191 ssrab2 { 𝑦 ∈ ( 0 ..^ 𝑁 ) ∣ ( 𝑦 gcd 𝑁 ) = 1 } ⊆ ( 0 ..^ 𝑁 )
192 ssfi ( ( ( 0 ..^ 𝑁 ) ∈ Fin ∧ { 𝑦 ∈ ( 0 ..^ 𝑁 ) ∣ ( 𝑦 gcd 𝑁 ) = 1 } ⊆ ( 0 ..^ 𝑁 ) ) → { 𝑦 ∈ ( 0 ..^ 𝑁 ) ∣ ( 𝑦 gcd 𝑁 ) = 1 } ∈ Fin )
193 190 191 192 mp2an { 𝑦 ∈ ( 0 ..^ 𝑁 ) ∣ ( 𝑦 gcd 𝑁 ) = 1 } ∈ Fin
194 6 193 eqeltri 𝑉 ∈ Fin
195 xpfi ( ( 𝑈 ∈ Fin ∧ 𝑉 ∈ Fin ) → ( 𝑈 × 𝑉 ) ∈ Fin )
196 189 194 195 mp2an ( 𝑈 × 𝑉 ) ∈ Fin
197 hashen ( ( ( 𝑈 × 𝑉 ) ∈ Fin ∧ 𝑊 ∈ Fin ) → ( ( ♯ ‘ ( 𝑈 × 𝑉 ) ) = ( ♯ ‘ 𝑊 ) ↔ ( 𝑈 × 𝑉 ) ≈ 𝑊 ) )
198 196 180 197 mp2an ( ( ♯ ‘ ( 𝑈 × 𝑉 ) ) = ( ♯ ‘ 𝑊 ) ↔ ( 𝑈 × 𝑉 ) ≈ 𝑊 )
199 184 198 sylibr ( 𝜑 → ( ♯ ‘ ( 𝑈 × 𝑉 ) ) = ( ♯ ‘ 𝑊 ) )
200 hashxp ( ( 𝑈 ∈ Fin ∧ 𝑉 ∈ Fin ) → ( ♯ ‘ ( 𝑈 × 𝑉 ) ) = ( ( ♯ ‘ 𝑈 ) · ( ♯ ‘ 𝑉 ) ) )
201 189 194 200 mp2an ( ♯ ‘ ( 𝑈 × 𝑉 ) ) = ( ( ♯ ‘ 𝑈 ) · ( ♯ ‘ 𝑉 ) )
202 199 201 eqtr3di ( 𝜑 → ( ♯ ‘ 𝑊 ) = ( ( ♯ ‘ 𝑈 ) · ( ♯ ‘ 𝑉 ) ) )
203 23 40 nnmulcld ( 𝜑 → ( 𝑀 · 𝑁 ) ∈ ℕ )
204 dfphi2 ( ( 𝑀 · 𝑁 ) ∈ ℕ → ( ϕ ‘ ( 𝑀 · 𝑁 ) ) = ( ♯ ‘ { 𝑦 ∈ ( 0 ..^ ( 𝑀 · 𝑁 ) ) ∣ ( 𝑦 gcd ( 𝑀 · 𝑁 ) ) = 1 } ) )
205 1 rabeqi { 𝑦𝑆 ∣ ( 𝑦 gcd ( 𝑀 · 𝑁 ) ) = 1 } = { 𝑦 ∈ ( 0 ..^ ( 𝑀 · 𝑁 ) ) ∣ ( 𝑦 gcd ( 𝑀 · 𝑁 ) ) = 1 }
206 7 205 eqtri 𝑊 = { 𝑦 ∈ ( 0 ..^ ( 𝑀 · 𝑁 ) ) ∣ ( 𝑦 gcd ( 𝑀 · 𝑁 ) ) = 1 }
207 206 fveq2i ( ♯ ‘ 𝑊 ) = ( ♯ ‘ { 𝑦 ∈ ( 0 ..^ ( 𝑀 · 𝑁 ) ) ∣ ( 𝑦 gcd ( 𝑀 · 𝑁 ) ) = 1 } )
208 204 207 eqtr4di ( ( 𝑀 · 𝑁 ) ∈ ℕ → ( ϕ ‘ ( 𝑀 · 𝑁 ) ) = ( ♯ ‘ 𝑊 ) )
209 203 208 syl ( 𝜑 → ( ϕ ‘ ( 𝑀 · 𝑁 ) ) = ( ♯ ‘ 𝑊 ) )
210 dfphi2 ( 𝑀 ∈ ℕ → ( ϕ ‘ 𝑀 ) = ( ♯ ‘ { 𝑦 ∈ ( 0 ..^ 𝑀 ) ∣ ( 𝑦 gcd 𝑀 ) = 1 } ) )
211 5 fveq2i ( ♯ ‘ 𝑈 ) = ( ♯ ‘ { 𝑦 ∈ ( 0 ..^ 𝑀 ) ∣ ( 𝑦 gcd 𝑀 ) = 1 } )
212 210 211 eqtr4di ( 𝑀 ∈ ℕ → ( ϕ ‘ 𝑀 ) = ( ♯ ‘ 𝑈 ) )
213 23 212 syl ( 𝜑 → ( ϕ ‘ 𝑀 ) = ( ♯ ‘ 𝑈 ) )
214 dfphi2 ( 𝑁 ∈ ℕ → ( ϕ ‘ 𝑁 ) = ( ♯ ‘ { 𝑦 ∈ ( 0 ..^ 𝑁 ) ∣ ( 𝑦 gcd 𝑁 ) = 1 } ) )
215 6 fveq2i ( ♯ ‘ 𝑉 ) = ( ♯ ‘ { 𝑦 ∈ ( 0 ..^ 𝑁 ) ∣ ( 𝑦 gcd 𝑁 ) = 1 } )
216 214 215 eqtr4di ( 𝑁 ∈ ℕ → ( ϕ ‘ 𝑁 ) = ( ♯ ‘ 𝑉 ) )
217 40 216 syl ( 𝜑 → ( ϕ ‘ 𝑁 ) = ( ♯ ‘ 𝑉 ) )
218 213 217 oveq12d ( 𝜑 → ( ( ϕ ‘ 𝑀 ) · ( ϕ ‘ 𝑁 ) ) = ( ( ♯ ‘ 𝑈 ) · ( ♯ ‘ 𝑉 ) ) )
219 202 209 218 3eqtr4d ( 𝜑 → ( ϕ ‘ ( 𝑀 · 𝑁 ) ) = ( ( ϕ ‘ 𝑀 ) · ( ϕ ‘ 𝑁 ) ) )