Proof of Theorem dfphi2
| Step | Hyp | Ref
| Expression |
| 1 | | elnn1uz2 12967 |
. 2
⊢ (𝑁 ∈ ℕ ↔ (𝑁 = 1 ∨ 𝑁 ∈
(ℤ≥‘2))) |
| 2 | | phi1 16810 |
. . . . 5
⊢
(ϕ‘1) = 1 |
| 3 | | 0z 12624 |
. . . . . 6
⊢ 0 ∈
ℤ |
| 4 | | hashsng 14408 |
. . . . . 6
⊢ (0 ∈
ℤ → (♯‘{0}) = 1) |
| 5 | 3, 4 | ax-mp 5 |
. . . . 5
⊢
(♯‘{0}) = 1 |
| 6 | | rabid2 3470 |
. . . . . . 7
⊢ ({0} =
{𝑥 ∈ {0} ∣
(𝑥 gcd 1) = 1} ↔
∀𝑥 ∈ {0} (𝑥 gcd 1) = 1) |
| 7 | | elsni 4643 |
. . . . . . . . 9
⊢ (𝑥 ∈ {0} → 𝑥 = 0) |
| 8 | 7 | oveq1d 7446 |
. . . . . . . 8
⊢ (𝑥 ∈ {0} → (𝑥 gcd 1) = (0 gcd
1)) |
| 9 | | gcd1 16565 |
. . . . . . . . 9
⊢ (0 ∈
ℤ → (0 gcd 1) = 1) |
| 10 | 3, 9 | ax-mp 5 |
. . . . . . . 8
⊢ (0 gcd 1)
= 1 |
| 11 | 8, 10 | eqtrdi 2793 |
. . . . . . 7
⊢ (𝑥 ∈ {0} → (𝑥 gcd 1) = 1) |
| 12 | 6, 11 | mprgbir 3068 |
. . . . . 6
⊢ {0} =
{𝑥 ∈ {0} ∣
(𝑥 gcd 1) =
1} |
| 13 | 12 | fveq2i 6909 |
. . . . 5
⊢
(♯‘{0}) = (♯‘{𝑥 ∈ {0} ∣ (𝑥 gcd 1) = 1}) |
| 14 | 2, 5, 13 | 3eqtr2i 2771 |
. . . 4
⊢
(ϕ‘1) = (♯‘{𝑥 ∈ {0} ∣ (𝑥 gcd 1) = 1}) |
| 15 | | fveq2 6906 |
. . . 4
⊢ (𝑁 = 1 → (ϕ‘𝑁) =
(ϕ‘1)) |
| 16 | | oveq2 7439 |
. . . . . . 7
⊢ (𝑁 = 1 → (0..^𝑁) = (0..^1)) |
| 17 | | fzo01 13786 |
. . . . . . 7
⊢ (0..^1) =
{0} |
| 18 | 16, 17 | eqtrdi 2793 |
. . . . . 6
⊢ (𝑁 = 1 → (0..^𝑁) = {0}) |
| 19 | | oveq2 7439 |
. . . . . . 7
⊢ (𝑁 = 1 → (𝑥 gcd 𝑁) = (𝑥 gcd 1)) |
| 20 | 19 | eqeq1d 2739 |
. . . . . 6
⊢ (𝑁 = 1 → ((𝑥 gcd 𝑁) = 1 ↔ (𝑥 gcd 1) = 1)) |
| 21 | 18, 20 | rabeqbidv 3455 |
. . . . 5
⊢ (𝑁 = 1 → {𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} = {𝑥 ∈ {0} ∣ (𝑥 gcd 1) = 1}) |
| 22 | 21 | fveq2d 6910 |
. . . 4
⊢ (𝑁 = 1 →
(♯‘{𝑥 ∈
(0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1}) = (♯‘{𝑥 ∈ {0} ∣ (𝑥 gcd 1) = 1})) |
| 23 | 14, 15, 22 | 3eqtr4a 2803 |
. . 3
⊢ (𝑁 = 1 → (ϕ‘𝑁) = (♯‘{𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1})) |
| 24 | | eluz2nn 12924 |
. . . . 5
⊢ (𝑁 ∈
(ℤ≥‘2) → 𝑁 ∈ ℕ) |
| 25 | | phival 16804 |
. . . . 5
⊢ (𝑁 ∈ ℕ →
(ϕ‘𝑁) =
(♯‘{𝑥 ∈
(1...𝑁) ∣ (𝑥 gcd 𝑁) = 1})) |
| 26 | 24, 25 | syl 17 |
. . . 4
⊢ (𝑁 ∈
(ℤ≥‘2) → (ϕ‘𝑁) = (♯‘{𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1})) |
| 27 | | fzossfz 13718 |
. . . . . . . . . . 11
⊢
(1..^𝑁) ⊆
(1...𝑁) |
| 28 | 27 | a1i 11 |
. . . . . . . . . 10
⊢ (𝑁 ∈
(ℤ≥‘2) → (1..^𝑁) ⊆ (1...𝑁)) |
| 29 | | sseqin2 4223 |
. . . . . . . . . 10
⊢
((1..^𝑁) ⊆
(1...𝑁) ↔ ((1...𝑁) ∩ (1..^𝑁)) = (1..^𝑁)) |
| 30 | 28, 29 | sylib 218 |
. . . . . . . . 9
⊢ (𝑁 ∈
(ℤ≥‘2) → ((1...𝑁) ∩ (1..^𝑁)) = (1..^𝑁)) |
| 31 | | fzo0ss1 13729 |
. . . . . . . . . 10
⊢
(1..^𝑁) ⊆
(0..^𝑁) |
| 32 | | sseqin2 4223 |
. . . . . . . . . 10
⊢
((1..^𝑁) ⊆
(0..^𝑁) ↔ ((0..^𝑁) ∩ (1..^𝑁)) = (1..^𝑁)) |
| 33 | 31, 32 | mpbi 230 |
. . . . . . . . 9
⊢
((0..^𝑁) ∩
(1..^𝑁)) = (1..^𝑁) |
| 34 | 30, 33 | eqtr4di 2795 |
. . . . . . . 8
⊢ (𝑁 ∈
(ℤ≥‘2) → ((1...𝑁) ∩ (1..^𝑁)) = ((0..^𝑁) ∩ (1..^𝑁))) |
| 35 | 34 | rabeqdv 3452 |
. . . . . . 7
⊢ (𝑁 ∈
(ℤ≥‘2) → {𝑥 ∈ ((1...𝑁) ∩ (1..^𝑁)) ∣ (𝑥 gcd 𝑁) = 1} = {𝑥 ∈ ((0..^𝑁) ∩ (1..^𝑁)) ∣ (𝑥 gcd 𝑁) = 1}) |
| 36 | | inrab2 4317 |
. . . . . . 7
⊢ ({𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ ((1...𝑁) ∩ (1..^𝑁)) ∣ (𝑥 gcd 𝑁) = 1} |
| 37 | | inrab2 4317 |
. . . . . . 7
⊢ ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ ((0..^𝑁) ∩ (1..^𝑁)) ∣ (𝑥 gcd 𝑁) = 1} |
| 38 | 35, 36, 37 | 3eqtr4g 2802 |
. . . . . 6
⊢ (𝑁 ∈
(ℤ≥‘2) → ({𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁))) |
| 39 | | phibndlem 16807 |
. . . . . . . 8
⊢ (𝑁 ∈
(ℤ≥‘2) → {𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1...(𝑁 − 1))) |
| 40 | | eluzelz 12888 |
. . . . . . . . 9
⊢ (𝑁 ∈
(ℤ≥‘2) → 𝑁 ∈ ℤ) |
| 41 | | fzoval 13700 |
. . . . . . . . 9
⊢ (𝑁 ∈ ℤ →
(1..^𝑁) = (1...(𝑁 − 1))) |
| 42 | 40, 41 | syl 17 |
. . . . . . . 8
⊢ (𝑁 ∈
(ℤ≥‘2) → (1..^𝑁) = (1...(𝑁 − 1))) |
| 43 | 39, 42 | sseqtrrd 4021 |
. . . . . . 7
⊢ (𝑁 ∈
(ℤ≥‘2) → {𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1..^𝑁)) |
| 44 | | dfss2 3969 |
. . . . . . 7
⊢ ({𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1..^𝑁) ↔ ({𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1}) |
| 45 | 43, 44 | sylib 218 |
. . . . . 6
⊢ (𝑁 ∈
(ℤ≥‘2) → ({𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1}) |
| 46 | | gcd0id 16556 |
. . . . . . . . . . . . . . . 16
⊢ (𝑁 ∈ ℤ → (0 gcd
𝑁) = (abs‘𝑁)) |
| 47 | 40, 46 | syl 17 |
. . . . . . . . . . . . . . 15
⊢ (𝑁 ∈
(ℤ≥‘2) → (0 gcd 𝑁) = (abs‘𝑁)) |
| 48 | | eluzelre 12889 |
. . . . . . . . . . . . . . . 16
⊢ (𝑁 ∈
(ℤ≥‘2) → 𝑁 ∈ ℝ) |
| 49 | | eluzge2nn0 12929 |
. . . . . . . . . . . . . . . . 17
⊢ (𝑁 ∈
(ℤ≥‘2) → 𝑁 ∈
ℕ0) |
| 50 | 49 | nn0ge0d 12590 |
. . . . . . . . . . . . . . . 16
⊢ (𝑁 ∈
(ℤ≥‘2) → 0 ≤ 𝑁) |
| 51 | 48, 50 | absidd 15461 |
. . . . . . . . . . . . . . 15
⊢ (𝑁 ∈
(ℤ≥‘2) → (abs‘𝑁) = 𝑁) |
| 52 | 47, 51 | eqtrd 2777 |
. . . . . . . . . . . . . 14
⊢ (𝑁 ∈
(ℤ≥‘2) → (0 gcd 𝑁) = 𝑁) |
| 53 | | eluz2b3 12964 |
. . . . . . . . . . . . . . 15
⊢ (𝑁 ∈
(ℤ≥‘2) ↔ (𝑁 ∈ ℕ ∧ 𝑁 ≠ 1)) |
| 54 | 53 | simprbi 496 |
. . . . . . . . . . . . . 14
⊢ (𝑁 ∈
(ℤ≥‘2) → 𝑁 ≠ 1) |
| 55 | 52, 54 | eqnetrd 3008 |
. . . . . . . . . . . . 13
⊢ (𝑁 ∈
(ℤ≥‘2) → (0 gcd 𝑁) ≠ 1) |
| 56 | 55 | adantr 480 |
. . . . . . . . . . . 12
⊢ ((𝑁 ∈
(ℤ≥‘2) ∧ 𝑥 ∈ (0..^𝑁)) → (0 gcd 𝑁) ≠ 1) |
| 57 | 7 | oveq1d 7446 |
. . . . . . . . . . . . . 14
⊢ (𝑥 ∈ {0} → (𝑥 gcd 𝑁) = (0 gcd 𝑁)) |
| 58 | 57, 17 | eleq2s 2859 |
. . . . . . . . . . . . 13
⊢ (𝑥 ∈ (0..^1) → (𝑥 gcd 𝑁) = (0 gcd 𝑁)) |
| 59 | 58 | neeq1d 3000 |
. . . . . . . . . . . 12
⊢ (𝑥 ∈ (0..^1) → ((𝑥 gcd 𝑁) ≠ 1 ↔ (0 gcd 𝑁) ≠ 1)) |
| 60 | 56, 59 | syl5ibrcom 247 |
. . . . . . . . . . 11
⊢ ((𝑁 ∈
(ℤ≥‘2) ∧ 𝑥 ∈ (0..^𝑁)) → (𝑥 ∈ (0..^1) → (𝑥 gcd 𝑁) ≠ 1)) |
| 61 | 60 | necon2bd 2956 |
. . . . . . . . . 10
⊢ ((𝑁 ∈
(ℤ≥‘2) ∧ 𝑥 ∈ (0..^𝑁)) → ((𝑥 gcd 𝑁) = 1 → ¬ 𝑥 ∈ (0..^1))) |
| 62 | | simpr 484 |
. . . . . . . . . . . 12
⊢ ((𝑁 ∈
(ℤ≥‘2) ∧ 𝑥 ∈ (0..^𝑁)) → 𝑥 ∈ (0..^𝑁)) |
| 63 | | 1z 12647 |
. . . . . . . . . . . 12
⊢ 1 ∈
ℤ |
| 64 | | fzospliti 13731 |
. . . . . . . . . . . 12
⊢ ((𝑥 ∈ (0..^𝑁) ∧ 1 ∈ ℤ) → (𝑥 ∈ (0..^1) ∨ 𝑥 ∈ (1..^𝑁))) |
| 65 | 62, 63, 64 | sylancl 586 |
. . . . . . . . . . 11
⊢ ((𝑁 ∈
(ℤ≥‘2) ∧ 𝑥 ∈ (0..^𝑁)) → (𝑥 ∈ (0..^1) ∨ 𝑥 ∈ (1..^𝑁))) |
| 66 | 65 | ord 865 |
. . . . . . . . . 10
⊢ ((𝑁 ∈
(ℤ≥‘2) ∧ 𝑥 ∈ (0..^𝑁)) → (¬ 𝑥 ∈ (0..^1) → 𝑥 ∈ (1..^𝑁))) |
| 67 | 61, 66 | syld 47 |
. . . . . . . . 9
⊢ ((𝑁 ∈
(ℤ≥‘2) ∧ 𝑥 ∈ (0..^𝑁)) → ((𝑥 gcd 𝑁) = 1 → 𝑥 ∈ (1..^𝑁))) |
| 68 | 67 | ralrimiva 3146 |
. . . . . . . 8
⊢ (𝑁 ∈
(ℤ≥‘2) → ∀𝑥 ∈ (0..^𝑁)((𝑥 gcd 𝑁) = 1 → 𝑥 ∈ (1..^𝑁))) |
| 69 | | rabss 4072 |
. . . . . . . 8
⊢ ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1..^𝑁) ↔ ∀𝑥 ∈ (0..^𝑁)((𝑥 gcd 𝑁) = 1 → 𝑥 ∈ (1..^𝑁))) |
| 70 | 68, 69 | sylibr 234 |
. . . . . . 7
⊢ (𝑁 ∈
(ℤ≥‘2) → {𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1..^𝑁)) |
| 71 | | dfss2 3969 |
. . . . . . 7
⊢ ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1..^𝑁) ↔ ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1}) |
| 72 | 70, 71 | sylib 218 |
. . . . . 6
⊢ (𝑁 ∈
(ℤ≥‘2) → ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1}) |
| 73 | 38, 45, 72 | 3eqtr3d 2785 |
. . . . 5
⊢ (𝑁 ∈
(ℤ≥‘2) → {𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} = {𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1}) |
| 74 | 73 | fveq2d 6910 |
. . . 4
⊢ (𝑁 ∈
(ℤ≥‘2) → (♯‘{𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1}) = (♯‘{𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1})) |
| 75 | 26, 74 | eqtrd 2777 |
. . 3
⊢ (𝑁 ∈
(ℤ≥‘2) → (ϕ‘𝑁) = (♯‘{𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1})) |
| 76 | 23, 75 | jaoi 858 |
. 2
⊢ ((𝑁 = 1 ∨ 𝑁 ∈ (ℤ≥‘2))
→ (ϕ‘𝑁) =
(♯‘{𝑥 ∈
(0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1})) |
| 77 | 1, 76 | sylbi 217 |
1
⊢ (𝑁 ∈ ℕ →
(ϕ‘𝑁) =
(♯‘{𝑥 ∈
(0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1})) |