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

Theorem crth 12786
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 10372 . . . . . 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 10599 . . . . . . . 8 ((𝑥 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝑥 mod 𝑀) ∈ (0..^𝑀))
94, 7, 8syl2anc 411 . . . . . . 7 ((𝜑𝑥 ∈ ℤ) → (𝑥 mod 𝑀) ∈ (0..^𝑀))
105simp2d 1034 . . . . . . . . 9 (𝜑𝑁 ∈ ℕ)
1110adantr 276 . . . . . . . 8 ((𝜑𝑥 ∈ ℤ) → 𝑁 ∈ ℕ)
12 zmodfzo 10599 . . . . . . . 8 ((𝑥 ∈ ℤ ∧ 𝑁 ∈ ℕ) → (𝑥 mod 𝑁) ∈ (0..^𝑁))
134, 11, 12syl2anc 411 . . . . . . 7 ((𝜑𝑥 ∈ ℤ) → (𝑥 mod 𝑁) ∈ (0..^𝑁))
14 opelxpi 4755 . . . . . . 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 5797 . . 3 (𝜑𝐹:𝑆𝑇)
21 simprl 529 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦𝑆)
22 elfzoelz 10372 . . . . . . . . . . . . 13 (𝑦 ∈ (0..^(𝑀 · 𝑁)) → 𝑦 ∈ ℤ)
2322, 2eleq2s 2324 . . . . . . . . . . . 12 (𝑦𝑆𝑦 ∈ ℤ)
2423ad2antrl 490 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ ℤ)
25 zq 9850 . . . . . . . . . . 11 (𝑦 ∈ ℤ → 𝑦 ∈ ℚ)
2624, 25syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ ℚ)
276adantr 276 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑀 ∈ ℕ)
28 nnq 9857 . . . . . . . . . . 11 (𝑀 ∈ ℕ → 𝑀 ∈ ℚ)
2927, 28syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑀 ∈ ℚ)
3027nngt0d 9177 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 < 𝑀)
3126, 29, 30modqcld 10580 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦 mod 𝑀) ∈ ℚ)
3210adantr 276 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑁 ∈ ℕ)
33 nnq 9857 . . . . . . . . . . 11 (𝑁 ∈ ℕ → 𝑁 ∈ ℚ)
3432, 33syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑁 ∈ ℚ)
3532nngt0d 9177 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 < 𝑁)
3626, 34, 35modqcld 10580 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦 mod 𝑁) ∈ ℚ)
37 opexg 4318 . . . . . . . . 9 (((𝑦 mod 𝑀) ∈ ℚ ∧ (𝑦 mod 𝑁) ∈ ℚ) → ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ ∈ V)
3831, 36, 37syl2anc 411 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ ∈ V)
39 oveq1 6020 . . . . . . . . . 10 (𝑥 = 𝑦 → (𝑥 mod 𝑀) = (𝑦 mod 𝑀))
40 oveq1 6020 . . . . . . . . . 10 (𝑥 = 𝑦 → (𝑥 mod 𝑁) = (𝑦 mod 𝑁))
4139, 40opeq12d 3868 . . . . . . . . 9 (𝑥 = 𝑦 → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ = ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩)
4241, 19fvmptg 5718 . . . . . . . 8 ((𝑦𝑆 ∧ ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ ∈ V) → (𝐹𝑦) = ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩)
4321, 38, 42syl2anc 411 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝐹𝑦) = ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩)
44 simprr 531 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧𝑆)
45 elfzoelz 10372 . . . . . . . . . . . . 13 (𝑧 ∈ (0..^(𝑀 · 𝑁)) → 𝑧 ∈ ℤ)
4645, 2eleq2s 2324 . . . . . . . . . . . 12 (𝑧𝑆𝑧 ∈ ℤ)
4744, 46syl 14 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ ℤ)
48 zq 9850 . . . . . . . . . . 11 (𝑧 ∈ ℤ → 𝑧 ∈ ℚ)
4947, 48syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ ℚ)
5049, 29, 30modqcld 10580 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑧 mod 𝑀) ∈ ℚ)
5149, 34, 35modqcld 10580 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑧 mod 𝑁) ∈ ℚ)
52 opexg 4318 . . . . . . . . 9 (((𝑧 mod 𝑀) ∈ ℚ ∧ (𝑧 mod 𝑁) ∈ ℚ) → ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ∈ V)
5350, 51, 52syl2anc 411 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ∈ V)
54 oveq1 6020 . . . . . . . . . 10 (𝑥 = 𝑧 → (𝑥 mod 𝑀) = (𝑧 mod 𝑀))
55 oveq1 6020 . . . . . . . . . 10 (𝑥 = 𝑧 → (𝑥 mod 𝑁) = (𝑧 mod 𝑁))
5654, 55opeq12d 3868 . . . . . . . . 9 (𝑥 = 𝑧 → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩)
5756, 19fvmptg 5718 . . . . . . . 8 ((𝑧𝑆 ∧ ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ∈ V) → (𝐹𝑧) = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩)
5844, 53, 57syl2anc 411 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝐹𝑧) = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩)
5943, 58eqeq12d 2244 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝐹𝑦) = (𝐹𝑧) ↔ ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩))
60 opthg 4328 . . . . . . 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 9591 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑀 ∈ ℤ)
6432nnzd 9591 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑁 ∈ ℤ)
6521, 2eleqtrdi 2322 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ (0..^(𝑀 · 𝑁)))
6665, 22syl 14 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ ℤ)
6744, 2eleqtrdi 2322 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ (0..^(𝑀 · 𝑁)))
6867, 45syl 14 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ ℤ)
6966, 68zsubcld 9597 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦𝑧) ∈ ℤ)
705simp3d 1035 . . . . . . . 8 (𝜑 → (𝑀 gcd 𝑁) = 1)
7170adantr 276 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑀 gcd 𝑁) = 1)
72 coprmdvds2 12655 . . . . . . 7 (((𝑀 ∈ ℤ ∧ 𝑁 ∈ ℤ ∧ (𝑦𝑧) ∈ ℤ) ∧ (𝑀 gcd 𝑁) = 1) → ((𝑀 ∥ (𝑦𝑧) ∧ 𝑁 ∥ (𝑦𝑧)) → (𝑀 · 𝑁) ∥ (𝑦𝑧)))
7363, 64, 69, 71, 72syl31anc 1274 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑀 ∥ (𝑦𝑧) ∧ 𝑁 ∥ (𝑦𝑧)) → (𝑀 · 𝑁) ∥ (𝑦𝑧)))
74 moddvds 12350 . . . . . . . 8 ((𝑀 ∈ ℕ ∧ 𝑦 ∈ ℤ ∧ 𝑧 ∈ ℤ) → ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ↔ 𝑀 ∥ (𝑦𝑧)))
7527, 66, 68, 74syl3anc 1271 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ↔ 𝑀 ∥ (𝑦𝑧)))
76 moddvds 12350 . . . . . . . 8 ((𝑁 ∈ ℕ ∧ 𝑦 ∈ ℤ ∧ 𝑧 ∈ ℤ) → ((𝑦 mod 𝑁) = (𝑧 mod 𝑁) ↔ 𝑁 ∥ (𝑦𝑧)))
7732, 66, 68, 76syl3anc 1271 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑦 mod 𝑁) = (𝑧 mod 𝑁) ↔ 𝑁 ∥ (𝑦𝑧)))
7875, 77anbi12d 473 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ∧ (𝑦 mod 𝑁) = (𝑧 mod 𝑁)) ↔ (𝑀 ∥ (𝑦𝑧) ∧ 𝑁 ∥ (𝑦𝑧))))
79 qmulcl 9861 . . . . . . . . . 10 ((𝑀 ∈ ℚ ∧ 𝑁 ∈ ℚ) → (𝑀 · 𝑁) ∈ ℚ)
8029, 34, 79syl2anc 411 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑀 · 𝑁) ∈ ℚ)
81 elfzole1 10381 . . . . . . . . . 10 (𝑦 ∈ (0..^(𝑀 · 𝑁)) → 0 ≤ 𝑦)
8265, 81syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 ≤ 𝑦)
83 elfzolt2 10382 . . . . . . . . . 10 (𝑦 ∈ (0..^(𝑀 · 𝑁)) → 𝑦 < (𝑀 · 𝑁))
8465, 83syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 < (𝑀 · 𝑁))
85 modqid 10601 . . . . . . . . 9 (((𝑦 ∈ ℚ ∧ (𝑀 · 𝑁) ∈ ℚ) ∧ (0 ≤ 𝑦𝑦 < (𝑀 · 𝑁))) → (𝑦 mod (𝑀 · 𝑁)) = 𝑦)
8626, 80, 82, 84, 85syl22anc 1272 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦 mod (𝑀 · 𝑁)) = 𝑦)
87 elfzole1 10381 . . . . . . . . . 10 (𝑧 ∈ (0..^(𝑀 · 𝑁)) → 0 ≤ 𝑧)
8867, 87syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 ≤ 𝑧)
89 elfzolt2 10382 . . . . . . . . . 10 (𝑧 ∈ (0..^(𝑀 · 𝑁)) → 𝑧 < (𝑀 · 𝑁))
9067, 89syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 < (𝑀 · 𝑁))
91 modqid 10601 . . . . . . . . 9 (((𝑧 ∈ ℚ ∧ (𝑀 · 𝑁) ∈ ℚ) ∧ (0 ≤ 𝑧𝑧 < (𝑀 · 𝑁))) → (𝑧 mod (𝑀 · 𝑁)) = 𝑧)
9249, 80, 88, 90, 91syl22anc 1272 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑧 mod (𝑀 · 𝑁)) = 𝑧)
9386, 92eqeq12d 2244 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑦 mod (𝑀 · 𝑁)) = (𝑧 mod (𝑀 · 𝑁)) ↔ 𝑦 = 𝑧))
9427, 32nnmulcld 9182 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑀 · 𝑁) ∈ ℕ)
95 moddvds 12350 . . . . . . . 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 5904 . . 3 (𝐹:𝑆1-1𝑇 ↔ (𝐹:𝑆𝑇 ∧ ∀𝑦𝑆𝑧𝑆 ((𝐹𝑦) = (𝐹𝑧) → 𝑦 = 𝑧)))
10220, 100, 101sylanbrc 417 . 2 (𝜑𝐹:𝑆1-1𝑇)
103 nnnn0 9399 . . . . . 6 (𝑀 ∈ ℕ → 𝑀 ∈ ℕ0)
104 nnnn0 9399 . . . . . 6 (𝑁 ∈ ℕ → 𝑁 ∈ ℕ0)
105 hashfzo0 11077 . . . . . . . . 9 (𝑀 ∈ ℕ0 → (♯‘(0..^𝑀)) = 𝑀)
106 hashfzo0 11077 . . . . . . . . 9 (𝑁 ∈ ℕ0 → (♯‘(0..^𝑁)) = 𝑁)
107105, 106oveqan12d 6032 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → ((♯‘(0..^𝑀)) · (♯‘(0..^𝑁))) = (𝑀 · 𝑁))
108 0z 9480 . . . . . . . . . 10 0 ∈ ℤ
109 simpl 109 . . . . . . . . . . 11 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → 𝑀 ∈ ℕ0)
110109nn0zd 9590 . . . . . . . . . 10 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → 𝑀 ∈ ℤ)
111 fzofig 10684 . . . . . . . . . 10 ((0 ∈ ℤ ∧ 𝑀 ∈ ℤ) → (0..^𝑀) ∈ Fin)
112108, 110, 111sylancr 414 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (0..^𝑀) ∈ Fin)
113 nn0z 9489 . . . . . . . . . . 11 (𝑁 ∈ ℕ0𝑁 ∈ ℤ)
114113adantl 277 . . . . . . . . . 10 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → 𝑁 ∈ ℤ)
115 fzofig 10684 . . . . . . . . . 10 ((0 ∈ ℤ ∧ 𝑁 ∈ ℤ) → (0..^𝑁) ∈ Fin)
116108, 114, 115sylancr 414 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (0..^𝑁) ∈ Fin)
117 hashxp 11080 . . . . . . . . 9 (((0..^𝑀) ∈ Fin ∧ (0..^𝑁) ∈ Fin) → (♯‘((0..^𝑀) × (0..^𝑁))) = ((♯‘(0..^𝑀)) · (♯‘(0..^𝑁))))
118112, 116, 117syl2anc 411 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (♯‘((0..^𝑀) × (0..^𝑁))) = ((♯‘(0..^𝑀)) · (♯‘(0..^𝑁))))
119 nn0mulcl 9428 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (𝑀 · 𝑁) ∈ ℕ0)
120 hashfzo0 11077 . . . . . . . . 9 ((𝑀 · 𝑁) ∈ ℕ0 → (♯‘(0..^(𝑀 · 𝑁))) = (𝑀 · 𝑁))
121119, 120syl 14 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (♯‘(0..^(𝑀 · 𝑁))) = (𝑀 · 𝑁))
122107, 118, 1213eqtr4rd 2273 . . . . . . 7 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (♯‘(0..^(𝑀 · 𝑁))) = (♯‘((0..^𝑀) × (0..^𝑁))))
123119nn0zd 9590 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (𝑀 · 𝑁) ∈ ℤ)
124 fzofig 10684 . . . . . . . . 9 ((0 ∈ ℤ ∧ (𝑀 · 𝑁) ∈ ℤ) → (0..^(𝑀 · 𝑁)) ∈ Fin)
125108, 123, 124sylancr 414 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (0..^(𝑀 · 𝑁)) ∈ Fin)
126 xpfi 7117 . . . . . . . . 9 (((0..^𝑀) ∈ Fin ∧ (0..^𝑁) ∈ Fin) → ((0..^𝑀) × (0..^𝑁)) ∈ Fin)
127112, 116, 126syl2anc 411 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → ((0..^𝑀) × (0..^𝑁)) ∈ Fin)
128 hashen 11036 . . . . . . . 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 4120 . . 3 (𝜑𝑆𝑇)
1346nnnn0d 9445 . . . . 5 (𝜑𝑀 ∈ ℕ0)
13510nnnn0d 9445 . . . . 5 (𝜑𝑁 ∈ ℕ0)
136134, 135, 127syl2anc 411 . . . 4 (𝜑 → ((0..^𝑀) × (0..^𝑁)) ∈ Fin)
13716, 136eqeltrid 2316 . . 3 (𝜑𝑇 ∈ Fin)
138 f1finf1o 7137 . . 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 2800  cop 3670   class class class wbr 4086  cmpt 4148   × cxp 4721  wf 5320  1-1wf1 5321  1-1-ontowf1o 5323  cfv 5324  (class class class)co 6013  cen 6902  Fincfn 6904  0cc0 8022  1c1 8023   · cmul 8027   < clt 8204  cle 8205  cmin 8340  cn 9133  0cn0 9392  cz 9469  cq 9843  ..^cfzo 10367   mod cmo 10574  chash 11027  cdvds 12338   gcd cgcd 12514
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 4202  ax-sep 4205  ax-nul 4213  ax-pow 4262  ax-pr 4297  ax-un 4528  ax-setind 4633  ax-iinf 4684  ax-cnex 8113  ax-resscn 8114  ax-1cn 8115  ax-1re 8116  ax-icn 8117  ax-addcl 8118  ax-addrcl 8119  ax-mulcl 8120  ax-mulrcl 8121  ax-addcom 8122  ax-mulcom 8123  ax-addass 8124  ax-mulass 8125  ax-distr 8126  ax-i2m1 8127  ax-0lt1 8128  ax-1rid 8129  ax-0id 8130  ax-rnegex 8131  ax-precex 8132  ax-cnre 8133  ax-pre-ltirr 8134  ax-pre-ltwlin 8135  ax-pre-lttrn 8136  ax-pre-apti 8137  ax-pre-ltadd 8138  ax-pre-mulgt0 8139  ax-pre-mulext 8140  ax-arch 8141  ax-caucvg 8142
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 2802  df-sbc 3030  df-csb 3126  df-dif 3200  df-un 3202  df-in 3204  df-ss 3211  df-nul 3493  df-if 3604  df-pw 3652  df-sn 3673  df-pr 3674  df-op 3676  df-uni 3892  df-int 3927  df-iun 3970  df-br 4087  df-opab 4149  df-mpt 4150  df-tr 4186  df-id 4388  df-po 4391  df-iso 4392  df-iord 4461  df-on 4463  df-ilim 4464  df-suc 4466  df-iom 4687  df-xp 4729  df-rel 4730  df-cnv 4731  df-co 4732  df-dm 4733  df-rn 4734  df-res 4735  df-ima 4736  df-iota 5284  df-fun 5326  df-fn 5327  df-f 5328  df-f1 5329  df-fo 5330  df-f1o 5331  df-fv 5332  df-riota 5966  df-ov 6016  df-oprab 6017  df-mpo 6018  df-1st 6298  df-2nd 6299  df-recs 6466  df-irdg 6531  df-frec 6552  df-1o 6577  df-oadd 6581  df-er 6697  df-en 6905  df-dom 6906  df-fin 6907  df-sup 7174  df-pnf 8206  df-mnf 8207  df-xr 8208  df-ltxr 8209  df-le 8210  df-sub 8342  df-neg 8343  df-reap 8745  df-ap 8752  df-div 8843  df-inn 9134  df-2 9192  df-3 9193  df-4 9194  df-n0 9393  df-z 9470  df-uz 9746  df-q 9844  df-rp 9879  df-fz 10234  df-fzo 10368  df-fl 10520  df-mod 10575  df-seqfrec 10700  df-exp 10791  df-ihash 11028  df-cj 11393  df-re 11394  df-im 11395  df-rsqrt 11549  df-abs 11550  df-dvds 12339  df-gcd 12515
This theorem is referenced by:  phimullem  12787
  Copyright terms: Public domain W3C validator