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

Theorem znunithash 19183
Description: The size of the unit group of ℤ/nℤ. (Contributed by Mario Carneiro, 19-Apr-2016.)
Hypotheses
Ref Expression
znchr.y  |-  Y  =  (ℤ/n `  N )
znunit.u  |-  U  =  (Unit `  Y )
Assertion
Ref Expression
znunithash  |-  ( N  e.  NN  ->  ( # `
 U )  =  ( phi `  N
) )

Proof of Theorem znunithash
Dummy variable  x is distinct from all other variables.
StepHypRef Expression
1 dfphi2 14770 . 2  |-  ( N  e.  NN  ->  ( phi `  N )  =  ( # `  {
x  e.  ( 0..^ N )  |  ( x  gcd  N )  =  1 } ) )
2 nnnn0 10904 . . . . . . . . 9  |-  ( N  e.  NN  ->  N  e.  NN0 )
3 znchr.y . . . . . . . . . 10  |-  Y  =  (ℤ/n `  N )
4 eqid 2461 . . . . . . . . . 10  |-  ( Base `  Y )  =  (
Base `  Y )
5 eqid 2461 . . . . . . . . . 10  |-  ( ( ZRHom `  Y )  |`  if ( N  =  0 ,  ZZ , 
( 0..^ N ) ) )  =  ( ( ZRHom `  Y
)  |`  if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) )
6 eqid 2461 . . . . . . . . . 10  |-  if ( N  =  0 ,  ZZ ,  ( 0..^ N ) )  =  if ( N  =  0 ,  ZZ , 
( 0..^ N ) )
73, 4, 5, 6znf1o 19170 . . . . . . . . 9  |-  ( N  e.  NN0  ->  ( ( ZRHom `  Y )  |`  if ( N  =  0 ,  ZZ , 
( 0..^ N ) ) ) : if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) -1-1-onto-> ( Base `  Y ) )
82, 7syl 17 . . . . . . . 8  |-  ( N  e.  NN  ->  (
( ZRHom `  Y
)  |`  if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) ) : if ( N  =  0 ,  ZZ , 
( 0..^ N ) ) -1-1-onto-> ( Base `  Y
) )
9 nnne0 10669 . . . . . . . . 9  |-  ( N  e.  NN  ->  N  =/=  0 )
10 ifnefalse 3904 . . . . . . . . 9  |-  ( N  =/=  0  ->  if ( N  =  0 ,  ZZ ,  ( 0..^ N ) )  =  ( 0..^ N ) )
11 reseq2 5118 . . . . . . . . . . 11  |-  ( if ( N  =  0 ,  ZZ ,  ( 0..^ N ) )  =  ( 0..^ N )  ->  ( ( ZRHom `  Y )  |`  if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) )  =  ( ( ZRHom `  Y )  |`  ( 0..^ N ) ) )
12 f1oeq1 5827 . . . . . . . . . . 11  |-  ( ( ( ZRHom `  Y
)  |`  if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) )  =  ( ( ZRHom `  Y )  |`  (
0..^ N ) )  ->  ( ( ( ZRHom `  Y )  |`  if ( N  =  0 ,  ZZ , 
( 0..^ N ) ) ) : if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) -1-1-onto-> ( Base `  Y )  <->  ( ( ZRHom `  Y )  |`  ( 0..^ N ) ) : if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) -1-1-onto-> ( Base `  Y
) ) )
1311, 12syl 17 . . . . . . . . . 10  |-  ( if ( N  =  0 ,  ZZ ,  ( 0..^ N ) )  =  ( 0..^ N )  ->  ( (
( ZRHom `  Y
)  |`  if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) ) : if ( N  =  0 ,  ZZ , 
( 0..^ N ) ) -1-1-onto-> ( Base `  Y
)  <->  ( ( ZRHom `  Y )  |`  (
0..^ N ) ) : if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) -1-1-onto-> ( Base `  Y
) ) )
14 f1oeq2 5828 . . . . . . . . . 10  |-  ( if ( N  =  0 ,  ZZ ,  ( 0..^ N ) )  =  ( 0..^ N )  ->  ( (
( ZRHom `  Y
)  |`  ( 0..^ N ) ) : if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) -1-1-onto-> ( Base `  Y )  <->  ( ( ZRHom `  Y )  |`  ( 0..^ N ) ) : ( 0..^ N ) -1-1-onto-> ( Base `  Y
) ) )
1513, 14bitrd 261 . . . . . . . . 9  |-  ( if ( N  =  0 ,  ZZ ,  ( 0..^ N ) )  =  ( 0..^ N )  ->  ( (
( ZRHom `  Y
)  |`  if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) ) : if ( N  =  0 ,  ZZ , 
( 0..^ N ) ) -1-1-onto-> ( Base `  Y
)  <->  ( ( ZRHom `  Y )  |`  (
0..^ N ) ) : ( 0..^ N ) -1-1-onto-> ( Base `  Y
) ) )
169, 10, 153syl 18 . . . . . . . 8  |-  ( N  e.  NN  ->  (
( ( ZRHom `  Y )  |`  if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) ) : if ( N  =  0 ,  ZZ ,  ( 0..^ N ) ) -1-1-onto-> ( Base `  Y
)  <->  ( ( ZRHom `  Y )  |`  (
0..^ N ) ) : ( 0..^ N ) -1-1-onto-> ( Base `  Y
) ) )
178, 16mpbid 215 . . . . . . 7  |-  ( N  e.  NN  ->  (
( ZRHom `  Y
)  |`  ( 0..^ N ) ) : ( 0..^ N ) -1-1-onto-> ( Base `  Y ) )
18 f1ofn 5837 . . . . . . 7  |-  ( ( ( ZRHom `  Y
)  |`  ( 0..^ N ) ) : ( 0..^ N ) -1-1-onto-> ( Base `  Y )  ->  (
( ZRHom `  Y
)  |`  ( 0..^ N ) )  Fn  (
0..^ N ) )
19 elpreima 6024 . . . . . . 7  |-  ( ( ( ZRHom `  Y
)  |`  ( 0..^ N ) )  Fn  (
0..^ N )  -> 
( x  e.  ( `' ( ( ZRHom `  Y )  |`  (
0..^ N ) )
" U )  <->  ( x  e.  ( 0..^ N )  /\  ( ( ( ZRHom `  Y )  |`  ( 0..^ N ) ) `  x )  e.  U ) ) )
2017, 18, 193syl 18 . . . . . 6  |-  ( N  e.  NN  ->  (
x  e.  ( `' ( ( ZRHom `  Y )  |`  (
0..^ N ) )
" U )  <->  ( x  e.  ( 0..^ N )  /\  ( ( ( ZRHom `  Y )  |`  ( 0..^ N ) ) `  x )  e.  U ) ) )
21 fvres 5901 . . . . . . . . . 10  |-  ( x  e.  ( 0..^ N )  ->  ( (
( ZRHom `  Y
)  |`  ( 0..^ N ) ) `  x
)  =  ( ( ZRHom `  Y ) `  x ) )
2221adantl 472 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  x  e.  ( 0..^ N ) )  -> 
( ( ( ZRHom `  Y )  |`  (
0..^ N ) ) `
 x )  =  ( ( ZRHom `  Y ) `  x
) )
2322eleq1d 2523 . . . . . . . 8  |-  ( ( N  e.  NN  /\  x  e.  ( 0..^ N ) )  -> 
( ( ( ( ZRHom `  Y )  |`  ( 0..^ N ) ) `  x )  e.  U  <->  ( ( ZRHom `  Y ) `  x )  e.  U
) )
24 elfzoelz 11950 . . . . . . . . 9  |-  ( x  e.  ( 0..^ N )  ->  x  e.  ZZ )
25 znunit.u . . . . . . . . . 10  |-  U  =  (Unit `  Y )
26 eqid 2461 . . . . . . . . . 10  |-  ( ZRHom `  Y )  =  ( ZRHom `  Y )
273, 25, 26znunit 19182 . . . . . . . . 9  |-  ( ( N  e.  NN0  /\  x  e.  ZZ )  ->  ( ( ( ZRHom `  Y ) `  x
)  e.  U  <->  ( x  gcd  N )  =  1 ) )
282, 24, 27syl2an 484 . . . . . . . 8  |-  ( ( N  e.  NN  /\  x  e.  ( 0..^ N ) )  -> 
( ( ( ZRHom `  Y ) `  x
)  e.  U  <->  ( x  gcd  N )  =  1 ) )
2923, 28bitrd 261 . . . . . . 7  |-  ( ( N  e.  NN  /\  x  e.  ( 0..^ N ) )  -> 
( ( ( ( ZRHom `  Y )  |`  ( 0..^ N ) ) `  x )  e.  U  <->  ( x  gcd  N )  =  1 ) )
3029pm5.32da 651 . . . . . 6  |-  ( N  e.  NN  ->  (
( x  e.  ( 0..^ N )  /\  ( ( ( ZRHom `  Y )  |`  (
0..^ N ) ) `
 x )  e.  U )  <->  ( x  e.  ( 0..^ N )  /\  ( x  gcd  N )  =  1 ) ) )
3120, 30bitrd 261 . . . . 5  |-  ( N  e.  NN  ->  (
x  e.  ( `' ( ( ZRHom `  Y )  |`  (
0..^ N ) )
" U )  <->  ( x  e.  ( 0..^ N )  /\  ( x  gcd  N )  =  1 ) ) )
3231abbi2dv 2580 . . . 4  |-  ( N  e.  NN  ->  ( `' ( ( ZRHom `  Y )  |`  (
0..^ N ) )
" U )  =  { x  |  ( x  e.  ( 0..^ N )  /\  (
x  gcd  N )  =  1 ) } )
33 df-rab 2757 . . . 4  |-  { x  e.  ( 0..^ N )  |  ( x  gcd  N )  =  1 }  =  { x  |  ( x  e.  ( 0..^ N )  /\  ( x  gcd  N )  =  1 ) }
3432, 33syl6eqr 2513 . . 3  |-  ( N  e.  NN  ->  ( `' ( ( ZRHom `  Y )  |`  (
0..^ N ) )
" U )  =  { x  e.  ( 0..^ N )  |  ( x  gcd  N
)  =  1 } )
3534fveq2d 5891 . 2  |-  ( N  e.  NN  ->  ( # `
 ( `' ( ( ZRHom `  Y
)  |`  ( 0..^ N ) ) " U
) )  =  (
# `  { x  e.  ( 0..^ N )  |  ( x  gcd  N )  =  1 } ) )
36 f1ocnv 5848 . . . . 5  |-  ( ( ( ZRHom `  Y
)  |`  ( 0..^ N ) ) : ( 0..^ N ) -1-1-onto-> ( Base `  Y )  ->  `' ( ( ZRHom `  Y )  |`  (
0..^ N ) ) : ( Base `  Y
)
-1-1-onto-> ( 0..^ N ) )
37 f1of1 5835 . . . . 5  |-  ( `' ( ( ZRHom `  Y )  |`  (
0..^ N ) ) : ( Base `  Y
)
-1-1-onto-> ( 0..^ N )  ->  `' ( ( ZRHom `  Y )  |`  (
0..^ N ) ) : ( Base `  Y
) -1-1-> ( 0..^ N ) )
3817, 36, 373syl 18 . . . 4  |-  ( N  e.  NN  ->  `' ( ( ZRHom `  Y )  |`  (
0..^ N ) ) : ( Base `  Y
) -1-1-> ( 0..^ N ) )
39 ovex 6342 . . . . 5  |-  ( 0..^ N )  e.  _V
4039a1i 11 . . . 4  |-  ( N  e.  NN  ->  (
0..^ N )  e. 
_V )
414, 25unitss 17936 . . . . 5  |-  U  C_  ( Base `  Y )
4241a1i 11 . . . 4  |-  ( N  e.  NN  ->  U  C_  ( Base `  Y
) )
43 fvex 5897 . . . . . 6  |-  (Unit `  Y )  e.  _V
4425, 43eqeltri 2535 . . . . 5  |-  U  e. 
_V
4544a1i 11 . . . 4  |-  ( N  e.  NN  ->  U  e.  _V )
46 f1imaen2g 7655 . . . 4  |-  ( ( ( `' ( ( ZRHom `  Y )  |`  ( 0..^ N ) ) : ( Base `  Y ) -1-1-> ( 0..^ N )  /\  (
0..^ N )  e. 
_V )  /\  ( U  C_  ( Base `  Y
)  /\  U  e.  _V ) )  ->  ( `' ( ( ZRHom `  Y )  |`  (
0..^ N ) )
" U )  ~~  U )
4738, 40, 42, 45, 46syl22anc 1277 . . 3  |-  ( N  e.  NN  ->  ( `' ( ( ZRHom `  Y )  |`  (
0..^ N ) )
" U )  ~~  U )
48 hasheni 12562 . . 3  |-  ( ( `' ( ( ZRHom `  Y )  |`  (
0..^ N ) )
" U )  ~~  U  ->  ( # `  ( `' ( ( ZRHom `  Y )  |`  (
0..^ N ) )
" U ) )  =  ( # `  U
) )
4947, 48syl 17 . 2  |-  ( N  e.  NN  ->  ( # `
 ( `' ( ( ZRHom `  Y
)  |`  ( 0..^ N ) ) " U
) )  =  (
# `  U )
)
501, 35, 493eqtr2rd 2502 1  |-  ( N  e.  NN  ->  ( # `
 U )  =  ( phi `  N
) )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    <-> wb 189    /\ wa 375    = wceq 1454    e. wcel 1897   {cab 2447    =/= wne 2632   {crab 2752   _Vcvv 3056    C_ wss 3415   ifcif 3892   class class class wbr 4415   `'ccnv 4851    |` cres 4854   "cima 4855    Fn wfn 5595   -1-1->wf1 5597   -1-1-onto->wf1o 5599   ` cfv 5600  (class class class)co 6314    ~~ cen 7591   0cc0 9564   1c1 9565   NNcn 10636   NN0cn0 10897   ZZcz 10965  ..^cfzo 11945   #chash 12546    gcd cgcd 14516   phicphi 14759   Basecbs 15169  Unitcui 17915   ZRHomczrh 19119  ℤ/nczn 19122
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1679  ax-4 1692  ax-5 1768  ax-6 1815  ax-7 1861  ax-8 1899  ax-9 1906  ax-10 1925  ax-11 1930  ax-12 1943  ax-13 2101  ax-ext 2441  ax-rep 4528  ax-sep 4538  ax-nul 4547  ax-pow 4594  ax-pr 4652  ax-un 6609  ax-inf2 8171  ax-cnex 9620  ax-resscn 9621  ax-1cn 9622  ax-icn 9623  ax-addcl 9624  ax-addrcl 9625  ax-mulcl 9626  ax-mulrcl 9627  ax-mulcom 9628  ax-addass 9629  ax-mulass 9630  ax-distr 9631  ax-i2m1 9632  ax-1ne0 9633  ax-1rid 9634  ax-rnegex 9635  ax-rrecex 9636  ax-cnre 9637  ax-pre-lttri 9638  ax-pre-lttrn 9639  ax-pre-ltadd 9640  ax-pre-mulgt0 9641  ax-pre-sup 9642  ax-addf 9643  ax-mulf 9644
This theorem depends on definitions:  df-bi 190  df-or 376  df-an 377  df-3or 992  df-3an 993  df-tru 1457  df-ex 1674  df-nf 1678  df-sb 1808  df-eu 2313  df-mo 2314  df-clab 2448  df-cleq 2454  df-clel 2457  df-nfc 2591  df-ne 2634  df-nel 2635  df-ral 2753  df-rex 2754  df-reu 2755  df-rmo 2756  df-rab 2757  df-v 3058  df-sbc 3279  df-csb 3375  df-dif 3418  df-un 3420  df-in 3422  df-ss 3429  df-pss 3431  df-nul 3743  df-if 3893  df-pw 3964  df-sn 3980  df-pr 3982  df-tp 3984  df-op 3986  df-uni 4212  df-int 4248  df-iun 4293  df-br 4416  df-opab 4475  df-mpt 4476  df-tr 4511  df-eprel 4763  df-id 4767  df-po 4773  df-so 4774  df-fr 4811  df-we 4813  df-xp 4858  df-rel 4859  df-cnv 4860  df-co 4861  df-dm 4862  df-rn 4863  df-res 4864  df-ima 4865  df-pred 5398  df-ord 5444  df-on 5445  df-lim 5446  df-suc 5447  df-iota 5564  df-fun 5602  df-fn 5603  df-f 5604  df-f1 5605  df-fo 5606  df-f1o 5607  df-fv 5608  df-riota 6276  df-ov 6317  df-oprab 6318  df-mpt2 6319  df-om 6719  df-1st 6819  df-2nd 6820  df-tpos 6998  df-wrecs 7053  df-recs 7115  df-rdg 7153  df-1o 7207  df-oadd 7211  df-er 7388  df-ec 7390  df-qs 7394  df-map 7499  df-en 7595  df-dom 7596  df-sdom 7597  df-fin 7598  df-sup 7981  df-inf 7982  df-card 8398  df-pnf 9702  df-mnf 9703  df-xr 9704  df-ltxr 9705  df-le 9706  df-sub 9887  df-neg 9888  df-div 10297  df-nn 10637  df-2 10695  df-3 10696  df-4 10697  df-5 10698  df-6 10699  df-7 10700  df-8 10701  df-9 10702  df-10 10703  df-n0 10898  df-z 10966  df-dec 11080  df-uz 11188  df-rp 11331  df-fz 11813  df-fzo 11946  df-fl 12059  df-mod 12128  df-seq 12245  df-exp 12304  df-hash 12547  df-cj 13210  df-re 13211  df-im 13212  df-sqrt 13346  df-abs 13347  df-dvds 14354  df-gcd 14517  df-phi 14762  df-struct 15171  df-ndx 15172  df-slot 15173  df-base 15174  df-sets 15175  df-ress 15176  df-plusg 15251  df-mulr 15252  df-starv 15253  df-sca 15254  df-vsca 15255  df-ip 15256  df-tset 15257  df-ple 15258  df-ds 15260  df-unif 15261  df-0g 15388  df-imas 15455  df-qus 15457  df-mgm 16536  df-sgrp 16575  df-mnd 16585  df-mhm 16630  df-grp 16721  df-minusg 16722  df-sbg 16723  df-mulg 16724  df-subg 16862  df-nsg 16863  df-eqg 16864  df-ghm 16929  df-cmn 17480  df-abl 17481  df-mgp 17772  df-ur 17784  df-ring 17830  df-cring 17831  df-oppr 17899  df-dvdsr 17917  df-unit 17918  df-rnghom 17991  df-subrg 18054  df-lmod 18141  df-lss 18204  df-lsp 18243  df-sra 18443  df-rgmod 18444  df-lidl 18445  df-rsp 18446  df-2idl 18504  df-cnfld 19019  df-zring 19088  df-zrh 19123  df-zn 19126
This theorem is referenced by:  dchrfi  24231  dchrsum2  24244
  Copyright terms: Public domain W3C validator