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 𝑆 = ( 0 ..^ ( 𝑀 · 𝑁 ) )
crth.2 𝑇 = ( ( 0 ..^ 𝑀 ) × ( 0 ..^ 𝑁 ) )
crth.3 𝐹 = ( 𝑥𝑆 ↦ ⟨ ( 𝑥 mod 𝑀 ) , ( 𝑥 mod 𝑁 ) ⟩ )
crth.4 ( 𝜑 → ( 𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ ( 𝑀 gcd 𝑁 ) = 1 ) )
Assertion crth ( 𝜑𝐹 : 𝑆1-1-onto𝑇 )

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