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

Theorem dchrhash 22625
Description: There are exactly  phi ( N ) Dirichlet characters modulo  N. Part of Theorem 6.5.1 of [Shapiro] p. 230. (Contributed by Mario Carneiro, 28-Apr-2016.)
Hypotheses
Ref Expression
sumdchr.g  |-  G  =  (DChr `  N )
sumdchr.d  |-  D  =  ( Base `  G
)
Assertion
Ref Expression
dchrhash  |-  ( N  e.  NN  ->  ( # `
 D )  =  ( phi `  N
) )

Proof of Theorem dchrhash
Dummy variables  x  a are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 eqid 2443 . . . . . 6  |-  (ℤ/n `  N
)  =  (ℤ/n `  N
)
2 eqid 2443 . . . . . 6  |-  ( Base `  (ℤ/n `  N ) )  =  ( Base `  (ℤ/n `  N
) )
31, 2znfi 18007 . . . . 5  |-  ( N  e.  NN  ->  ( Base `  (ℤ/n `  N ) )  e. 
Fin )
4 sumdchr.g . . . . . 6  |-  G  =  (DChr `  N )
5 sumdchr.d . . . . . 6  |-  D  =  ( Base `  G
)
64, 5dchrfi 22609 . . . . 5  |-  ( N  e.  NN  ->  D  e.  Fin )
7 simprr 756 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( a  e.  (
Base `  (ℤ/n `  N ) )  /\  x  e.  D )
)  ->  x  e.  D )
84, 1, 5, 2, 7dchrf 22596 . . . . . 6  |-  ( ( N  e.  NN  /\  ( a  e.  (
Base `  (ℤ/n `  N ) )  /\  x  e.  D )
)  ->  x :
( Base `  (ℤ/n `  N ) ) --> CC )
9 simprl 755 . . . . . 6  |-  ( ( N  e.  NN  /\  ( a  e.  (
Base `  (ℤ/n `  N ) )  /\  x  e.  D )
)  ->  a  e.  ( Base `  (ℤ/n `  N ) ) )
108, 9ffvelrnd 5859 . . . . 5  |-  ( ( N  e.  NN  /\  ( a  e.  (
Base `  (ℤ/n `  N ) )  /\  x  e.  D )
)  ->  ( x `  a )  e.  CC )
113, 6, 10fsumcom 13257 . . . 4  |-  ( N  e.  NN  ->  sum_ a  e.  ( Base `  (ℤ/n `  N
) ) sum_ x  e.  D  ( x `  a )  =  sum_ x  e.  D  sum_ a  e.  ( Base `  (ℤ/n `  N
) ) ( x `
 a ) )
12 eqid 2443 . . . . . . 7  |-  ( 1r
`  (ℤ/n `  N ) )  =  ( 1r `  (ℤ/n `  N
) )
13 simpl 457 . . . . . . 7  |-  ( ( N  e.  NN  /\  a  e.  ( Base `  (ℤ/n `  N ) ) )  ->  N  e.  NN )
14 simpr 461 . . . . . . 7  |-  ( ( N  e.  NN  /\  a  e.  ( Base `  (ℤ/n `  N ) ) )  ->  a  e.  (
Base `  (ℤ/n `  N ) ) )
154, 5, 1, 12, 2, 13, 14sumdchr2 22624 . . . . . 6  |-  ( ( N  e.  NN  /\  a  e.  ( Base `  (ℤ/n `  N ) ) )  ->  sum_ x  e.  D  ( x `  a
)  =  if ( a  =  ( 1r
`  (ℤ/n `  N ) ) ,  ( # `  D
) ,  0 ) )
16 elsn 3906 . . . . . . 7  |-  ( a  e.  { ( 1r
`  (ℤ/n `  N ) ) }  <-> 
a  =  ( 1r
`  (ℤ/n `  N ) ) )
17 ifbi 3825 . . . . . . 7  |-  ( ( a  e.  { ( 1r `  (ℤ/n `  N
) ) }  <->  a  =  ( 1r `  (ℤ/n `  N
) ) )  ->  if ( a  e.  {
( 1r `  (ℤ/n `  N
) ) } , 
( # `  D ) ,  0 )  =  if ( a  =  ( 1r `  (ℤ/n `  N
) ) ,  (
# `  D ) ,  0 ) )
1816, 17mp1i 12 . . . . . 6  |-  ( ( N  e.  NN  /\  a  e.  ( Base `  (ℤ/n `  N ) ) )  ->  if ( a  e.  { ( 1r
`  (ℤ/n `  N ) ) } ,  ( # `  D
) ,  0 )  =  if ( a  =  ( 1r `  (ℤ/n `  N ) ) ,  ( # `  D
) ,  0 ) )
1915, 18eqtr4d 2478 . . . . 5  |-  ( ( N  e.  NN  /\  a  e.  ( Base `  (ℤ/n `  N ) ) )  ->  sum_ x  e.  D  ( x `  a
)  =  if ( a  e.  { ( 1r `  (ℤ/n `  N
) ) } , 
( # `  D ) ,  0 ) )
2019sumeq2dv 13195 . . . 4  |-  ( N  e.  NN  ->  sum_ a  e.  ( Base `  (ℤ/n `  N
) ) sum_ x  e.  D  ( x `  a )  =  sum_ a  e.  ( Base `  (ℤ/n `  N ) ) if ( a  e.  {
( 1r `  (ℤ/n `  N
) ) } , 
( # `  D ) ,  0 ) )
21 eqid 2443 . . . . . . 7  |-  ( 0g
`  G )  =  ( 0g `  G
)
22 simpr 461 . . . . . . 7  |-  ( ( N  e.  NN  /\  x  e.  D )  ->  x  e.  D )
234, 1, 5, 21, 22, 2dchrsum 22623 . . . . . 6  |-  ( ( N  e.  NN  /\  x  e.  D )  -> 
sum_ a  e.  (
Base `  (ℤ/n `  N ) ) ( x `  a )  =  if ( x  =  ( 0g `  G ) ,  ( phi `  N ) ,  0 ) )
24 elsn 3906 . . . . . . 7  |-  ( x  e.  { ( 0g
`  G ) }  <-> 
x  =  ( 0g
`  G ) )
25 ifbi 3825 . . . . . . 7  |-  ( ( x  e.  { ( 0g `  G ) }  <->  x  =  ( 0g `  G ) )  ->  if ( x  e.  { ( 0g
`  G ) } ,  ( phi `  N ) ,  0 )  =  if ( x  =  ( 0g
`  G ) ,  ( phi `  N
) ,  0 ) )
2624, 25mp1i 12 . . . . . 6  |-  ( ( N  e.  NN  /\  x  e.  D )  ->  if ( x  e. 
{ ( 0g `  G ) } , 
( phi `  N
) ,  0 )  =  if ( x  =  ( 0g `  G ) ,  ( phi `  N ) ,  0 ) )
2723, 26eqtr4d 2478 . . . . 5  |-  ( ( N  e.  NN  /\  x  e.  D )  -> 
sum_ a  e.  (
Base `  (ℤ/n `  N ) ) ( x `  a )  =  if ( x  e.  { ( 0g
`  G ) } ,  ( phi `  N ) ,  0 ) )
2827sumeq2dv 13195 . . . 4  |-  ( N  e.  NN  ->  sum_ x  e.  D  sum_ a  e.  ( Base `  (ℤ/n `  N
) ) ( x `
 a )  = 
sum_ x  e.  D  if ( x  e.  {
( 0g `  G
) } ,  ( phi `  N ) ,  0 ) )
2911, 20, 283eqtr3d 2483 . . 3  |-  ( N  e.  NN  ->  sum_ a  e.  ( Base `  (ℤ/n `  N
) ) if ( a  e.  { ( 1r `  (ℤ/n `  N
) ) } , 
( # `  D ) ,  0 )  = 
sum_ x  e.  D  if ( x  e.  {
( 0g `  G
) } ,  ( phi `  N ) ,  0 ) )
30 nnnn0 10601 . . . . . 6  |-  ( N  e.  NN  ->  N  e.  NN0 )
311zncrng 17992 . . . . . 6  |-  ( N  e.  NN0  ->  (ℤ/n `  N
)  e.  CRing )
32 crngrng 16670 . . . . . 6  |-  ( (ℤ/n `  N )  e.  CRing  -> 
(ℤ/n `  N )  e.  Ring )
332, 12rngidcl 16680 . . . . . 6  |-  ( (ℤ/n `  N )  e.  Ring  -> 
( 1r `  (ℤ/n `  N
) )  e.  (
Base `  (ℤ/n `  N ) ) )
3430, 31, 32, 334syl 21 . . . . 5  |-  ( N  e.  NN  ->  ( 1r `  (ℤ/n `  N ) )  e.  ( Base `  (ℤ/n `  N
) ) )
3534snssd 4033 . . . 4  |-  ( N  e.  NN  ->  { ( 1r `  (ℤ/n `  N
) ) }  C_  ( Base `  (ℤ/n `  N ) ) )
36 hashcl 12141 . . . . . 6  |-  ( D  e.  Fin  ->  ( # `
 D )  e. 
NN0 )
37 nn0cn 10604 . . . . . 6  |-  ( (
# `  D )  e.  NN0  ->  ( # `  D
)  e.  CC )
386, 36, 373syl 20 . . . . 5  |-  ( N  e.  NN  ->  ( # `
 D )  e.  CC )
