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

Theorem crth 11936
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 9955 . . . . . 6 (𝑥 ∈ (0..^(𝑀 · 𝑁)) → 𝑥 ∈ ℤ)
2 crth.1 . . . . . 6 𝑆 = (0..^(𝑀 · 𝑁))
31, 2eleq2s 2235 . . . . 5 (𝑥𝑆𝑥 ∈ ℤ)
4 simpr 109 . . . . . . . 8 ((𝜑𝑥 ∈ ℤ) → 𝑥 ∈ ℤ)
5 crth.4 . . . . . . . . . 10 (𝜑 → (𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ (𝑀 gcd 𝑁) = 1))
65simp1d 994 . . . . . . . . 9 (𝜑𝑀 ∈ ℕ)
76adantr 274 . . . . . . . 8 ((𝜑𝑥 ∈ ℤ) → 𝑀 ∈ ℕ)
8 zmodfzo 10151 . . . . . . . 8 ((𝑥 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝑥 mod 𝑀) ∈ (0..^𝑀))
94, 7, 8syl2anc 409 . . . . . . 7 ((𝜑𝑥 ∈ ℤ) → (𝑥 mod 𝑀) ∈ (0..^𝑀))
105simp2d 995 . . . . . . . . 9 (𝜑𝑁 ∈ ℕ)
1110adantr 274 . . . . . . . 8 ((𝜑𝑥 ∈ ℤ) → 𝑁 ∈ ℕ)
12 zmodfzo 10151 . . . . . . . 8 ((𝑥 ∈ ℤ ∧ 𝑁 ∈ ℕ) → (𝑥 mod 𝑁) ∈ (0..^𝑁))
134, 11, 12syl2anc 409 . . . . . . 7 ((𝜑𝑥 ∈ ℤ) → (𝑥 mod 𝑁) ∈ (0..^𝑁))
14 opelxpi 4579 . . . . . . 7 (((𝑥 mod 𝑀) ∈ (0..^𝑀) ∧ (𝑥 mod 𝑁) ∈ (0..^𝑁)) → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ ∈ ((0..^𝑀) × (0..^𝑁)))
159, 13, 14syl2anc 409 . . . . . 6 ((𝜑𝑥 ∈ ℤ) → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ ∈ ((0..^𝑀) × (0..^𝑁)))
16 crth.2 . . . . . 6 𝑇 = ((0..^𝑀) × (0..^𝑁))
1715, 16eleqtrrdi 2234 . . . . 5 ((𝜑𝑥 ∈ ℤ) → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ ∈ 𝑇)
183, 17sylan2 284 . . . 4 ((𝜑𝑥𝑆) → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ ∈ 𝑇)
19 crth.3 . . . 4 𝐹 = (𝑥𝑆 ↦ ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩)
2018, 19fmptd 5582 . . 3 (𝜑𝐹:𝑆𝑇)
21 simprl 521 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦𝑆)
22 elfzoelz 9955 . . . . . . . . . . . . 13 (𝑦 ∈ (0..^(𝑀 · 𝑁)) → 𝑦 ∈ ℤ)
2322, 2eleq2s 2235 . . . . . . . . . . . 12 (𝑦𝑆𝑦 ∈ ℤ)
2423ad2antrl 482 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ ℤ)
25 zq 9445 . . . . . . . . . . 11 (𝑦 ∈ ℤ → 𝑦 ∈ ℚ)
2624, 25syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ ℚ)
276adantr 274 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑀 ∈ ℕ)
28 nnq 9452 . . . . . . . . . . 11 (𝑀 ∈ ℕ → 𝑀 ∈ ℚ)
2927, 28syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑀 ∈ ℚ)
3027nngt0d 8788 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 < 𝑀)
3126, 29, 30modqcld 10132 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦 mod 𝑀) ∈ ℚ)
3210adantr 274 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑁 ∈ ℕ)
33 nnq 9452 . . . . . . . . . . 11 (𝑁 ∈ ℕ → 𝑁 ∈ ℚ)
3432, 33syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑁 ∈ ℚ)
3532nngt0d 8788 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 < 𝑁)
3626, 34, 35modqcld 10132 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦 mod 𝑁) ∈ ℚ)
37 opexg 4158 . . . . . . . . 9 (((𝑦 mod 𝑀) ∈ ℚ ∧ (𝑦 mod 𝑁) ∈ ℚ) → ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ ∈ V)
3831, 36, 37syl2anc 409 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ ∈ V)
39 oveq1 5789 . . . . . . . . . 10 (𝑥 = 𝑦 → (𝑥 mod 𝑀) = (𝑦 mod 𝑀))
40 oveq1 5789 . . . . . . . . . 10 (𝑥 = 𝑦 → (𝑥 mod 𝑁) = (𝑦 mod 𝑁))
4139, 40opeq12d 3721 . . . . . . . . 9 (𝑥 = 𝑦 → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ = ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩)
4241, 19fvmptg 5505 . . . . . . . 8 ((𝑦𝑆 ∧ ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ ∈ V) → (𝐹𝑦) = ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩)
4321, 38, 42syl2anc 409 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝐹𝑦) = ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩)
44 simprr 522 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧𝑆)
45 elfzoelz 9955 . . . . . . . . . . . . 13 (𝑧 ∈ (0..^(𝑀 · 𝑁)) → 𝑧 ∈ ℤ)
4645, 2eleq2s 2235 . . . . . . . . . . . 12 (𝑧𝑆𝑧 ∈ ℤ)
4744, 46syl 14 . . . . . . . . . . 11 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ ℤ)
48 zq 9445 . . . . . . . . . . 11 (𝑧 ∈ ℤ → 𝑧 ∈ ℚ)
4947, 48syl 14 . . . . . . . . . 10 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ ℚ)
5049, 29, 30modqcld 10132 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑧 mod 𝑀) ∈ ℚ)
5149, 34, 35modqcld 10132 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑧 mod 𝑁) ∈ ℚ)
52 opexg 4158 . . . . . . . . 9 (((𝑧 mod 𝑀) ∈ ℚ ∧ (𝑧 mod 𝑁) ∈ ℚ) → ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ∈ V)
5350, 51, 52syl2anc 409 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ∈ V)
54 oveq1 5789 . . . . . . . . . 10 (𝑥 = 𝑧 → (𝑥 mod 𝑀) = (𝑧 mod 𝑀))
55 oveq1 5789 . . . . . . . . . 10 (𝑥 = 𝑧 → (𝑥 mod 𝑁) = (𝑧 mod 𝑁))
5654, 55opeq12d 3721 . . . . . . . . 9 (𝑥 = 𝑧 → ⟨(𝑥 mod 𝑀), (𝑥 mod 𝑁)⟩ = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩)
5756, 19fvmptg 5505 . . . . . . . 8 ((𝑧𝑆 ∧ ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ∈ V) → (𝐹𝑧) = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩)
5844, 53, 57syl2anc 409 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝐹𝑧) = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩)
5943, 58eqeq12d 2155 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝐹𝑦) = (𝐹𝑧) ↔ ⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩))
60 opthg 4168 . . . . . . 7 (((𝑦 mod 𝑀) ∈ ℚ ∧ (𝑦 mod 𝑁) ∈ ℚ) → (⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ↔ ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ∧ (𝑦 mod 𝑁) = (𝑧 mod 𝑁))))
6131, 36, 60syl2anc 409 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (⟨(𝑦 mod 𝑀), (𝑦 mod 𝑁)⟩ = ⟨(𝑧 mod 𝑀), (𝑧 mod 𝑁)⟩ ↔ ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ∧ (𝑦 mod 𝑁) = (𝑧 mod 𝑁))))
6259, 61bitrd 187 . . . . 5 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝐹𝑦) = (𝐹𝑧) ↔ ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ∧ (𝑦 mod 𝑁) = (𝑧 mod 𝑁))))
6327nnzd 9196 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑀 ∈ ℤ)
6432nnzd 9196 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑁 ∈ ℤ)
6521, 2eleqtrdi 2233 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ (0..^(𝑀 · 𝑁)))
6665, 22syl 14 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 ∈ ℤ)
6744, 2eleqtrdi 2233 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ (0..^(𝑀 · 𝑁)))
6867, 45syl 14 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 ∈ ℤ)
6966, 68zsubcld 9202 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦𝑧) ∈ ℤ)
705simp3d 996 . . . . . . . 8 (𝜑 → (𝑀 gcd 𝑁) = 1)
7170adantr 274 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑀 gcd 𝑁) = 1)
72 coprmdvds2 11810 . . . . . . 7 (((𝑀 ∈ ℤ ∧ 𝑁 ∈ ℤ ∧ (𝑦𝑧) ∈ ℤ) ∧ (𝑀 gcd 𝑁) = 1) → ((𝑀 ∥ (𝑦𝑧) ∧ 𝑁 ∥ (𝑦𝑧)) → (𝑀 · 𝑁) ∥ (𝑦𝑧)))
7363, 64, 69, 71, 72syl31anc 1220 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑀 ∥ (𝑦𝑧) ∧ 𝑁 ∥ (𝑦𝑧)) → (𝑀 · 𝑁) ∥ (𝑦𝑧)))
74 moddvds 11538 . . . . . . . 8 ((𝑀 ∈ ℕ ∧ 𝑦 ∈ ℤ ∧ 𝑧 ∈ ℤ) → ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ↔ 𝑀 ∥ (𝑦𝑧)))
7527, 66, 68, 74syl3anc 1217 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ↔ 𝑀 ∥ (𝑦𝑧)))
76 moddvds 11538 . . . . . . . 8 ((𝑁 ∈ ℕ ∧ 𝑦 ∈ ℤ ∧ 𝑧 ∈ ℤ) → ((𝑦 mod 𝑁) = (𝑧 mod 𝑁) ↔ 𝑁 ∥ (𝑦𝑧)))
7732, 66, 68, 76syl3anc 1217 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑦 mod 𝑁) = (𝑧 mod 𝑁) ↔ 𝑁 ∥ (𝑦𝑧)))
7875, 77anbi12d 465 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ∧ (𝑦 mod 𝑁) = (𝑧 mod 𝑁)) ↔ (𝑀 ∥ (𝑦𝑧) ∧ 𝑁 ∥ (𝑦𝑧))))
79 qmulcl 9456 . . . . . . . . . 10 ((𝑀 ∈ ℚ ∧ 𝑁 ∈ ℚ) → (𝑀 · 𝑁) ∈ ℚ)
8029, 34, 79syl2anc 409 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑀 · 𝑁) ∈ ℚ)
81 elfzole1 9963 . . . . . . . . . 10 (𝑦 ∈ (0..^(𝑀 · 𝑁)) → 0 ≤ 𝑦)
8265, 81syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 ≤ 𝑦)
83 elfzolt2 9964 . . . . . . . . . 10 (𝑦 ∈ (0..^(𝑀 · 𝑁)) → 𝑦 < (𝑀 · 𝑁))
8465, 83syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑦 < (𝑀 · 𝑁))
85 modqid 10153 . . . . . . . . 9 (((𝑦 ∈ ℚ ∧ (𝑀 · 𝑁) ∈ ℚ) ∧ (0 ≤ 𝑦𝑦 < (𝑀 · 𝑁))) → (𝑦 mod (𝑀 · 𝑁)) = 𝑦)
8626, 80, 82, 84, 85syl22anc 1218 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦 mod (𝑀 · 𝑁)) = 𝑦)
87 elfzole1 9963 . . . . . . . . . 10 (𝑧 ∈ (0..^(𝑀 · 𝑁)) → 0 ≤ 𝑧)
8867, 87syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 0 ≤ 𝑧)
89 elfzolt2 9964 . . . . . . . . . 10 (𝑧 ∈ (0..^(𝑀 · 𝑁)) → 𝑧 < (𝑀 · 𝑁))
9067, 89syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → 𝑧 < (𝑀 · 𝑁))
91 modqid 10153 . . . . . . . . 9 (((𝑧 ∈ ℚ ∧ (𝑀 · 𝑁) ∈ ℚ) ∧ (0 ≤ 𝑧𝑧 < (𝑀 · 𝑁))) → (𝑧 mod (𝑀 · 𝑁)) = 𝑧)
9249, 80, 88, 90, 91syl22anc 1218 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑧 mod (𝑀 · 𝑁)) = 𝑧)
9386, 92eqeq12d 2155 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑦 mod (𝑀 · 𝑁)) = (𝑧 mod (𝑀 · 𝑁)) ↔ 𝑦 = 𝑧))
9427, 32nnmulcld 8793 . . . . . . . 8 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑀 · 𝑁) ∈ ℕ)
95 moddvds 11538 . . . . . . . 8 (((𝑀 · 𝑁) ∈ ℕ ∧ 𝑦 ∈ ℤ ∧ 𝑧 ∈ ℤ) → ((𝑦 mod (𝑀 · 𝑁)) = (𝑧 mod (𝑀 · 𝑁)) ↔ (𝑀 · 𝑁) ∥ (𝑦𝑧)))
9694, 66, 68, 95syl3anc 1217 . . . . . . 7 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝑦 mod (𝑀 · 𝑁)) = (𝑧 mod (𝑀 · 𝑁)) ↔ (𝑀 · 𝑁) ∥ (𝑦𝑧)))
9793, 96bitr3d 189 . . . . . 6 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (𝑦 = 𝑧 ↔ (𝑀 · 𝑁) ∥ (𝑦𝑧)))
9873, 78, 973imtr4d 202 . . . . 5 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → (((𝑦 mod 𝑀) = (𝑧 mod 𝑀) ∧ (𝑦 mod 𝑁) = (𝑧 mod 𝑁)) → 𝑦 = 𝑧))
9962, 98sylbid 149 . . . 4 ((𝜑 ∧ (𝑦𝑆𝑧𝑆)) → ((𝐹𝑦) = (𝐹𝑧) → 𝑦 = 𝑧))
10099ralrimivva 2517 . . 3 (𝜑 → ∀𝑦𝑆𝑧𝑆 ((𝐹𝑦) = (𝐹𝑧) → 𝑦 = 𝑧))
101 dff13 5677 . . 3 (𝐹:𝑆1-1𝑇 ↔ (𝐹:𝑆𝑇 ∧ ∀𝑦𝑆𝑧𝑆 ((𝐹𝑦) = (𝐹𝑧) → 𝑦 = 𝑧)))
10220, 100, 101sylanbrc 414 . 2 (𝜑𝐹:𝑆1-1𝑇)
103 nnnn0 9008 . . . . . 6 (𝑀 ∈ ℕ → 𝑀 ∈ ℕ0)
104 nnnn0 9008 . . . . . 6 (𝑁 ∈ ℕ → 𝑁 ∈ ℕ0)
105 hashfzo0 10601 . . . . . . . . 9 (𝑀 ∈ ℕ0 → (♯‘(0..^𝑀)) = 𝑀)
106 hashfzo0 10601 . . . . . . . . 9 (𝑁 ∈ ℕ0 → (♯‘(0..^𝑁)) = 𝑁)
107105, 106oveqan12d 5801 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → ((♯‘(0..^𝑀)) · (♯‘(0..^𝑁))) = (𝑀 · 𝑁))
108 0z 9089 . . . . . . . . . 10 0 ∈ ℤ
109 simpl 108 . . . . . . . . . . 11 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → 𝑀 ∈ ℕ0)
110109nn0zd 9195 . . . . . . . . . 10 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → 𝑀 ∈ ℤ)
111 fzofig 10236 . . . . . . . . . 10 ((0 ∈ ℤ ∧ 𝑀 ∈ ℤ) → (0..^𝑀) ∈ Fin)
112108, 110, 111sylancr 411 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (0..^𝑀) ∈ Fin)
113 nn0z 9098 . . . . . . . . . . 11 (𝑁 ∈ ℕ0𝑁 ∈ ℤ)
114113adantl 275 . . . . . . . . . 10 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → 𝑁 ∈ ℤ)
115 fzofig 10236 . . . . . . . . . 10 ((0 ∈ ℤ ∧ 𝑁 ∈ ℤ) → (0..^𝑁) ∈ Fin)
116108, 114, 115sylancr 411 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (0..^𝑁) ∈ Fin)
117 hashxp 10604 . . . . . . . . 9 (((0..^𝑀) ∈ Fin ∧ (0..^𝑁) ∈ Fin) → (♯‘((0..^𝑀) × (0..^𝑁))) = ((♯‘(0..^𝑀)) · (♯‘(0..^𝑁))))
118112, 116, 117syl2anc 409 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (♯‘((0..^𝑀) × (0..^𝑁))) = ((♯‘(0..^𝑀)) · (♯‘(0..^𝑁))))
119 nn0mulcl 9037 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (𝑀 · 𝑁) ∈ ℕ0)
120 hashfzo0 10601 . . . . . . . . 9 ((𝑀 · 𝑁) ∈ ℕ0 → (♯‘(0..^(𝑀 · 𝑁))) = (𝑀 · 𝑁))
121119, 120syl 14 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (♯‘(0..^(𝑀 · 𝑁))) = (𝑀 · 𝑁))
122107, 118, 1213eqtr4rd 2184 . . . . . . 7 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (♯‘(0..^(𝑀 · 𝑁))) = (♯‘((0..^𝑀) × (0..^𝑁))))
123119nn0zd 9195 . . . . . . . . 9 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (𝑀 · 𝑁) ∈ ℤ)
124 fzofig 10236 . . . . . . . . 9 ((0 ∈ ℤ ∧ (𝑀 · 𝑁) ∈ ℤ) → (0..^(𝑀 · 𝑁)) ∈ Fin)
125108, 123, 124sylancr 411 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (0..^(𝑀 · 𝑁)) ∈ Fin)
126 xpfi 6826 . . . . . . . . 9 (((0..^𝑀) ∈ Fin ∧ (0..^𝑁) ∈ Fin) → ((0..^𝑀) × (0..^𝑁)) ∈ Fin)
127112, 116, 126syl2anc 409 . . . . . . . 8 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → ((0..^𝑀) × (0..^𝑁)) ∈ Fin)
128 hashen 10562 . . . . . . . 8 (((0..^(𝑀 · 𝑁)) ∈ Fin ∧ ((0..^𝑀) × (0..^𝑁)) ∈ Fin) → ((♯‘(0..^(𝑀 · 𝑁))) = (♯‘((0..^𝑀) × (0..^𝑁))) ↔ (0..^(𝑀 · 𝑁)) ≈ ((0..^𝑀) × (0..^𝑁))))
129125, 127, 128syl2anc 409 . . . . . . 7 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → ((♯‘(0..^(𝑀 · 𝑁))) = (♯‘((0..^𝑀) × (0..^𝑁))) ↔ (0..^(𝑀 · 𝑁)) ≈ ((0..^𝑀) × (0..^𝑁))))
130122, 129mpbid 146 . . . . . 6 ((𝑀 ∈ ℕ0𝑁 ∈ ℕ0) → (0..^(𝑀 · 𝑁)) ≈ ((0..^𝑀) × (0..^𝑁)))
131103, 104, 130syl2an 287 . . . . 5 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ) → (0..^(𝑀 · 𝑁)) ≈ ((0..^𝑀) × (0..^𝑁)))
1326, 10, 131syl2anc 409 . . . 4 (𝜑 → (0..^(𝑀 · 𝑁)) ≈ ((0..^𝑀) × (0..^𝑁)))
133132, 2, 163brtr4g 3970 . . 3 (𝜑𝑆𝑇)
1346nnnn0d 9054 . . . . 5 (𝜑𝑀 ∈ ℕ0)
13510nnnn0d 9054 . . . . 5 (𝜑𝑁 ∈ ℕ0)
136134, 135, 127syl2anc 409 . . . 4 (𝜑 → ((0..^𝑀) × (0..^𝑁)) ∈ Fin)
13716, 136eqeltrid 2227 . . 3 (𝜑𝑇 ∈ Fin)
138 f1finf1o 6843 . . 3 ((𝑆𝑇𝑇 ∈ Fin) → (𝐹:𝑆1-1𝑇𝐹:𝑆1-1-onto𝑇))
139133, 137, 138syl2anc 409 . 2 (𝜑 → (𝐹:𝑆1-1𝑇𝐹:𝑆1-1-onto𝑇))
140102, 139mpbid 146 1 (𝜑𝐹:𝑆1-1-onto𝑇)
Colors of variables: wff set class
Syntax hints:  wi 4  wa 103  wb 104  w3a 963   = wceq 1332  wcel 1481  wral 2417  Vcvv 2689  cop 3535   class class class wbr 3937  cmpt 3997   × cxp 4545  wf 5127  1-1wf1 5128  1-1-ontowf1o 5130  cfv 5131  (class class class)co 5782  cen 6640  Fincfn 6642  0cc0 7644  1c1 7645   · cmul 7649   < clt 7824  cle 7825  cmin 7957  cn 8744  0cn0 9001  cz 9078  cq 9438  ..^cfzo 9950   mod cmo 10126  chash 10553  cdvds 11529   gcd cgcd 11671
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 105  ax-ia2 106  ax-ia3 107  ax-in1 604  ax-in2 605  ax-io 699  ax-5 1424  ax-7 1425  ax-gen 1426  ax-ie1 1470  ax-ie2 1471  ax-8 1483  ax-10 1484  ax-11 1485  ax-i12 1486  ax-bndl 1487  ax-4 1488  ax-13 1492  ax-14 1493  ax-17 1507  ax-i9 1511  ax-ial 1515  ax-i5r 1516  ax-ext 2122  ax-coll 4051  ax-sep 4054  ax-nul 4062  ax-pow 4106  ax-pr 4139  ax-un 4363  ax-setind 4460  ax-iinf 4510  ax-cnex 7735  ax-resscn 7736  ax-1cn 7737  ax-1re 7738  ax-icn 7739  ax-addcl 7740  ax-addrcl 7741  ax-mulcl 7742  ax-mulrcl 7743  ax-addcom 7744  ax-mulcom 7745  ax-addass 7746  ax-mulass 7747  ax-distr 7748  ax-i2m1 7749  ax-0lt1 7750  ax-1rid 7751  ax-0id 7752  ax-rnegex 7753  ax-precex 7754  ax-cnre 7755  ax-pre-ltirr 7756  ax-pre-ltwlin 7757  ax-pre-lttrn 7758  ax-pre-apti 7759  ax-pre-ltadd 7760  ax-pre-mulgt0 7761  ax-pre-mulext 7762  ax-arch 7763  ax-caucvg 7764
This theorem depends on definitions:  df-bi 116  df-dc 821  df-3or 964  df-3an 965  df-tru 1335  df-fal 1338  df-nf 1438  df-sb 1737  df-eu 2003  df-mo 2004  df-clab 2127  df-cleq 2133  df-clel 2136  df-nfc 2271  df-ne 2310  df-nel 2405  df-ral 2422  df-rex 2423  df-reu 2424  df-rmo 2425  df-rab 2426  df-v 2691  df-sbc 2914  df-csb 3008  df-dif 3078  df-un 3080  df-in 3082  df-ss 3089  df-nul 3369  df-if 3480  df-pw 3517  df-sn 3538  df-pr 3539  df-op 3541  df-uni 3745  df-int 3780  df-iun 3823  df-br 3938  df-opab 3998  df-mpt 3999  df-tr 4035  df-id 4223  df-po 4226  df-iso 4227  df-iord 4296  df-on 4298  df-ilim 4299  df-suc 4301  df-iom 4513  df-xp 4553  df-rel 4554  df-cnv 4555  df-co 4556  df-dm 4557  df-rn 4558  df-res 4559  df-ima 4560  df-iota 5096  df-fun 5133  df-fn 5134  df-f 5135  df-f1 5136  df-fo 5137  df-f1o 5138  df-fv 5139  df-riota 5738  df-ov 5785  df-oprab 5786  df-mpo 5787  df-1st 6046  df-2nd 6047  df-recs 6210  df-irdg 6275  df-frec 6296  df-1o 6321  df-oadd 6325  df-er 6437  df-en 6643  df-dom 6644  df-fin 6645  df-sup 6879  df-pnf 7826  df-mnf 7827  df-xr 7828  df-ltxr 7829  df-le 7830  df-sub 7959  df-neg 7960  df-reap 8361  df-ap 8368  df-div 8457  df-inn 8745  df-2 8803  df-3 8804  df-4 8805  df-n0 9002  df-z 9079  df-uz 9351  df-q 9439  df-rp 9471  df-fz 9822  df-fzo 9951  df-fl 10074  df-mod 10127  df-seqfrec 10250  df-exp 10324  df-ihash 10554  df-cj 10646  df-re 10647  df-im 10648  df-rsqrt 10802  df-abs 10803  df-dvds 11530  df-gcd 11672
This theorem is referenced by:  phimullem  11937
  Copyright terms: Public domain W3C validator