Metamath Proof Explorer


Theorem dchrelbas4

Description: A Dirichlet character is a monoid homomorphism from the multiplicative monoid on Z/nZ to the multiplicative monoid of CC , which is zero off the group of units of Z/nZ . (Contributed by Mario Carneiro, 18-Apr-2016)

Ref Expression
Hypotheses dchrmhm.g 𝐺 = ( DChr ‘ 𝑁 )
dchrmhm.z 𝑍 = ( ℤ/nℤ ‘ 𝑁 )
dchrmhm.b 𝐷 = ( Base ‘ 𝐺 )
dchrelbas4.l 𝐿 = ( ℤRHom ‘ 𝑍 )
Assertion dchrelbas4 ( 𝑋𝐷 ↔ ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ∧ ∀ 𝑥 ∈ ℤ ( 1 < ( 𝑥 gcd 𝑁 ) → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) ) )

Proof

Step Hyp Ref Expression
1 dchrmhm.g 𝐺 = ( DChr ‘ 𝑁 )
2 dchrmhm.z 𝑍 = ( ℤ/nℤ ‘ 𝑁 )
3 dchrmhm.b 𝐷 = ( Base ‘ 𝐺 )
4 dchrelbas4.l 𝐿 = ( ℤRHom ‘ 𝑍 )
5 1 3 dchrrcl ( 𝑋𝐷𝑁 ∈ ℕ )
6 eqid ( Base ‘ 𝑍 ) = ( Base ‘ 𝑍 )
7 eqid ( Unit ‘ 𝑍 ) = ( Unit ‘ 𝑍 )
8 id ( 𝑁 ∈ ℕ → 𝑁 ∈ ℕ )
9 1 2 6 7 8 3 dchrelbas2 ( 𝑁 ∈ ℕ → ( 𝑋𝐷 ↔ ( 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ∧ ∀ 𝑦 ∈ ( Base ‘ 𝑍 ) ( ( 𝑋𝑦 ) ≠ 0 → 𝑦 ∈ ( Unit ‘ 𝑍 ) ) ) ) )
10 nnnn0 ( 𝑁 ∈ ℕ → 𝑁 ∈ ℕ0 )
11 10 adantr ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) → 𝑁 ∈ ℕ0 )
12 2 6 4 znzrhfo ( 𝑁 ∈ ℕ0𝐿 : ℤ –onto→ ( Base ‘ 𝑍 ) )
13 fveq2 ( ( 𝐿𝑥 ) = 𝑦 → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = ( 𝑋𝑦 ) )
14 13 neeq1d ( ( 𝐿𝑥 ) = 𝑦 → ( ( 𝑋 ‘ ( 𝐿𝑥 ) ) ≠ 0 ↔ ( 𝑋𝑦 ) ≠ 0 ) )
15 eleq1 ( ( 𝐿𝑥 ) = 𝑦 → ( ( 𝐿𝑥 ) ∈ ( Unit ‘ 𝑍 ) ↔ 𝑦 ∈ ( Unit ‘ 𝑍 ) ) )
16 14 15 imbi12d ( ( 𝐿𝑥 ) = 𝑦 → ( ( ( 𝑋 ‘ ( 𝐿𝑥 ) ) ≠ 0 → ( 𝐿𝑥 ) ∈ ( Unit ‘ 𝑍 ) ) ↔ ( ( 𝑋𝑦 ) ≠ 0 → 𝑦 ∈ ( Unit ‘ 𝑍 ) ) ) )
17 16 cbvfo ( 𝐿 : ℤ –onto→ ( Base ‘ 𝑍 ) → ( ∀ 𝑥 ∈ ℤ ( ( 𝑋 ‘ ( 𝐿𝑥 ) ) ≠ 0 → ( 𝐿𝑥 ) ∈ ( Unit ‘ 𝑍 ) ) ↔ ∀ 𝑦 ∈ ( Base ‘ 𝑍 ) ( ( 𝑋𝑦 ) ≠ 0 → 𝑦 ∈ ( Unit ‘ 𝑍 ) ) ) )
18 11 12 17 3syl ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) → ( ∀ 𝑥 ∈ ℤ ( ( 𝑋 ‘ ( 𝐿𝑥 ) ) ≠ 0 → ( 𝐿𝑥 ) ∈ ( Unit ‘ 𝑍 ) ) ↔ ∀ 𝑦 ∈ ( Base ‘ 𝑍 ) ( ( 𝑋𝑦 ) ≠ 0 → 𝑦 ∈ ( Unit ‘ 𝑍 ) ) ) )
19 df-ne ( ( 𝑋 ‘ ( 𝐿𝑥 ) ) ≠ 0 ↔ ¬ ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 )
20 19 a1i ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → ( ( 𝑋 ‘ ( 𝐿𝑥 ) ) ≠ 0 ↔ ¬ ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) )
21 2 7 4 znunit ( ( 𝑁 ∈ ℕ0𝑥 ∈ ℤ ) → ( ( 𝐿𝑥 ) ∈ ( Unit ‘ 𝑍 ) ↔ ( 𝑥 gcd 𝑁 ) = 1 ) )
22 11 21 sylan ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → ( ( 𝐿𝑥 ) ∈ ( Unit ‘ 𝑍 ) ↔ ( 𝑥 gcd 𝑁 ) = 1 ) )
23 1red ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → 1 ∈ ℝ )
24 simpr ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → 𝑥 ∈ ℤ )
25 simpll ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → 𝑁 ∈ ℕ )
26 25 nnzd ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → 𝑁 ∈ ℤ )
27 nnne0 ( 𝑁 ∈ ℕ → 𝑁 ≠ 0 )
28 simpr ( ( 𝑥 = 0 ∧ 𝑁 = 0 ) → 𝑁 = 0 )
29 28 necon3ai ( 𝑁 ≠ 0 → ¬ ( 𝑥 = 0 ∧ 𝑁 = 0 ) )
30 25 27 29 3syl ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → ¬ ( 𝑥 = 0 ∧ 𝑁 = 0 ) )
31 gcdn0cl ( ( ( 𝑥 ∈ ℤ ∧ 𝑁 ∈ ℤ ) ∧ ¬ ( 𝑥 = 0 ∧ 𝑁 = 0 ) ) → ( 𝑥 gcd 𝑁 ) ∈ ℕ )
32 24 26 30 31 syl21anc ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → ( 𝑥 gcd 𝑁 ) ∈ ℕ )
33 32 nnred ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → ( 𝑥 gcd 𝑁 ) ∈ ℝ )
34 32 nnge1d ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → 1 ≤ ( 𝑥 gcd 𝑁 ) )
35 23 33 34 leltned ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → ( 1 < ( 𝑥 gcd 𝑁 ) ↔ ( 𝑥 gcd 𝑁 ) ≠ 1 ) )
36 35 necon2bbid ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → ( ( 𝑥 gcd 𝑁 ) = 1 ↔ ¬ 1 < ( 𝑥 gcd 𝑁 ) ) )
37 22 36 bitrd ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → ( ( 𝐿𝑥 ) ∈ ( Unit ‘ 𝑍 ) ↔ ¬ 1 < ( 𝑥 gcd 𝑁 ) ) )
38 20 37 imbi12d ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → ( ( ( 𝑋 ‘ ( 𝐿𝑥 ) ) ≠ 0 → ( 𝐿𝑥 ) ∈ ( Unit ‘ 𝑍 ) ) ↔ ( ¬ ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 → ¬ 1 < ( 𝑥 gcd 𝑁 ) ) ) )
39 con34b ( ( 1 < ( 𝑥 gcd 𝑁 ) → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) ↔ ( ¬ ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 → ¬ 1 < ( 𝑥 gcd 𝑁 ) ) )
40 38 39 bitr4di ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) ∧ 𝑥 ∈ ℤ ) → ( ( ( 𝑋 ‘ ( 𝐿𝑥 ) ) ≠ 0 → ( 𝐿𝑥 ) ∈ ( Unit ‘ 𝑍 ) ) ↔ ( 1 < ( 𝑥 gcd 𝑁 ) → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) ) )
41 40 ralbidva ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) → ( ∀ 𝑥 ∈ ℤ ( ( 𝑋 ‘ ( 𝐿𝑥 ) ) ≠ 0 → ( 𝐿𝑥 ) ∈ ( Unit ‘ 𝑍 ) ) ↔ ∀ 𝑥 ∈ ℤ ( 1 < ( 𝑥 gcd 𝑁 ) → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) ) )
42 18 41 bitr3d ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ) → ( ∀ 𝑦 ∈ ( Base ‘ 𝑍 ) ( ( 𝑋𝑦 ) ≠ 0 → 𝑦 ∈ ( Unit ‘ 𝑍 ) ) ↔ ∀ 𝑥 ∈ ℤ ( 1 < ( 𝑥 gcd 𝑁 ) → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) ) )
43 42 pm5.32da ( 𝑁 ∈ ℕ → ( ( 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ∧ ∀ 𝑦 ∈ ( Base ‘ 𝑍 ) ( ( 𝑋𝑦 ) ≠ 0 → 𝑦 ∈ ( Unit ‘ 𝑍 ) ) ) ↔ ( 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ∧ ∀ 𝑥 ∈ ℤ ( 1 < ( 𝑥 gcd 𝑁 ) → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) ) ) )
44 9 43 bitrd ( 𝑁 ∈ ℕ → ( 𝑋𝐷 ↔ ( 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ∧ ∀ 𝑥 ∈ ℤ ( 1 < ( 𝑥 gcd 𝑁 ) → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) ) ) )
45 5 44 biadanii ( 𝑋𝐷 ↔ ( 𝑁 ∈ ℕ ∧ ( 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ∧ ∀ 𝑥 ∈ ℤ ( 1 < ( 𝑥 gcd 𝑁 ) → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) ) ) )
46 3anass ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ∧ ∀ 𝑥 ∈ ℤ ( 1 < ( 𝑥 gcd 𝑁 ) → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) ) ↔ ( 𝑁 ∈ ℕ ∧ ( 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ∧ ∀ 𝑥 ∈ ℤ ( 1 < ( 𝑥 gcd 𝑁 ) → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) ) ) )
47 45 46 bitr4i ( 𝑋𝐷 ↔ ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ( ( mulGrp ‘ 𝑍 ) MndHom ( mulGrp ‘ ℂfld ) ) ∧ ∀ 𝑥 ∈ ℤ ( 1 < ( 𝑥 gcd 𝑁 ) → ( 𝑋 ‘ ( 𝐿𝑥 ) ) = 0 ) ) )