ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  crth GIF version

Theorem crth 12761
Description: The Chinese Remainder Theorem: the function that maps 𝑥 to its remainder classes mod 𝑀 and mod 𝑁 is 1-1 and onto when 𝑀 and 𝑁 are coprime. (Contributed by Mario Carneiro, 24-Feb-2014.) (Proof shortened by Mario Carneiro, 2-May-2016.)
Hypotheses
Ref Expression
crth.1 𝑆 = (0..^(𝑀 · 𝑁))
crth.2 𝑇 = ((0..^𝑀) × (0..^𝑁))
crth.3 𝐹 = (𝑥𝑆 ↦ ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩)
crth.4 (𝜑 → (𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ (𝑀 gcd 𝑁) = 1))
Assertion
Ref Expression
crth (𝜑𝐹:𝑆1-1-onto𝑇)
Distinct variable groups:   𝑥,𝑀   𝑥,𝑁   𝑥,𝑆   𝑥,𝑇   𝜑,𝑥
Allowed substitution hint:   𝐹(𝑥)

Proof of Theorem crth
Dummy variables 𝑦 𝑧 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 elfzoelz 10355 . . . . . 6 (𝑥 ∈ (0..^(𝑀 · 𝑁)) → 𝑥 ∈ ℤ)
2 crth.1 . . . . . 6 𝑆 = (0..^(𝑀 · 𝑁))
31, 2eleq2s 2324 . . . . 5 (𝑥𝑆𝑥 ∈ ℤ)
4 simpr 110 . . . . . . . 8 ((𝜑𝑥 ∈ ℤ) → 𝑥 ∈ ℤ)
5 crth.4 . . . . . . . . . 10 (𝜑 → (𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ (𝑀 gcd 𝑁) = 1))
65simp1d 1033 . . . . . . . . 9 (𝜑𝑀 ∈ ℕ)
76adantr 276 . . . . . . . 8 ((𝜑𝑥 ∈ ℤ) → 𝑀 ∈ ℕ)
8 zmodfzo 10581 . . . . . . . 8 ((𝑥 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝑥 mod 𝑀) ∈ (0..^𝑀))
94, 7, 8syl2anc 411 . . . . . . 7 ((𝜑𝑥 ∈ ℤ) → (𝑥 mod 𝑀) ∈ (0..^𝑀))
105simp2d 1034 . . . . . . . . 9 (𝜑𝑁 ∈ ℕ)
1110adantr 276 . . . . . . . 8 ((𝜑𝑥 ∈ ℤ) → 𝑁 ∈ ℕ)
12 zmodfzo 10581 . . . . . . . 8 ((𝑥 ∈ ℤ ∧ 𝑁 ∈ ℕ) → (𝑥 mod 𝑁) ∈ (0..^𝑁))
134, 11, 12syl2anc 411 . . . . . . 7 ((𝜑𝑥 ∈ ℤ) → (𝑥 mod 𝑁) ∈ (0..^𝑁))
14 opelxpi 4751 . . . . . . 7 (((𝑥 mod 𝑀) ∈ (0..^𝑀) ∧ (𝑥 mod 𝑁) ∈ (0..^𝑁)) → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ ∈ ((0..^𝑀) × (0..^𝑁)))
159, 13, 14syl2anc 411 . . . . . 6 ((𝜑𝑥 ∈ ℤ) → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ ∈ ((0..^𝑀) × (0..^𝑁)))
16 crth.2 . . . . . 6 𝑇 = ((0..^𝑀) × (0..^𝑁))
1715, 16eleqtrrdi 2323 . . . . 5 ((𝜑𝑥 ∈ ℤ) → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ ∈ 𝑇)
183, 17sylan2 286 . . . 4 ((𝜑𝑥𝑆) → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ ∈ 𝑇)
19 crth.3 . . . 4 𝐹 = (𝑥𝑆 ↦ ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩)
2018, 19fmptd 5791 . . 3 (𝜑𝐹:𝑆𝑇)
21 simprl 529 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦𝑆)
22 elfzoelz 10355 . . . . . . . . . . . . 13 (𝑦 ∈ (0..^(𝑀 · 𝑁)) → 𝑦 ∈ ℤ)
2322, 2eleq2s 2324 . . . . . . . . . . . 12 (𝑦𝑆𝑦 ∈ ℤ)
2423ad2antrl 490 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ ℤ)
25 zq 9833 . . . . . . . . . . 11 (𝑦 ∈ ℤ → 𝑦 ∈ ℚ)
2624, 25syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ ℚ)
276adantr 276 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑀 ∈ ℕ)
28 nnq 9840 . . . . . . . . . . 11 (𝑀 ∈ ℕ → 𝑀 ∈ ℚ)
2927, 28syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑀 ∈ ℚ)
3027nngt0d 9165 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 < 𝑀)
3126, 29, 30modqcld 10562 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦 mod 𝑀) ∈ ℚ)
3210adantr 276 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑁 ∈ ℕ)
33 nnq 9840 . . . . . . . . . . 11 (𝑁 ∈ ℕ → 𝑁 ∈ ℚ)
3432, 33syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑁 ∈ ℚ)
3532nngt0d 9165 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 < 𝑁)
3626, 34, 35modqcld 10562 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦 mod 𝑁) ∈ ℚ)
37 opexg 4314 . . . . . . . . 9 (((𝑦 mod 𝑀) ∈ ℚ ∧ (𝑦 mod 𝑁) ∈ ℚ) → ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ ∈ V)
3831, 36, 37syl2anc 411 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ ∈ V)
39 oveq1 6014 . . . . . . . . . 10 (𝑥 = 𝑦 → (𝑥 mod 𝑀) = (𝑦 mod 𝑀))
40 oveq1 6014 . . . . . . . . . 10 (𝑥 = 𝑦 → (𝑥 mod 𝑁) = (𝑦 mod 𝑁))
4139, 40opeq12d 3865 . . . . . . . . 9 (𝑥 = 𝑦 → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ = ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩)
4241, 19fvmptg 5712 . . . . . . . 8 ((𝑦𝑆 ∧ ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ ∈ V) → (𝐹𝑦) = ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩)
4321, 38, 42syl2anc 411 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝐹𝑦) = ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩)
44 simprr 531 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧𝑆)
45 elfzoelz 10355 . . . . . . . . . . . . 13 (𝑧 ∈ (0..^(𝑀 · 𝑁)) → 𝑧 ∈ ℤ)
4645, 2eleq2s 2324 . . . . . . . . . . . 12 (𝑧𝑆𝑧 ∈ ℤ)
4744, 46syl 14 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ ℤ)
48 zq 9833 . . . . . . . . . . 11 (𝑧 ∈ ℤ → 𝑧 ∈ ℚ)
4947, 48syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ ℚ)
5049, 29, 30modqcld 10562 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑧 mod 𝑀) ∈ ℚ)
5149, 34, 35modqcld 10562 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑧 mod 𝑁) ∈ ℚ)
52 opexg 4314 . . . . . . . . 9 (((𝑧 mod 𝑀) ∈ ℚ ∧ (𝑧 mod 𝑁) ∈ ℚ) → ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ∈ V)
5350, 51, 52syl2anc 411 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ∈ V)
54 oveq1 6014 . . . . . . . . . 10 (𝑥 = 𝑧 → (𝑥 mod 𝑀) = (𝑧 mod 𝑀))
55 oveq1 6014 . . . . . . . . . 10 (𝑥 = 𝑧 → (𝑥 mod 𝑁) = (𝑧 mod 𝑁))
5654, 55opeq12d 3865 . . . . . . . . 9 (𝑥 = 𝑧 → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩)
5756, 19fvmptg 5712 . . . . . . . 8 ((𝑧𝑆 ∧ ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ∈ V) → (𝐹𝑧) = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩)
5844, 53, 57syl2anc 411 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝐹𝑧) = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩)
5943, 58eqeq12d 2244 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝐹𝑦) = (𝐹𝑧) ↔ ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩))
60 opthg 4324 . . . . . . 7 (((𝑦 mod 𝑀) ∈ ℚ ∧ (𝑦 mod 𝑁) ∈ ℚ) → (⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ↔ ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ∧ (𝑦 mod 𝑁) = (𝑧 mod 𝑁))))
6131, 36, 60syl2anc 411 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ↔ ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ∧ (𝑦 mod 𝑁) = (𝑧 mod 𝑁))))
6259, 61bitrd 188 . . . . 5 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝐹𝑦) = (𝐹𝑧) ↔ ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ∧ (𝑦 mod 𝑁) = (𝑧 mod 𝑁))))
6327nnzd 9579 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑀 ∈ ℤ)
6432nnzd 9579 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑁 ∈ ℤ)
6521, 2eleqtrdi 2322 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ (0..^(𝑀 · 𝑁)))
6665, 22syl 14 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ ℤ)
6744, 2eleqtrdi 2322 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ (0..^(𝑀 · 𝑁)))
6867, 45syl 14 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ ℤ)
6966, 68zsubcld 9585 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦𝑧) ∈ ℤ)
705simp3d 1035 . . . . . . . 8 (𝜑 → (𝑀 gcd 𝑁) = 1)
7170adantr 276 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑀 gcd 𝑁) = 1)
72 coprmdvds2 12630 . . . . . . 7 (((𝑀 ∈ ℤ ∧ 𝑁 ∈ ℤ ∧ (𝑦𝑧) ∈ ℤ) ∧ (𝑀 gcd 𝑁) = 1) → ((𝑀 ∥ (𝑦𝑧) ∧ 𝑁 ∥ (𝑦𝑧)) → (𝑀 · 𝑁) ∥ (𝑦𝑧)))
7363, 64, 69, 71, 72syl31anc 1274 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑀 ∥ (𝑦𝑧) ∧ 𝑁 ∥ (𝑦𝑧)) → (𝑀 · 𝑁) ∥ (𝑦𝑧)))
74 moddvds 12325 . . . . . . . 8 ((𝑀 ∈ ℕ ∧ 𝑦 ∈ ℤ ∧ 𝑧 ∈ ℤ) → ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ↔ 𝑀 ∥ (𝑦𝑧)))
7527, 66, 68, 74syl3anc 1271 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ↔ 𝑀 ∥ (𝑦𝑧)))
76 moddvds 12325 . . . . . . . 8 ((𝑁 ∈ ℕ ∧ 𝑦 ∈ ℤ ∧ 𝑧 ∈ ℤ) → ((𝑦 mod 𝑁) = (𝑧 mod 𝑁) ↔ 𝑁 ∥ (𝑦𝑧)))
7732, 66, 68, 76syl3anc 1271 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑦 mod 𝑁) = (𝑧 mod 𝑁) ↔ 𝑁 ∥ (𝑦𝑧)))
7875, 77anbi12d 473 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ∧ (𝑦 mod 𝑁) = (𝑧 mod 𝑁)) ↔ (𝑀 ∥ (𝑦𝑧) ∧ 𝑁 ∥ (𝑦𝑧))))
79 qmulcl 9844 . . . . . . . . . 10 ((𝑀 ∈ ℚ ∧ 𝑁 ∈ ℚ) → (𝑀 · 𝑁) ∈ ℚ)
8029, 34, 79syl2anc 411 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑀 · 𝑁) ∈ ℚ)
81 elfzole1 10364 . . . . . . . . . 10 (𝑦 ∈ (0..^(𝑀 · 𝑁)) → 0 ≤ 𝑦)
8265, 81syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 ≤ 𝑦)
83 elfzolt2 10365 . . . . . . . . . 10 (𝑦 ∈ (0..^(𝑀 · 𝑁)) → 𝑦 < (𝑀 · 𝑁))
8465, 83syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 < (𝑀 · 𝑁))
85 modqid 10583 . . . . . . . . 9 (((𝑦 ∈ ℚ ∧ (𝑀 · 𝑁) ∈ ℚ) ∧ (0 ≤ 𝑦𝑦 < (𝑀 · 𝑁))) → (𝑦 mod (𝑀 · 𝑁)) = 𝑦)
8626, 80, 82, 84, 85syl22anc 1272 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦 mod (𝑀 · 𝑁)) = 𝑦)
87 elfzole1 10364 . . . . . . . . . 10 (𝑧 ∈ (0..^(𝑀 · 𝑁)) → 0 ≤ 𝑧)
8867, 87syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 ≤ 𝑧)
89 elfzolt2 10365 . . . . . . . . . 10 (𝑧 ∈ (0..^(𝑀 · 𝑁)) → 𝑧 < (𝑀 · 𝑁))
9067, 89syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 < (𝑀 · 𝑁))
91 modqid 10583 . . . . . . . . 9 (((𝑧 ∈ ℚ ∧ (𝑀 · 𝑁) ∈ ℚ) ∧ (0 ≤ 𝑧𝑧 < (𝑀 · 𝑁))) → (𝑧 mod (𝑀 · 𝑁)) = 𝑧)
9249, 80, 88, 90, 91syl22anc 1272 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑧 mod (𝑀 · 𝑁)) = 𝑧)
9386, 92eqeq12d 2244 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑦 mod (𝑀 · 𝑁)) = (𝑧 mod (𝑀 · 𝑁)) ↔ 𝑦 = 𝑧))
9427, 32nnmulcld 9170 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑀 · 𝑁) ∈ ℕ)
95 moddvds 12325 . . . . . . . 8 (((𝑀 · 𝑁) ∈ ℕ ∧ 𝑦 ∈ ℤ ∧ 𝑧 ∈ ℤ) → ((𝑦 mod (𝑀 · 𝑁)) = (𝑧 mod (𝑀 · 𝑁)) ↔ (𝑀 · 𝑁) ∥ (𝑦𝑧)))
9694, 66, 68, 95syl3anc 1271 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑦 mod (𝑀 · 𝑁)) = (𝑧 mod (𝑀 · 𝑁)) ↔ (𝑀 · 𝑁) ∥ (𝑦𝑧)))
9793, 96bitr3d 190 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦 = 𝑧 ↔ (𝑀 · 𝑁) ∥ (𝑦𝑧)))
9873, 78, 973imtr4d 203 . . . . 5 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ∧ (𝑦 mod 𝑁) = (𝑧 mod 𝑁)) → 𝑦 = 𝑧))
9962, 98sylbid 150 . . . 4 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝐹𝑦) = (𝐹𝑧) → 𝑦 = 𝑧))
10099ralrimivva 2612 . . 3 (𝜑 → ∀𝑦𝑆𝑧𝑆 ((𝐹𝑦) = (𝐹𝑧) → 𝑦 = 𝑧))
101 dff13 5898 . . 3 (𝐹:𝑆1-1𝑇 ↔ (𝐹:𝑆𝑇 ∧ ∀𝑦𝑆𝑧𝑆 ((𝐹𝑦) = (𝐹𝑧) → 𝑦 = 𝑧)))
10220, 100, 101sylanbrc 417 . 2 (𝜑𝐹:𝑆1-1𝑇)
103 nnnn0 9387 . . . . . 6 (𝑀 ∈ ℕ → 𝑀 ∈ ℕ0)
104 nnnn0 9387 . . . . . 6 (𝑁 ∈ ℕ → 𝑁 ∈ ℕ0)
105 hashfzo0 11058 . . . . . . . . 9 (𝑀 ∈ ℕ0 → (♯‘(0..^𝑀)) = 𝑀)
106 hashfzo0 11058 . . . . . . . . 9 (𝑁 ∈ ℕ0 → (♯‘(0..^𝑁)) = 𝑁)
107105, 106oveqan12d 6026 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → ((♯‘(0..^𝑀)) · (♯‘(0..^𝑁))) = (𝑀 · 𝑁))
108 0z 9468 . . . . . . . . . 10 0 ∈ ℤ
109 simpl 109 . . . . . . . . . . 11 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → 𝑀 ∈ ℕ0)
110109nn0zd 9578 . . . . . . . . . 10 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → 𝑀 ∈ ℤ)
111 fzofig 10666 . . . . . . . . . 10 ((0 ∈ ℤ ∧ 𝑀 ∈ ℤ) → (0..^𝑀) ∈ Fin)
112108, 110, 111sylancr 414 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (0..^𝑀) ∈ Fin)
113 nn0z 9477 . . . . . . . . . . 11 (𝑁 ∈ ℕ0𝑁 ∈ ℤ)
114113adantl 277 . . . . . . . . . 10 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → 𝑁 ∈ ℤ)
115 fzofig 10666 . . . . . . . . . 10 ((0 ∈ ℤ ∧ 𝑁 ∈ ℤ) → (0..^𝑁) ∈ Fin)
116108, 114, 115sylancr 414 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (0..^𝑁) ∈ Fin)
117 hashxp 11061 . . . . . . . . 9 (((0..^𝑀) ∈ Fin ∧ (0..^𝑁) ∈ Fin) → (♯‘((0..^𝑀) × (0..^𝑁))) = ((♯‘(0..^𝑀)) · (♯‘(0..^𝑁))))
118112, 116, 117syl2anc 411 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (♯‘((0..^𝑀) × (0..^𝑁))) = ((♯‘(0..^𝑀)) · (♯‘(0..^𝑁))))
119 nn0mulcl 9416 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (𝑀 · 𝑁) ∈ ℕ0)
120 hashfzo0 11058 . . . . . . . . 9 ((𝑀 · 𝑁) ∈ ℕ0 → (♯‘(0..^(𝑀 · 𝑁))) = (𝑀 · 𝑁))
121119, 120syl 14 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (♯‘(0..^(𝑀 · 𝑁))) = (𝑀 · 𝑁))
122107, 118, 1213eqtr4rd 2273 . . . . . . 7 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (♯‘(0..^(𝑀 · 𝑁))) = (♯‘((0..^𝑀) × (0..^𝑁))))
123119nn0zd 9578 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (𝑀 · 𝑁) ∈ ℤ)
124 fzofig 10666 . . . . . . . . 9 ((0 ∈ ℤ ∧ (𝑀 · 𝑁) ∈ ℤ) → (0..^(𝑀 · 𝑁)) ∈ Fin)
125108, 123, 124sylancr 414 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (0..^(𝑀 · 𝑁)) ∈ Fin)
126 xpfi 7105 . . . . . . . . 9 (((0..^𝑀) ∈ Fin ∧ (0..^𝑁) ∈ Fin) → ((0..^𝑀) × (0..^𝑁)) ∈ Fin)
127112, 116, 126syl2anc 411 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → ((0..^𝑀) × (0..^𝑁)) ∈ Fin)
128 hashen 11018 . . . . . . . 8 (((0..^(𝑀 · 𝑁)) ∈ Fin ∧ ((0..^𝑀) × (0..^𝑁)) ∈ Fin) → ((♯‘(0..^(𝑀 · 𝑁))) = (♯‘((0..^𝑀) × (0..^𝑁))) ↔ (0..^(𝑀 · 𝑁)) ≈ ((0..^𝑀) × (0..^𝑁))))
129125, 127, 128syl2anc 411 . . . . . . 7 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → ((♯‘(0..^(𝑀 · 𝑁))) = (♯‘((0..^𝑀) × (0..^𝑁))) ↔ (0..^(𝑀 · 𝑁)) ≈ ((0..^𝑀) × (0..^𝑁))))
130122, 129mpbid 147 . . . . . 6 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (0..^(𝑀 · 𝑁)) ≈ ((0..^𝑀) × (0..^𝑁)))
131103, 104, 130syl2an 289 . . . . 5 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ) → (0..^(𝑀 · 𝑁)) ≈ ((0..^𝑀) × (0..^𝑁)))
1326, 10, 131syl2anc 411 . . . 4 (𝜑 → (0..^(𝑀 · 𝑁)) ≈ ((0..^𝑀) × (0..^𝑁)))
133132, 2, 163brtr4g 4117 . . 3 (𝜑𝑆𝑇)
1346nnnn0d 9433 . . . . 5 (𝜑𝑀 ∈ ℕ0)
13510nnnn0d 9433 . . . . 5 (𝜑𝑁 ∈ ℕ0)
136134, 135, 127syl2anc 411 . . . 4 (𝜑 → ((0..^𝑀) × (0..^𝑁)) ∈ Fin)
13716, 136eqeltrid 2316 . . 3 (𝜑𝑇 ∈ Fin)
138 f1finf1o 7125 . . 3 ((𝑆𝑇𝑇 ∈ Fin) → (𝐹:𝑆1-1𝑇𝐹:𝑆1-1-onto𝑇))
139133, 137, 138syl2anc 411 . 2 (𝜑 → (𝐹:𝑆1-1𝑇𝐹:𝑆1-1-onto𝑇))
140102, 139mpbid 147 1 (𝜑𝐹:𝑆1-1-onto𝑇)
Colors of variables: wff set class
Syntax hints:  wi 4  wa 104  wb 105  w3a 1002   = wceq 1395  wcel 2200  wral 2508  Vcvv 2799  cop 3669   class class class wbr 4083  cmpt 4145   × cxp 4717  wf 5314  1-1wf1 5315  1-1-ontowf1o 5317  cfv 5318  (class class class)co 6007  cen 6893  Fincfn 6895  0cc0 8010  1c1 8011   · cmul 8015   < clt 8192  cle 8193  cmin 8328  cn 9121  0cn0 9380  cz 9457  cq 9826  ..^cfzo 10350   mod cmo 10556  chash 11009  cdvds 12313   gcd cgcd 12489
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 617  ax-in2 618  ax-io 714  ax-5 1493  ax-7 1494  ax-gen 1495  ax-ie1 1539  ax-ie2 1540  ax-8 1550  ax-10 1551  ax-11 1552  ax-i12 1553  ax-bndl 1555  ax-4 1556  ax-17 1572  ax-i9 1576  ax-ial 1580  ax-i5r 1581  ax-13 2202  ax-14 2203  ax-ext 2211  ax-coll 4199  ax-sep 4202  ax-nul 4210  ax-pow 4258  ax-pr 4293  ax-un 4524  ax-setind 4629  ax-iinf 4680  ax-cnex 8101  ax-resscn 8102  ax-1cn 8103  ax-1re 8104  ax-icn 8105  ax-addcl 8106  ax-addrcl 8107  ax-mulcl 8108  ax-mulrcl 8109  ax-addcom 8110  ax-mulcom 8111  ax-addass 8112  ax-mulass 8113  ax-distr 8114  ax-i2m1 8115  ax-0lt1 8116  ax-1rid 8117  ax-0id 8118  ax-rnegex 8119  ax-precex 8120  ax-cnre 8121  ax-pre-ltirr 8122  ax-pre-ltwlin 8123  ax-pre-lttrn 8124  ax-pre-apti 8125  ax-pre-ltadd 8126  ax-pre-mulgt0 8127  ax-pre-mulext 8128  ax-arch 8129  ax-caucvg 8130
This theorem depends on definitions:  df-bi 117  df-dc 840  df-3or 1003  df-3an 1004  df-tru 1398  df-fal 1401  df-nf 1507  df-sb 1809  df-eu 2080  df-mo 2081  df-clab 2216  df-cleq 2222  df-clel 2225  df-nfc 2361  df-ne 2401  df-nel 2496  df-ral 2513  df-rex 2514  df-reu 2515  df-rmo 2516  df-rab 2517  df-v 2801  df-sbc 3029  df-csb 3125  df-dif 3199  df-un 3201  df-in 3203  df-ss 3210  df-nul 3492  df-if 3603  df-pw 3651  df-sn 3672  df-pr 3673  df-op 3675  df-uni 3889  df-int 3924  df-iun 3967  df-br 4084  df-opab 4146  df-mpt 4147  df-tr 4183  df-id 4384  df-po 4387  df-iso 4388  df-iord 4457  df-on 4459  df-ilim 4460  df-suc 4462  df-iom 4683  df-xp 4725  df-rel 4726  df-cnv 4727  df-co 4728  df-dm 4729  df-rn 4730  df-res 4731  df-ima 4732  df-iota 5278  df-fun 5320  df-fn 5321  df-f 5322  df-f1 5323  df-fo 5324  df-f1o 5325  df-fv 5326  df-riota 5960  df-ov 6010  df-oprab 6011  df-mpo 6012  df-1st 6292  df-2nd 6293  df-recs 6457  df-irdg 6522  df-frec 6543  df-1o 6568  df-oadd 6572  df-er 6688  df-en 6896  df-dom 6897  df-fin 6898  df-sup 7162  df-pnf 8194  df-mnf 8195  df-xr 8196  df-ltxr 8197  df-le 8198  df-sub 8330  df-neg 8331  df-reap 8733  df-ap 8740  df-div 8831  df-inn 9122  df-2 9180  df-3 9181  df-4 9182  df-n0 9381  df-z 9458  df-uz 9734  df-q 9827  df-rp 9862  df-fz 10217  df-fzo 10351  df-fl 10502  df-mod 10557  df-seqfrec 10682  df-exp 10773  df-ihash 11010  df-cj 11368  df-re 11369  df-im 11370  df-rsqrt 11524  df-abs 11525  df-dvds 12314  df-gcd 12490
This theorem is referenced by:  phimullem  12762
  Copyright terms: Public domain W3C validator