3938ralrimivw 2815 . . . 4  |-  ( N  e.  NN  ->  A. a  e.  { ( 1r `  (ℤ/n `  N ) ) }  ( # `  D
)  e.  CC )
403olcd 393 . . . 4  |-  ( N  e.  NN  ->  (
( Base `  (ℤ/n `  N ) )  C_  ( ZZ>= `  0 )  \/  ( Base `  (ℤ/n `  N
) )  e.  Fin ) )
41 sumss2 13218 . . . 4  |-  ( ( ( { ( 1r
`  (ℤ/n `  N ) ) } 
C_  ( Base `  (ℤ/n `  N
) )  /\  A. a  e.  { ( 1r `  (ℤ/n `  N ) ) }  ( # `  D
)  e.  CC )  /\  ( ( Base `  (ℤ/n `  N ) )  C_  ( ZZ>= `  0 )  \/  ( Base `  (ℤ/n `  N
) )  e.  Fin ) )  ->  sum_ a  e.  { ( 1r `  (ℤ/n `  N ) ) }  ( # `  D
)  =  sum_ a  e.  ( Base `  (ℤ/n `  N
) ) if ( a  e.  { ( 1r `  (ℤ/n `  N
) ) } , 
( # `  D ) ,  0 ) )
4235, 39, 40, 41syl21anc 1217 . . 3  |-  ( N  e.  NN  ->  sum_ a  e.  { ( 1r `  (ℤ/n `  N ) ) }  ( # `  D
)  =  sum_ a  e.  ( Base `  (ℤ/n `  N
) ) if ( a  e.  { ( 1r `  (ℤ/n `  N
) ) } , 
( # `  D ) ,  0 ) )
434dchrabl 22608 . . . . . 6  |-  ( N  e.  NN  ->  G  e.  Abel )
44 ablgrp 16297 . . . . . 6  |-  ( G  e.  Abel  ->  G  e. 
Grp )
455, 21grpidcl 15581 . . . . . 6  |-  ( G  e.  Grp  ->  ( 0g `  G )  e.  D )
4643, 44, 453syl 20 . . . . 5  |-  ( N  e.  NN  ->  ( 0g `  G )  e.  D )
4746snssd 4033 . . . 4  |-  ( N  e.  NN  ->  { ( 0g `  G ) }  C_  D )
48 phicl 13859 . . . . . 6  |-  ( N  e.  NN  ->  ( phi `  N )  e.  NN )
4948nncnd 10353 . . . . 5  |-  ( N  e.  NN  ->  ( phi `  N )  e.  CC )
5049ralrimivw 2815 . . . 4  |-  ( N  e.  NN  ->  A. x  e.  { ( 0g `  G ) }  ( phi `  N )  e.  CC )
516olcd 393 . . . 4  |-  ( N  e.  NN  ->  ( D  C_  ( ZZ>= `  0
)  \/  D  e. 
Fin ) )
52 sumss2 13218 . . . 4  |-  ( ( ( { ( 0g
`  G ) } 
C_  D  /\  A. x  e.  { ( 0g `  G ) }  ( phi `  N
)  e.  CC )  /\  ( D  C_  ( ZZ>= `  0 )  \/  D  e.  Fin ) )  ->  sum_ x  e.  { ( 0g `  G ) }  ( phi `  N )  = 
sum_ x  e.  D  if ( x  e.  {
( 0g `  G
) } ,  ( phi `  N ) ,  0 ) )
5347, 50, 51, 52syl21anc 1217 . . 3  |-  ( N  e.  NN  ->  sum_ x  e.  { ( 0g `  G ) }  ( phi `  N )  = 
sum_ x  e.  D  if ( x  e.  {
( 0g `  G
) } ,  ( phi `  N ) ,  0 ) )
5429, 42, 533eqtr4d 2485 . 2  |-  ( N  e.  NN  ->  sum_ a  e.  { ( 1r `  (ℤ/n `  N ) ) }  ( # `  D
)  =  sum_ x  e.  { ( 0g `  G ) }  ( phi `  N ) )
55 eqidd 2444 . . . 4  |-  ( a  =  ( 1r `  (ℤ/n `  N ) )  -> 
( # `  D )  =  ( # `  D
) )
5655sumsn 13232 . . 3  |-  ( ( ( 1r `  (ℤ/n `  N
) )  e.  (
Base `  (ℤ/n `  N ) )  /\  ( # `  D )  e.  CC )  ->  sum_ a  e.  { ( 1r `  (ℤ/n `  N
) ) }  ( # `
 D )  =  ( # `  D
) )
5734, 38, 56syl2anc 661 . 2  |-  ( N  e.  NN  ->  sum_ a  e.  { ( 1r `  (ℤ/n `  N ) ) }  ( # `  D
)  =  ( # `  D ) )
58 eqidd 2444 . . . 4  |-  ( x  =  ( 0g `  G )  ->  ( phi `  N )  =  ( phi `  N
) )
5958sumsn 13232 . . 3  |-  ( ( ( 0g `  G
)  e.  D  /\  ( phi `  N )  e.  CC )  ->  sum_ x  e.  { ( 0g `  G ) }  ( phi `  N )  =  ( phi `  N ) )
6046, 49, 59syl2anc 661 . 2  |-  ( N  e.  NN  ->  sum_ x  e.  { ( 0g `  G ) }  ( phi `  N )  =  ( phi `  N
) )
6154, 57, 603eqtr3d 2483 1  |-  ( N  e.  NN  ->  ( # `
 D )  =  ( phi `  N
) )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    <-> wb 184    \/ wo 368    /\ wa 369    = wceq 1369    e. wcel 1756   A.wral 2730    C_ wss 3343   ifcif 3806   {csn 3892   ` cfv 5433   Fincfn 7325   CCcc 9295   0cc0 9297   NNcn 10337   NN0cn0 10594   ZZ>=cuz 10876   #chash 12118   sum_csu 13178   phicphi 13854   Basecbs 14189   0gc0g 14393   Grpcgrp 15425   Abelcabel 16293   1rcur 16618   Ringcrg 16660   CRingccrg 16661  ℤ/nczn 17949  DChrcdchr 22586
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1591  ax-4 1602  ax-5 1670  ax-6 1708  ax-7 1728  ax-8 1758  ax-9 1760  ax-10 1775  ax-11 1780  ax-12 1792  ax-13 1943  ax-ext 2423  ax-rep 4418  ax-sep 4428  ax-nul 4436  ax-pow 4485  ax-pr 4546  ax-un 6387  ax-inf2 7862  ax-cnex 9353  ax-resscn 9354  ax-1cn 9355  ax-icn 9356  ax-addcl 9357  ax-addrcl 9358  ax-mulcl 9359  ax-mulrcl 9360  ax-mulcom 9361  ax-addass 9362  ax-mulass 9363  ax-distr 9364  ax-i2m1 9365  ax-1ne0 9366  ax-1rid 9367  ax-rnegex 9368  ax-rrecex 9369  ax-cnre 9370  ax-pre-lttri 9371  ax-pre-lttrn 9372  ax-pre-ltadd 9373  ax-pre-mulgt0 9374  ax-pre-sup 9375  ax-addf 9376  ax-mulf 9377
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 966  df-3an 967  df-tru 1372  df-fal 1375  df-ex 1587  df-nf 1590  df-sb 1701  df-eu 2257  df-mo 2258  df-clab 2430  df-cleq 2436  df-clel 2439  df-nfc 2577  df-ne 2622  df-nel 2623  df-ral 2735  df-rex 2736  df-reu 2737  df-rmo 2738  df-rab 2739  df-v 2989  df-sbc 3202  df-csb 3304  df-dif 3346  df-un 3348  df-in 3350  df-ss 3357  df-pss 3359  df-nul 3653  df-if 3807  df-pw 3877  df-sn 3893  df-pr 3895  df-tp 3897  df-op 3899  df-uni 4107  df-int 4144  df-iun 4188  df-iin 4189  df-disj 4278  df-br 4308  df-opab 4366  df-mpt 4367  df-tr 4401  df-eprel 4647  df-id 4651  df-po 4656  df-so 4657  df-fr 4694  df-se 4695  df-we 4696  df-ord 4737  df-on 4738  df-lim 4739  df-suc 4740  df-xp 4861  df-rel 4862  df-cnv 4863  df-co 4864  df-dm 4865  df-rn 4866  df-res 4867  df-ima 4868  df-iota 5396  df-fun 5435  df-fn 5436  df-f 5437  df-f1 5438  df-fo 5439  df-f1o 5440  df-fv 5441  df-isom 5442  df-riota 6067  df-ov 6109  df-oprab 6110  df-mpt2 6111  df-of 6335  df-rpss 6375  df-om 6492  df-1st 6592  df-2nd 6593  df-supp 6706  df-tpos 6760  df-recs 6847  df-rdg 6881  df-1o 6935  df-2o 6936  df-oadd 6939  df-omul 6940  df-er 7116  df-ec 7118  df-qs 7122  df-map 7231  df-pm 7232  df-ixp 7279  df-en 7326  df-dom 7327  df-sdom 7328  df-fin 7329  df-fsupp 7636  df-fi 7676  df-sup 7706  df-oi 7739  df-card 8124  df-acn 8127  df-cda 8352  df-pnf 9435  df-mnf 9436  df-xr 9437  df-ltxr 9438  df-le 9439  df-sub 9612  df-neg 9613  df-div 10009  df-nn 10338  df-2 10395  df-3 10396  df-4 10397  df-5 10398  df-6 10399  df-7 10400  df-8 10401  df-9 10402  df-10 10403  df-n0 10595  df-z 10662  df-dec 10771  df-uz 10877  df-q 10969  df-rp 11007  df-xneg 11104  df-xadd 11105  df-xmul 11106  df-ioo 11319  df-ioc 11320  df-ico 11321  df-icc 11322  df-fz 11453  df-fzo 11564  df-fl 11657  df-mod 11724  df-seq 11822  df-exp 11881  df-fac 12067  df-bc 12094  df-hash 12119  df-word 12244  df-concat 12246  df-s1 12247  df-shft 12571  df-cj 12603  df-re 12604  df-im 12605  df-sqr 12739  df-abs 12740  df-limsup 12964  df-clim 12981  df-rlim 12982  df-sum 13179  df-ef 13368  df-sin 13370  df-cos 13371  df-pi 13373  df-dvds 13551  df-gcd 13706  df-prm 13779  df-phi 13856  df-pc 13919  df-struct 14191  df-ndx 14192  df-slot 14193  df-base 14194  df-sets 14195  df-ress 14196  df-plusg 14266  df-mulr 14267  df-starv 14268  df-sca 14269  df-vsca 14270  df-ip 14271  df-tset 14272  df-ple 14273  df-ds 14275  df-unif 14276  df-hom 14277  df-cco 14278  df-rest 14376  df-topn 14377  df-0g 14395  df-gsum 14396  df-topgen 14397  df-pt 14398  df-prds 14401  df-xrs 14455  df-qtop 14460  df-imas 14461  df-divs 14462  df-xps 14463  df-mre 14539  df-mrc 14540  df-acs 14542  df-mnd 15430  df-mhm 15479  df-submnd 15480  df-grp 15560  df-minusg 15561  df-sbg 15562  df-mulg 15563  df-subg 15693  df-nsg 15694  df-eqg 15695  df-ghm 15760  df-gim 15802  df-ga 15823  df-cntz 15850  df-oppg 15876  df-od 16047  df-gex 16048  df-pgp 16049  df-lsm 16150  df-pj1 16151  df-cmn 16294  df-abl 16295  df-cyg 16370  df-dprd 16492  df-dpj 16493  df-mgp 16607  df-ur 16619  df-rng 16662  df-cring 16663  df-oppr 16730  df-dvdsr 16748  df-unit 16749  df-invr 16779  df-rnghom 16821  df-subrg 16878  df-lmod 16965  df-lss 17029  df-lsp 17068  df-sra 17268  df-rgmod 17269  df-lidl 17270  df-rsp 17271  df-2idl 17329  df-psmet 17824  df-xmet 17825  df-met 17826  df-bl 17827  df-mopn 17828  df-fbas 17829  df-fg 17830  df-cnfld 17834  df-zring 17899  df-zrh 17950  df-zn 17953  df-top 18518  df-bases 18520  df-topon 18521  df-topsp 18522  df-cld 18638  df-ntr 18639  df-cls 18640  df-nei 18717  df-lp 18755  df-perf 18756  df-cn 18846  df-cnp 18847  df-haus 18934  df-tx 19150  df-hmeo 19343  df-fil 19434  df-fm 19526  df-flim 19527  df-flf 19528  df-xms 19910  df-ms 19911  df-tms 19912  df-cncf 20469  df-0p 21163  df-limc 21356  df-dv 21357  df-ply 21671  df-idp 21672  df-coe 21673  df-dgr 21674  df-quot 21772  df-log 22023  df-cxp 22024  df-dchr 22587
This theorem is referenced by:  sumdchr  22626
  Copyright terms: Public domain W3C validator