Metamath Proof Explorer


Theorem gzrngunitlem

Description: Lemma for gzrngunit . (Contributed by Mario Carneiro, 4-Dec-2014)

Ref Expression
Hypothesis gzrng.1 𝑍 = ( ℂflds ℤ[i] )
Assertion gzrngunitlem ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → 1 ≤ ( abs ‘ 𝐴 ) )

Proof

Step Hyp Ref Expression
1 gzrng.1 𝑍 = ( ℂflds ℤ[i] )
2 sq1 ( 1 ↑ 2 ) = 1
3 ax-1ne0 1 ≠ 0
4 gzsubrg ℤ[i] ∈ ( SubRing ‘ ℂfld )
5 1 subrgring ( ℤ[i] ∈ ( SubRing ‘ ℂfld ) → 𝑍 ∈ Ring )
6 eqid ( Unit ‘ 𝑍 ) = ( Unit ‘ 𝑍 )
7 subrgsubg ( ℤ[i] ∈ ( SubRing ‘ ℂfld ) → ℤ[i] ∈ ( SubGrp ‘ ℂfld ) )
8 cnfld0 0 = ( 0g ‘ ℂfld )
9 1 8 subg0 ( ℤ[i] ∈ ( SubGrp ‘ ℂfld ) → 0 = ( 0g𝑍 ) )
10 4 7 9 mp2b 0 = ( 0g𝑍 )
11 cnfld1 1 = ( 1r ‘ ℂfld )
12 1 11 subrg1 ( ℤ[i] ∈ ( SubRing ‘ ℂfld ) → 1 = ( 1r𝑍 ) )
13 4 12 ax-mp 1 = ( 1r𝑍 )
14 6 10 13 0unit ( 𝑍 ∈ Ring → ( 0 ∈ ( Unit ‘ 𝑍 ) ↔ 1 = 0 ) )
15 4 5 14 mp2b ( 0 ∈ ( Unit ‘ 𝑍 ) ↔ 1 = 0 )
16 3 15 nemtbir ¬ 0 ∈ ( Unit ‘ 𝑍 )
17 1 subrgbas ( ℤ[i] ∈ ( SubRing ‘ ℂfld ) → ℤ[i] = ( Base ‘ 𝑍 ) )
18 4 17 ax-mp ℤ[i] = ( Base ‘ 𝑍 )
19 18 6 unitcl ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → 𝐴 ∈ ℤ[i] )
20 gzabssqcl ( 𝐴 ∈ ℤ[i] → ( ( abs ‘ 𝐴 ) ↑ 2 ) ∈ ℕ0 )
21 19 20 syl ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( ( abs ‘ 𝐴 ) ↑ 2 ) ∈ ℕ0 )
22 elnn0 ( ( ( abs ‘ 𝐴 ) ↑ 2 ) ∈ ℕ0 ↔ ( ( ( abs ‘ 𝐴 ) ↑ 2 ) ∈ ℕ ∨ ( ( abs ‘ 𝐴 ) ↑ 2 ) = 0 ) )
23 21 22 sylib ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( ( ( abs ‘ 𝐴 ) ↑ 2 ) ∈ ℕ ∨ ( ( abs ‘ 𝐴 ) ↑ 2 ) = 0 ) )
24 23 ord ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( ¬ ( ( abs ‘ 𝐴 ) ↑ 2 ) ∈ ℕ → ( ( abs ‘ 𝐴 ) ↑ 2 ) = 0 ) )
25 gzcn ( 𝐴 ∈ ℤ[i] → 𝐴 ∈ ℂ )
26 19 25 syl ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → 𝐴 ∈ ℂ )
27 26 abscld ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( abs ‘ 𝐴 ) ∈ ℝ )
28 27 recnd ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( abs ‘ 𝐴 ) ∈ ℂ )
29 sqeq0 ( ( abs ‘ 𝐴 ) ∈ ℂ → ( ( ( abs ‘ 𝐴 ) ↑ 2 ) = 0 ↔ ( abs ‘ 𝐴 ) = 0 ) )
30 28 29 syl ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( ( ( abs ‘ 𝐴 ) ↑ 2 ) = 0 ↔ ( abs ‘ 𝐴 ) = 0 ) )
31 26 abs00ad ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( ( abs ‘ 𝐴 ) = 0 ↔ 𝐴 = 0 ) )
32 eleq1 ( 𝐴 = 0 → ( 𝐴 ∈ ( Unit ‘ 𝑍 ) ↔ 0 ∈ ( Unit ‘ 𝑍 ) ) )
33 32 biimpcd ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( 𝐴 = 0 → 0 ∈ ( Unit ‘ 𝑍 ) ) )
34 31 33 sylbid ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( ( abs ‘ 𝐴 ) = 0 → 0 ∈ ( Unit ‘ 𝑍 ) ) )
35 30 34 sylbid ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( ( ( abs ‘ 𝐴 ) ↑ 2 ) = 0 → 0 ∈ ( Unit ‘ 𝑍 ) ) )
36 24 35 syld ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( ¬ ( ( abs ‘ 𝐴 ) ↑ 2 ) ∈ ℕ → 0 ∈ ( Unit ‘ 𝑍 ) ) )
37 16 36 mt3i ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( ( abs ‘ 𝐴 ) ↑ 2 ) ∈ ℕ )
38 37 nnge1d ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → 1 ≤ ( ( abs ‘ 𝐴 ) ↑ 2 ) )
39 2 38 eqbrtrid ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( 1 ↑ 2 ) ≤ ( ( abs ‘ 𝐴 ) ↑ 2 ) )
40 26 absge0d ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → 0 ≤ ( abs ‘ 𝐴 ) )
41 1re 1 ∈ ℝ
42 0le1 0 ≤ 1
43 le2sq ( ( ( 1 ∈ ℝ ∧ 0 ≤ 1 ) ∧ ( ( abs ‘ 𝐴 ) ∈ ℝ ∧ 0 ≤ ( abs ‘ 𝐴 ) ) ) → ( 1 ≤ ( abs ‘ 𝐴 ) ↔ ( 1 ↑ 2 ) ≤ ( ( abs ‘ 𝐴 ) ↑ 2 ) ) )
44 41 42 43 mpanl12 ( ( ( abs ‘ 𝐴 ) ∈ ℝ ∧ 0 ≤ ( abs ‘ 𝐴 ) ) → ( 1 ≤ ( abs ‘ 𝐴 ) ↔ ( 1 ↑ 2 ) ≤ ( ( abs ‘ 𝐴 ) ↑ 2 ) ) )
45 27 40 44 syl2anc ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → ( 1 ≤ ( abs ‘ 𝐴 ) ↔ ( 1 ↑ 2 ) ≤ ( ( abs ‘ 𝐴 ) ↑ 2 ) ) )
46 39 45 mpbird ( 𝐴 ∈ ( Unit ‘ 𝑍 ) → 1 ≤ ( abs ‘ 𝐴 ) )