MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  hashgcdlem Structured version   Visualization version   GIF version

Theorem hashgcdlem 15331
Description: A correspondence between elements of specific GCD and relative primes in a smaller ring. (Contributed by Stefan O'Rear, 12-Sep-2015.)
Hypotheses
Ref Expression
hashgcdlem.a 𝐴 = {𝑦 ∈ (0..^(𝑀 / 𝑁)) ∣ (𝑦 gcd (𝑀 / 𝑁)) = 1}
hashgcdlem.b 𝐵 = {𝑧 ∈ (0..^𝑀) ∣ (𝑧 gcd 𝑀) = 𝑁}
hashgcdlem.f 𝐹 = (𝑥𝐴 ↦ (𝑥 · 𝑁))
Assertion
Ref Expression
hashgcdlem ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → 𝐹:𝐴1-1-onto𝐵)
Distinct variable groups:   𝑥,𝑦,𝑀   𝑥,𝑧,𝑀   𝑥,𝐴   𝑥,𝐵   𝑥,𝑁,𝑦   𝑧,𝑁
Allowed substitution hints:   𝐴(𝑦,𝑧)   𝐵(𝑦,𝑧)   𝐹(𝑥,𝑦,𝑧)

Proof of Theorem hashgcdlem
Dummy variable 𝑤 is distinct from all other variables.
StepHypRef Expression
1 hashgcdlem.f . 2 𝐹 = (𝑥𝐴 ↦ (𝑥 · 𝑁))
2 oveq1 6556 . . . . 5 (𝑦 = 𝑥 → (𝑦 gcd (𝑀 / 𝑁)) = (𝑥 gcd (𝑀 / 𝑁)))
32eqeq1d 2612 . . . 4 (𝑦 = 𝑥 → ((𝑦 gcd (𝑀 / 𝑁)) = 1 ↔ (𝑥 gcd (𝑀 / 𝑁)) = 1))
4 hashgcdlem.a . . . 4 𝐴 = {𝑦 ∈ (0..^(𝑀 / 𝑁)) ∣ (𝑦 gcd (𝑀 / 𝑁)) = 1}
53, 4elrab2 3333 . . 3 (𝑥𝐴 ↔ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1))
6 elfzonn0 12380 . . . . . . 7 (𝑥 ∈ (0..^(𝑀 / 𝑁)) → 𝑥 ∈ ℕ0)
76ad2antrl 760 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → 𝑥 ∈ ℕ0)
8 nnnn0 11176 . . . . . . . 8 (𝑁 ∈ ℕ → 𝑁 ∈ ℕ0)
983ad2ant2 1076 . . . . . . 7 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → 𝑁 ∈ ℕ0)
109adantr 480 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → 𝑁 ∈ ℕ0)
117, 10nn0mulcld 11233 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → (𝑥 · 𝑁) ∈ ℕ0)
12 simpl1 1057 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → 𝑀 ∈ ℕ)
13 elfzolt2 12348 . . . . . . 7 (𝑥 ∈ (0..^(𝑀 / 𝑁)) → 𝑥 < (𝑀 / 𝑁))
1413ad2antrl 760 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → 𝑥 < (𝑀 / 𝑁))
15 elfzoelz 12339 . . . . . . . . 9 (𝑥 ∈ (0..^(𝑀 / 𝑁)) → 𝑥 ∈ ℤ)
1615ad2antrl 760 . . . . . . . 8 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → 𝑥 ∈ ℤ)
1716zred 11358 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → 𝑥 ∈ ℝ)
18 nnre 10904 . . . . . . . . 9 (𝑀 ∈ ℕ → 𝑀 ∈ ℝ)
19183ad2ant1 1075 . . . . . . . 8 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → 𝑀 ∈ ℝ)
2019adantr 480 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → 𝑀 ∈ ℝ)
21 nnre 10904 . . . . . . . . . 10 (𝑁 ∈ ℕ → 𝑁 ∈ ℝ)
22 nngt0 10926 . . . . . . . . . 10 (𝑁 ∈ ℕ → 0 < 𝑁)
2321, 22jca 553 . . . . . . . . 9 (𝑁 ∈ ℕ → (𝑁 ∈ ℝ ∧ 0 < 𝑁))
24233ad2ant2 1076 . . . . . . . 8 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → (𝑁 ∈ ℝ ∧ 0 < 𝑁))
2524adantr 480 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → (𝑁 ∈ ℝ ∧ 0 < 𝑁))
26 ltmuldiv 10775 . . . . . . 7 ((𝑥 ∈ ℝ ∧ 𝑀 ∈ ℝ ∧ (𝑁 ∈ ℝ ∧ 0 < 𝑁)) → ((𝑥 · 𝑁) < 𝑀𝑥 < (𝑀 / 𝑁)))
2717, 20, 25, 26syl3anc 1318 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → ((𝑥 · 𝑁) < 𝑀𝑥 < (𝑀 / 𝑁)))
2814, 27mpbird 246 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → (𝑥 · 𝑁) < 𝑀)
29 elfzo0 12376 . . . . 5 ((𝑥 · 𝑁) ∈ (0..^𝑀) ↔ ((𝑥 · 𝑁) ∈ ℕ0𝑀 ∈ ℕ ∧ (𝑥 · 𝑁) < 𝑀))
3011, 12, 28, 29syl3anbrc 1239 . . . 4 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → (𝑥 · 𝑁) ∈ (0..^𝑀))
31 nncn 10905 . . . . . . . . . 10 (𝑀 ∈ ℕ → 𝑀 ∈ ℂ)
32313ad2ant1 1075 . . . . . . . . 9 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → 𝑀 ∈ ℂ)
33 nncn 10905 . . . . . . . . . 10 (𝑁 ∈ ℕ → 𝑁 ∈ ℂ)
34333ad2ant2 1076 . . . . . . . . 9 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → 𝑁 ∈ ℂ)
35 nnne0 10930 . . . . . . . . . 10 (𝑁 ∈ ℕ → 𝑁 ≠ 0)
36353ad2ant2 1076 . . . . . . . . 9 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → 𝑁 ≠ 0)
3732, 34, 36divcan1d 10681 . . . . . . . 8 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → ((𝑀 / 𝑁) · 𝑁) = 𝑀)
3837adantr 480 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → ((𝑀 / 𝑁) · 𝑁) = 𝑀)
3938eqcomd 2616 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → 𝑀 = ((𝑀 / 𝑁) · 𝑁))
4039oveq2d 6565 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → ((𝑥 · 𝑁) gcd 𝑀) = ((𝑥 · 𝑁) gcd ((𝑀 / 𝑁) · 𝑁)))
41 nndivdvds 14827 . . . . . . . . 9 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ) → (𝑁𝑀 ↔ (𝑀 / 𝑁) ∈ ℕ))
4241biimp3a 1424 . . . . . . . 8 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → (𝑀 / 𝑁) ∈ ℕ)
4342nnzd 11357 . . . . . . 7 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → (𝑀 / 𝑁) ∈ ℤ)
4443adantr 480 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → (𝑀 / 𝑁) ∈ ℤ)
45 mulgcdr 15105 . . . . . 6 ((𝑥 ∈ ℤ ∧ (𝑀 / 𝑁) ∈ ℤ ∧ 𝑁 ∈ ℕ0) → ((𝑥 · 𝑁) gcd ((𝑀 / 𝑁) · 𝑁)) = ((𝑥 gcd (𝑀 / 𝑁)) · 𝑁))
4616, 44, 10, 45syl3anc 1318 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → ((𝑥 · 𝑁) gcd ((𝑀 / 𝑁) · 𝑁)) = ((𝑥 gcd (𝑀 / 𝑁)) · 𝑁))
47 simprr 792 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → (𝑥 gcd (𝑀 / 𝑁)) = 1)
4847oveq1d 6564 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → ((𝑥 gcd (𝑀 / 𝑁)) · 𝑁) = (1 · 𝑁))
4934mulid2d 9937 . . . . . . 7 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → (1 · 𝑁) = 𝑁)
5049adantr 480 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → (1 · 𝑁) = 𝑁)
5148, 50eqtrd 2644 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → ((𝑥 gcd (𝑀 / 𝑁)) · 𝑁) = 𝑁)
5240, 46, 513eqtrd 2648 . . . 4 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → ((𝑥 · 𝑁) gcd 𝑀) = 𝑁)
53 oveq1 6556 . . . . . 6 (𝑧 = (𝑥 · 𝑁) → (𝑧 gcd 𝑀) = ((𝑥 · 𝑁) gcd 𝑀))
5453eqeq1d 2612 . . . . 5 (𝑧 = (𝑥 · 𝑁) → ((𝑧 gcd 𝑀) = 𝑁 ↔ ((𝑥 · 𝑁) gcd 𝑀) = 𝑁))
55 hashgcdlem.b . . . . 5 𝐵 = {𝑧 ∈ (0..^𝑀) ∣ (𝑧 gcd 𝑀) = 𝑁}
5654, 55elrab2 3333 . . . 4 ((𝑥 · 𝑁) ∈ 𝐵 ↔ ((𝑥 · 𝑁) ∈ (0..^𝑀) ∧ ((𝑥 · 𝑁) gcd 𝑀) = 𝑁))
5730, 52, 56sylanbrc 695 . . 3 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ (𝑥 gcd (𝑀 / 𝑁)) = 1)) → (𝑥 · 𝑁) ∈ 𝐵)
585, 57sylan2b 491 . 2 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ 𝑥𝐴) → (𝑥 · 𝑁) ∈ 𝐵)
59 oveq1 6556 . . . . 5 (𝑧 = 𝑤 → (𝑧 gcd 𝑀) = (𝑤 gcd 𝑀))
6059eqeq1d 2612 . . . 4 (𝑧 = 𝑤 → ((𝑧 gcd 𝑀) = 𝑁 ↔ (𝑤 gcd 𝑀) = 𝑁))
6160, 55elrab2 3333 . . 3 (𝑤𝐵 ↔ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁))
62 simprr 792 . . . . . . . 8 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑤 gcd 𝑀) = 𝑁)
63 elfzoelz 12339 . . . . . . . . . . 11 (𝑤 ∈ (0..^𝑀) → 𝑤 ∈ ℤ)
6463ad2antrl 760 . . . . . . . . . 10 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑤 ∈ ℤ)
65 simpl1 1057 . . . . . . . . . . 11 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑀 ∈ ℕ)
6665nnzd 11357 . . . . . . . . . 10 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑀 ∈ ℤ)
67 gcddvds 15063 . . . . . . . . . 10 ((𝑤 ∈ ℤ ∧ 𝑀 ∈ ℤ) → ((𝑤 gcd 𝑀) ∥ 𝑤 ∧ (𝑤 gcd 𝑀) ∥ 𝑀))
6864, 66, 67syl2anc 691 . . . . . . . . 9 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → ((𝑤 gcd 𝑀) ∥ 𝑤 ∧ (𝑤 gcd 𝑀) ∥ 𝑀))
6968simpld 474 . . . . . . . 8 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑤 gcd 𝑀) ∥ 𝑤)
7062, 69eqbrtrrd 4607 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑁𝑤)
71 nnz 11276 . . . . . . . . . 10 (𝑁 ∈ ℕ → 𝑁 ∈ ℤ)
72713ad2ant2 1076 . . . . . . . . 9 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → 𝑁 ∈ ℤ)
7372adantr 480 . . . . . . . 8 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑁 ∈ ℤ)
7436adantr 480 . . . . . . . 8 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑁 ≠ 0)
75 dvdsval2 14824 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑁 ≠ 0 ∧ 𝑤 ∈ ℤ) → (𝑁𝑤 ↔ (𝑤 / 𝑁) ∈ ℤ))
7673, 74, 64, 75syl3anc 1318 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑁𝑤 ↔ (𝑤 / 𝑁) ∈ ℤ))
7770, 76mpbid 221 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑤 / 𝑁) ∈ ℤ)
78 elfzofz 12354 . . . . . . . . 9 (𝑤 ∈ (0..^𝑀) → 𝑤 ∈ (0...𝑀))
7978ad2antrl 760 . . . . . . . 8 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑤 ∈ (0...𝑀))
80 elfznn0 12302 . . . . . . . 8 (𝑤 ∈ (0...𝑀) → 𝑤 ∈ ℕ0)
81 nn0re 11178 . . . . . . . . 9 (𝑤 ∈ ℕ0𝑤 ∈ ℝ)
82 nn0ge0 11195 . . . . . . . . 9 (𝑤 ∈ ℕ0 → 0 ≤ 𝑤)
8381, 82jca 553 . . . . . . . 8 (𝑤 ∈ ℕ0 → (𝑤 ∈ ℝ ∧ 0 ≤ 𝑤))
8479, 80, 833syl 18 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑤 ∈ ℝ ∧ 0 ≤ 𝑤))
8524adantr 480 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑁 ∈ ℝ ∧ 0 < 𝑁))
86 divge0 10771 . . . . . . 7 (((𝑤 ∈ ℝ ∧ 0 ≤ 𝑤) ∧ (𝑁 ∈ ℝ ∧ 0 < 𝑁)) → 0 ≤ (𝑤 / 𝑁))
8784, 85, 86syl2anc 691 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 0 ≤ (𝑤 / 𝑁))
88 elnn0z 11267 . . . . . 6 ((𝑤 / 𝑁) ∈ ℕ0 ↔ ((𝑤 / 𝑁) ∈ ℤ ∧ 0 ≤ (𝑤 / 𝑁)))
8977, 87, 88sylanbrc 695 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑤 / 𝑁) ∈ ℕ0)
9042adantr 480 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑀 / 𝑁) ∈ ℕ)
91 elfzolt2 12348 . . . . . . 7 (𝑤 ∈ (0..^𝑀) → 𝑤 < 𝑀)
9291ad2antrl 760 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑤 < 𝑀)
9364zred 11358 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑤 ∈ ℝ)
9419adantr 480 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑀 ∈ ℝ)
95 ltdiv1 10766 . . . . . . 7 ((𝑤 ∈ ℝ ∧ 𝑀 ∈ ℝ ∧ (𝑁 ∈ ℝ ∧ 0 < 𝑁)) → (𝑤 < 𝑀 ↔ (𝑤 / 𝑁) < (𝑀 / 𝑁)))
9693, 94, 85, 95syl3anc 1318 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑤 < 𝑀 ↔ (𝑤 / 𝑁) < (𝑀 / 𝑁)))
9792, 96mpbid 221 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑤 / 𝑁) < (𝑀 / 𝑁))
98 elfzo0 12376 . . . . 5 ((𝑤 / 𝑁) ∈ (0..^(𝑀 / 𝑁)) ↔ ((𝑤 / 𝑁) ∈ ℕ0 ∧ (𝑀 / 𝑁) ∈ ℕ ∧ (𝑤 / 𝑁) < (𝑀 / 𝑁)))
9989, 90, 97, 98syl3anbrc 1239 . . . 4 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑤 / 𝑁) ∈ (0..^(𝑀 / 𝑁)))
10062oveq1d 6564 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → ((𝑤 gcd 𝑀) / 𝑁) = (𝑁 / 𝑁))
101 simpl2 1058 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑁 ∈ ℕ)
102 simpl3 1059 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → 𝑁𝑀)
103 gcddiv 15106 . . . . . 6 (((𝑤 ∈ ℤ ∧ 𝑀 ∈ ℤ ∧ 𝑁 ∈ ℕ) ∧ (𝑁𝑤𝑁𝑀)) → ((𝑤 gcd 𝑀) / 𝑁) = ((𝑤 / 𝑁) gcd (𝑀 / 𝑁)))
10464, 66, 101, 70, 102, 103syl32anc 1326 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → ((𝑤 gcd 𝑀) / 𝑁) = ((𝑤 / 𝑁) gcd (𝑀 / 𝑁)))
10534, 36dividd 10678 . . . . . 6 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → (𝑁 / 𝑁) = 1)
106105adantr 480 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑁 / 𝑁) = 1)
107100, 104, 1063eqtr3d 2652 . . . 4 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → ((𝑤 / 𝑁) gcd (𝑀 / 𝑁)) = 1)
108 oveq1 6556 . . . . . 6 (𝑦 = (𝑤 / 𝑁) → (𝑦 gcd (𝑀 / 𝑁)) = ((𝑤 / 𝑁) gcd (𝑀 / 𝑁)))
109108eqeq1d 2612 . . . . 5 (𝑦 = (𝑤 / 𝑁) → ((𝑦 gcd (𝑀 / 𝑁)) = 1 ↔ ((𝑤 / 𝑁) gcd (𝑀 / 𝑁)) = 1))
110109, 4elrab2 3333 . . . 4 ((𝑤 / 𝑁) ∈ 𝐴 ↔ ((𝑤 / 𝑁) ∈ (0..^(𝑀 / 𝑁)) ∧ ((𝑤 / 𝑁) gcd (𝑀 / 𝑁)) = 1))
11199, 107, 110sylanbrc 695 . . 3 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑤 ∈ (0..^𝑀) ∧ (𝑤 gcd 𝑀) = 𝑁)) → (𝑤 / 𝑁) ∈ 𝐴)
11261, 111sylan2b 491 . 2 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ 𝑤𝐵) → (𝑤 / 𝑁) ∈ 𝐴)
1135simplbi 475 . . . 4 (𝑥𝐴𝑥 ∈ (0..^(𝑀 / 𝑁)))
11461simplbi 475 . . . 4 (𝑤𝐵𝑤 ∈ (0..^𝑀))
115113, 114anim12i 588 . . 3 ((𝑥𝐴𝑤𝐵) → (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀)))
11663ad2antll 761 . . . . . . . 8 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → 𝑤 ∈ ℤ)
117116zcnd 11359 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → 𝑤 ∈ ℂ)
11834adantr 480 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → 𝑁 ∈ ℂ)
11936adantr 480 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → 𝑁 ≠ 0)
120117, 118, 119divcan1d 10681 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → ((𝑤 / 𝑁) · 𝑁) = 𝑤)
121120eqcomd 2616 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → 𝑤 = ((𝑤 / 𝑁) · 𝑁))
122 oveq1 6556 . . . . . 6 (𝑥 = (𝑤 / 𝑁) → (𝑥 · 𝑁) = ((𝑤 / 𝑁) · 𝑁))
123122eqeq2d 2620 . . . . 5 (𝑥 = (𝑤 / 𝑁) → (𝑤 = (𝑥 · 𝑁) ↔ 𝑤 = ((𝑤 / 𝑁) · 𝑁)))
124121, 123syl5ibrcom 236 . . . 4 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → (𝑥 = (𝑤 / 𝑁) → 𝑤 = (𝑥 · 𝑁)))
12515ad2antrl 760 . . . . . . . 8 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → 𝑥 ∈ ℤ)
126125zcnd 11359 . . . . . . 7 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → 𝑥 ∈ ℂ)
127126, 118, 119divcan4d 10686 . . . . . 6 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → ((𝑥 · 𝑁) / 𝑁) = 𝑥)
128127eqcomd 2616 . . . . 5 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → 𝑥 = ((𝑥 · 𝑁) / 𝑁))
129 oveq1 6556 . . . . . 6 (𝑤 = (𝑥 · 𝑁) → (𝑤 / 𝑁) = ((𝑥 · 𝑁) / 𝑁))
130129eqeq2d 2620 . . . . 5 (𝑤 = (𝑥 · 𝑁) → (𝑥 = (𝑤 / 𝑁) ↔ 𝑥 = ((𝑥 · 𝑁) / 𝑁)))
131128, 130syl5ibrcom 236 . . . 4 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → (𝑤 = (𝑥 · 𝑁) → 𝑥 = (𝑤 / 𝑁)))
132124, 131impbid 201 . . 3 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥 ∈ (0..^(𝑀 / 𝑁)) ∧ 𝑤 ∈ (0..^𝑀))) → (𝑥 = (𝑤 / 𝑁) ↔ 𝑤 = (𝑥 · 𝑁)))
133115, 132sylan2 490 . 2 (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) ∧ (𝑥𝐴𝑤𝐵)) → (𝑥 = (𝑤 / 𝑁) ↔ 𝑤 = (𝑥 · 𝑁)))
1341, 58, 112, 133f1o2d 6785 1 ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑁𝑀) → 𝐹:𝐴1-1-onto𝐵)
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 195  wa 383  w3a 1031   = wceq 1475  wcel 1977  wne 2780  {crab 2900   class class class wbr 4583  cmpt 4643  1-1-ontowf1o 5803  (class class class)co 6549  cc 9813  cr 9814  0cc0 9815  1c1 9816   · cmul 9820   < clt 9953  cle 9954   / cdiv 10563  cn 10897  0cn0 11169  cz 11254  ...cfz 12197  ..^cfzo 12334  cdvds 14821   gcd cgcd 15054
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1713  ax-4 1728  ax-5 1827  ax-6 1875  ax-7 1922  ax-8 1979  ax-9 1986  ax-10 2006  ax-11 2021  ax-12 2034  ax-13 2234  ax-ext 2590  ax-sep 4709  ax-nul 4717  ax-pow 4769  ax-pr 4833  ax-un 6847  ax-cnex 9871  ax-resscn 9872  ax-1cn 9873  ax-icn 9874  ax-addcl 9875  ax-addrcl 9876  ax-mulcl 9877  ax-mulrcl 9878  ax-mulcom 9879  ax-addass 9880  ax-mulass 9881  ax-distr 9882  ax-i2m1 9883  ax-1ne0 9884  ax-1rid 9885  ax-rnegex 9886  ax-rrecex 9887  ax-cnre 9888  ax-pre-lttri 9889  ax-pre-lttrn 9890  ax-pre-ltadd 9891  ax-pre-mulgt0 9892  ax-pre-sup 9893
This theorem depends on definitions:  df-bi 196  df-or 384  df-an 385  df-3or 1032  df-3an 1033  df-tru 1478  df-ex 1696  df-nf 1701  df-sb 1868  df-eu 2462  df-mo 2463  df-clab 2597  df-cleq 2603  df-clel 2606  df-nfc 2740  df-ne 2782  df-nel 2783  df-ral 2901  df-rex 2902  df-reu 2903  df-rmo 2904  df-rab 2905  df-v 3175  df-sbc 3403  df-csb 3500  df-dif 3543  df-un 3545  df-in 3547  df-ss 3554  df-pss 3556  df-nul 3875  df-if 4037  df-pw 4110  df-sn 4126  df-pr 4128  df-tp 4130  df-op 4132  df-uni 4373  df-iun 4457  df-br 4584  df-opab 4644  df-mpt 4645  df-tr 4681  df-eprel 4949  df-id 4953  df-po 4959  df-so 4960  df-fr 4997  df-we 4999  df-xp 5044  df-rel 5045  df-cnv 5046  df-co 5047  df-dm 5048  df-rn 5049  df-res 5050  df-ima 5051  df-pred 5597  df-ord 5643  df-on 5644  df-lim 5645  df-suc 5646  df-iota 5768  df-fun 5806  df-fn 5807  df-f 5808  df-f1 5809  df-fo 5810  df-f1o 5811  df-fv 5812  df-riota 6511  df-ov 6552  df-oprab 6553  df-mpt2 6554  df-om 6958  df-1st 7059  df-2nd 7060  df-wrecs 7294  df-recs 7355  df-rdg 7393  df-er 7629  df-en 7842  df-dom 7843  df-sdom 7844  df-sup 8231  df-inf 8232  df-pnf 9955  df-mnf 9956  df-xr 9957  df-ltxr 9958  df-le 9959  df-sub 10147  df-neg 10148  df-div 10564  df-nn 10898  df-2 10956  df-3 10957  df-n0 11170  df-z 11255  df-uz 11564  df-rp 11709  df-fz 12198  df-fzo 12335  df-fl 12455  df-mod 12531  df-seq 12664  df-exp 12723  df-cj 13687  df-re 13688  df-im 13689  df-sqrt 13823  df-abs 13824  df-dvds 14822  df-gcd 15055
This theorem is referenced by:  hashgcdeq  15332
  Copyright terms: Public domain W3C validator