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

Theorem dfphi2 16327
Description: Alternate definition of the Euler ϕ function. (Contributed by Mario Carneiro, 23-Feb-2014.) (Revised by Mario Carneiro, 2-May-2016.)
Assertion
Ref Expression
dfphi2 (𝑁 ∈ ℕ → (ϕ‘𝑁) = (♯‘{𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1}))
Distinct variable group:   𝑥,𝑁

Proof of Theorem dfphi2
StepHypRef Expression
1 elnn1uz2 12521 . 2 (𝑁 ∈ ℕ ↔ (𝑁 = 1 ∨ 𝑁 ∈ (ℤ‘2)))
2 phi1 16326 . . . . 5 (ϕ‘1) = 1
3 0z 12187 . . . . . 6 0 ∈ ℤ
4 hashsng 13936 . . . . . 6 (0 ∈ ℤ → (♯‘{0}) = 1)
53, 4ax-mp 5 . . . . 5 (♯‘{0}) = 1
6 rabid2 3293 . . . . . . 7 ({0} = {𝑥 ∈ {0} ∣ (𝑥 gcd 1) = 1} ↔ ∀𝑥 ∈ {0} (𝑥 gcd 1) = 1)
7 elsni 4558 . . . . . . . . 9 (𝑥 ∈ {0} → 𝑥 = 0)
87oveq1d 7228 . . . . . . . 8 (𝑥 ∈ {0} → (𝑥 gcd 1) = (0 gcd 1))
9 gcd1 16087 . . . . . . . . 9 (0 ∈ ℤ → (0 gcd 1) = 1)
103, 9ax-mp 5 . . . . . . . 8 (0 gcd 1) = 1
118, 10eqtrdi 2794 . . . . . . 7 (𝑥 ∈ {0} → (𝑥 gcd 1) = 1)
126, 11mprgbir 3076 . . . . . 6 {0} = {𝑥 ∈ {0} ∣ (𝑥 gcd 1) = 1}
1312fveq2i 6720 . . . . 5 (♯‘{0}) = (♯‘{𝑥 ∈ {0} ∣ (𝑥 gcd 1) = 1})
142, 5, 133eqtr2i 2771 . . . 4 (ϕ‘1) = (♯‘{𝑥 ∈ {0} ∣ (𝑥 gcd 1) = 1})
15 fveq2 6717 . . . 4 (𝑁 = 1 → (ϕ‘𝑁) = (ϕ‘1))
16 oveq2 7221 . . . . . . 7 (𝑁 = 1 → (0..^𝑁) = (0..^1))
17 fzo01 13324 . . . . . . 7 (0..^1) = {0}
1816, 17eqtrdi 2794 . . . . . 6 (𝑁 = 1 → (0..^𝑁) = {0})
19 oveq2 7221 . . . . . . 7 (𝑁 = 1 → (𝑥 gcd 𝑁) = (𝑥 gcd 1))
2019eqeq1d 2739 . . . . . 6 (𝑁 = 1 → ((𝑥 gcd 𝑁) = 1 ↔ (𝑥 gcd 1) = 1))
2118, 20rabeqbidv 3396 . . . . 5 (𝑁 = 1 → {𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} = {𝑥 ∈ {0} ∣ (𝑥 gcd 1) = 1})
2221fveq2d 6721 . . . 4 (𝑁 = 1 → (♯‘{𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1}) = (♯‘{𝑥 ∈ {0} ∣ (𝑥 gcd 1) = 1}))
2314, 15, 223eqtr4a 2804 . . 3 (𝑁 = 1 → (ϕ‘𝑁) = (♯‘{𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1}))
24 eluz2nn 12480 . . . . 5 (𝑁 ∈ (ℤ‘2) → 𝑁 ∈ ℕ)
25 phival 16320 . . . . 5 (𝑁 ∈ ℕ → (ϕ‘𝑁) = (♯‘{𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1}))
2624, 25syl 17 . . . 4 (𝑁 ∈ (ℤ‘2) → (ϕ‘𝑁) = (♯‘{𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1}))
27 fzossfz 13261 . . . . . . . . . . 11 (1..^𝑁) ⊆ (1...𝑁)
2827a1i 11 . . . . . . . . . 10 (𝑁 ∈ (ℤ‘2) → (1..^𝑁) ⊆ (1...𝑁))
29 sseqin2 4130 . . . . . . . . . 10 ((1..^𝑁) ⊆ (1...𝑁) ↔ ((1...𝑁) ∩ (1..^𝑁)) = (1..^𝑁))
3028, 29sylib 221 . . . . . . . . 9 (𝑁 ∈ (ℤ‘2) → ((1...𝑁) ∩ (1..^𝑁)) = (1..^𝑁))
31 fzo0ss1 13272 . . . . . . . . . 10 (1..^𝑁) ⊆ (0..^𝑁)
32 sseqin2 4130 . . . . . . . . . 10 ((1..^𝑁) ⊆ (0..^𝑁) ↔ ((0..^𝑁) ∩ (1..^𝑁)) = (1..^𝑁))
3331, 32mpbi 233 . . . . . . . . 9 ((0..^𝑁) ∩ (1..^𝑁)) = (1..^𝑁)
3430, 33eqtr4di 2796 . . . . . . . 8 (𝑁 ∈ (ℤ‘2) → ((1...𝑁) ∩ (1..^𝑁)) = ((0..^𝑁) ∩ (1..^𝑁)))
3534rabeqdv 3395 . . . . . . 7 (𝑁 ∈ (ℤ‘2) → {𝑥 ∈ ((1...𝑁) ∩ (1..^𝑁)) ∣ (𝑥 gcd 𝑁) = 1} = {𝑥 ∈ ((0..^𝑁) ∩ (1..^𝑁)) ∣ (𝑥 gcd 𝑁) = 1})
36 inrab2 4222 . . . . . . 7 ({𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ ((1...𝑁) ∩ (1..^𝑁)) ∣ (𝑥 gcd 𝑁) = 1}
37 inrab2 4222 . . . . . . 7 ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ ((0..^𝑁) ∩ (1..^𝑁)) ∣ (𝑥 gcd 𝑁) = 1}
3835, 36, 373eqtr4g 2803 . . . . . 6 (𝑁 ∈ (ℤ‘2) → ({𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)))
39 phibndlem 16323 . . . . . . . 8 (𝑁 ∈ (ℤ‘2) → {𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1...(𝑁 − 1)))
40 eluzelz 12448 . . . . . . . . 9 (𝑁 ∈ (ℤ‘2) → 𝑁 ∈ ℤ)
41 fzoval 13244 . . . . . . . . 9 (𝑁 ∈ ℤ → (1..^𝑁) = (1...(𝑁 − 1)))
4240, 41syl 17 . . . . . . . 8 (𝑁 ∈ (ℤ‘2) → (1..^𝑁) = (1...(𝑁 − 1)))
4339, 42sseqtrrd 3942 . . . . . . 7 (𝑁 ∈ (ℤ‘2) → {𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1..^𝑁))
44 df-ss 3883 . . . . . . 7 ({𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1..^𝑁) ↔ ({𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1})
4543, 44sylib 221 . . . . . 6 (𝑁 ∈ (ℤ‘2) → ({𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1})
46 gcd0id 16078 . . . . . . . . . . . . . . . 16 (𝑁 ∈ ℤ → (0 gcd 𝑁) = (abs‘𝑁))
4740, 46syl 17 . . . . . . . . . . . . . . 15 (𝑁 ∈ (ℤ‘2) → (0 gcd 𝑁) = (abs‘𝑁))
48 eluzelre 12449 . . . . . . . . . . . . . . . 16 (𝑁 ∈ (ℤ‘2) → 𝑁 ∈ ℝ)
49 eluzge2nn0 12483 . . . . . . . . . . . . . . . . 17 (𝑁 ∈ (ℤ‘2) → 𝑁 ∈ ℕ0)
5049nn0ge0d 12153 . . . . . . . . . . . . . . . 16 (𝑁 ∈ (ℤ‘2) → 0 ≤ 𝑁)
5148, 50absidd 14986 . . . . . . . . . . . . . . 15 (𝑁 ∈ (ℤ‘2) → (abs‘𝑁) = 𝑁)
5247, 51eqtrd 2777 . . . . . . . . . . . . . 14 (𝑁 ∈ (ℤ‘2) → (0 gcd 𝑁) = 𝑁)
53 eluz2b3 12518 . . . . . . . . . . . . . . 15 (𝑁 ∈ (ℤ‘2) ↔ (𝑁 ∈ ℕ ∧ 𝑁 ≠ 1))
5453simprbi 500 . . . . . . . . . . . . . 14 (𝑁 ∈ (ℤ‘2) → 𝑁 ≠ 1)
5552, 54eqnetrd 3008 . . . . . . . . . . . . 13 (𝑁 ∈ (ℤ‘2) → (0 gcd 𝑁) ≠ 1)
5655adantr 484 . . . . . . . . . . . 12 ((𝑁 ∈ (ℤ‘2) ∧ 𝑥 ∈ (0..^𝑁)) → (0 gcd 𝑁) ≠ 1)
577oveq1d 7228 . . . . . . . . . . . . . 14 (𝑥 ∈ {0} → (𝑥 gcd 𝑁) = (0 gcd 𝑁))
5857, 17eleq2s 2856 . . . . . . . . . . . . 13 (𝑥 ∈ (0..^1) → (𝑥 gcd 𝑁) = (0 gcd 𝑁))
5958neeq1d 3000 . . . . . . . . . . . 12 (𝑥 ∈ (0..^1) → ((𝑥 gcd 𝑁) ≠ 1 ↔ (0 gcd 𝑁) ≠ 1))
6056, 59syl5ibrcom 250 . . . . . . . . . . 11 ((𝑁 ∈ (ℤ‘2) ∧ 𝑥 ∈ (0..^𝑁)) → (𝑥 ∈ (0..^1) → (𝑥 gcd 𝑁) ≠ 1))
6160necon2bd 2956 . . . . . . . . . 10 ((𝑁 ∈ (ℤ‘2) ∧ 𝑥 ∈ (0..^𝑁)) → ((𝑥 gcd 𝑁) = 1 → ¬ 𝑥 ∈ (0..^1)))
62 simpr 488 . . . . . . . . . . . 12 ((𝑁 ∈ (ℤ‘2) ∧ 𝑥 ∈ (0..^𝑁)) → 𝑥 ∈ (0..^𝑁))
63 1z 12207 . . . . . . . . . . . 12 1 ∈ ℤ
64 fzospliti 13274 . . . . . . . . . . . 12 ((𝑥 ∈ (0..^𝑁) ∧ 1 ∈ ℤ) → (𝑥 ∈ (0..^1) ∨ 𝑥 ∈ (1..^𝑁)))
6562, 63, 64sylancl 589 . . . . . . . . . . 11 ((𝑁 ∈ (ℤ‘2) ∧ 𝑥 ∈ (0..^𝑁)) → (𝑥 ∈ (0..^1) ∨ 𝑥 ∈ (1..^𝑁)))
6665ord 864 . . . . . . . . . 10 ((𝑁 ∈ (ℤ‘2) ∧ 𝑥 ∈ (0..^𝑁)) → (¬ 𝑥 ∈ (0..^1) → 𝑥 ∈ (1..^𝑁)))
6761, 66syld 47 . . . . . . . . 9 ((𝑁 ∈ (ℤ‘2) ∧ 𝑥 ∈ (0..^𝑁)) → ((𝑥 gcd 𝑁) = 1 → 𝑥 ∈ (1..^𝑁)))
6867ralrimiva 3105 . . . . . . . 8 (𝑁 ∈ (ℤ‘2) → ∀𝑥 ∈ (0..^𝑁)((𝑥 gcd 𝑁) = 1 → 𝑥 ∈ (1..^𝑁)))
69 rabss 3985 . . . . . . . 8 ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1..^𝑁) ↔ ∀𝑥 ∈ (0..^𝑁)((𝑥 gcd 𝑁) = 1 → 𝑥 ∈ (1..^𝑁)))
7068, 69sylibr 237 . . . . . . 7 (𝑁 ∈ (ℤ‘2) → {𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1..^𝑁))
71 df-ss 3883 . . . . . . 7 ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ⊆ (1..^𝑁) ↔ ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1})
7270, 71sylib 221 . . . . . 6 (𝑁 ∈ (ℤ‘2) → ({𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1} ∩ (1..^𝑁)) = {𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1})
7338, 45, 723eqtr3d 2785 . . . . 5 (𝑁 ∈ (ℤ‘2) → {𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1} = {𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1})
7473fveq2d 6721 . . . 4 (𝑁 ∈ (ℤ‘2) → (♯‘{𝑥 ∈ (1...𝑁) ∣ (𝑥 gcd 𝑁) = 1}) = (♯‘{𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1}))
7526, 74eqtrd 2777 . . 3 (𝑁 ∈ (ℤ‘2) → (ϕ‘𝑁) = (♯‘{𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1}))
7623, 75jaoi 857 . 2 ((𝑁 = 1 ∨ 𝑁 ∈ (ℤ‘2)) → (ϕ‘𝑁) = (♯‘{𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1}))
771, 76sylbi 220 1 (𝑁 ∈ ℕ → (ϕ‘𝑁) = (♯‘{𝑥 ∈ (0..^𝑁) ∣ (𝑥 gcd 𝑁) = 1}))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 399  wo 847   = wceq 1543  wcel 2110  wne 2940  wral 3061  {crab 3065  cin 3865  wss 3866  {csn 4541  cfv 6380  (class class class)co 7213  0cc0 10729  1c1 10730  cmin 11062  cn 11830  2c2 11885  cz 12176  cuz 12438  ...cfz 13095  ..^cfzo 13238  chash 13896  abscabs 14797   gcd cgcd 16053  ϕcphi 16317
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1803  ax-4 1817  ax-5 1918  ax-6 1976  ax-7 2016  ax-8 2112  ax-9 2120  ax-10 2141  ax-11 2158  ax-12 2175  ax-ext 2708  ax-sep 5192  ax-nul 5199  ax-pow 5258  ax-pr 5322  ax-un 7523  ax-cnex 10785  ax-resscn 10786  ax-1cn 10787  ax-icn 10788  ax-addcl 10789  ax-addrcl 10790  ax-mulcl 10791  ax-mulrcl 10792  ax-mulcom 10793  ax-addass 10794  ax-mulass 10795  ax-distr 10796  ax-i2m1 10797  ax-1ne0 10798  ax-1rid 10799  ax-rnegex 10800  ax-rrecex 10801  ax-cnre 10802  ax-pre-lttri 10803  ax-pre-lttrn 10804  ax-pre-ltadd 10805  ax-pre-mulgt0 10806  ax-pre-sup 10807
This theorem depends on definitions:  df-bi 210  df-an 400  df-or 848  df-3or 1090  df-3an 1091  df-tru 1546  df-fal 1556  df-ex 1788  df-nf 1792  df-sb 2071  df-mo 2539  df-eu 2568  df-clab 2715  df-cleq 2729  df-clel 2816  df-nfc 2886  df-ne 2941  df-nel 3047  df-ral 3066  df-rex 3067  df-reu 3068  df-rmo 3069  df-rab 3070  df-v 3410  df-sbc 3695  df-csb 3812  df-dif 3869  df-un 3871  df-in 3873  df-ss 3883  df-pss 3885  df-nul 4238  df-if 4440  df-pw 4515  df-sn 4542  df-pr 4544  df-tp 4546  df-op 4548  df-uni 4820  df-int 4860  df-iun 4906  df-br 5054  df-opab 5116  df-mpt 5136  df-tr 5162  df-id 5455  df-eprel 5460  df-po 5468  df-so 5469  df-fr 5509  df-we 5511  df-xp 5557  df-rel 5558  df-cnv 5559  df-co 5560  df-dm 5561  df-rn 5562  df-res 5563  df-ima 5564  df-pred 6160  df-ord 6216  df-on 6217  df-lim 6218  df-suc 6219  df-iota 6338  df-fun 6382  df-fn 6383  df-f 6384  df-f1 6385  df-fo 6386  df-f1o 6387  df-fv 6388  df-riota 7170  df-ov 7216  df-oprab 7217  df-mpo 7218  df-om 7645  df-1st 7761  df-2nd 7762  df-wrecs 8047  df-recs 8108  df-rdg 8146  df-1o 8202  df-oadd 8206  df-er 8391  df-en 8627  df-dom 8628  df-sdom 8629  df-fin 8630  df-sup 9058  df-inf 9059  df-card 9555  df-pnf 10869  df-mnf 10870  df-xr 10871  df-ltxr 10872  df-le 10873  df-sub 11064  df-neg 11065  df-div 11490  df-nn 11831  df-2 11893  df-3 11894  df-n0 12091  df-xnn0 12163  df-z 12177  df-uz 12439  df-rp 12587  df-fz 13096  df-fzo 13239  df-seq 13575  df-exp 13636  df-hash 13897  df-cj 14662  df-re 14663  df-im 14664  df-sqrt 14798  df-abs 14799  df-dvds 15816  df-gcd 16054  df-phi 16319
This theorem is referenced by:  phimullem  16332  eulerth  16336  hashgcdeq  16342  odngen  18966  znunithash  20529
  Copyright terms: Public domain W3C validator