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

Theorem gzrngunit 17722
Description: The units on  ZZ [
_i ] are the gaussian integers with norm  1. (Contributed by Mario Carneiro, 4-Dec-2014.)
Hypothesis
Ref Expression
gzrng.1  |-  Z  =  (flds  ZZ[_i] )
Assertion
Ref Expression
gzrngunit  |-  ( A  e.  (Unit `  Z
)  <->  ( A  e.  ZZ[_i]  /\  ( abs `  A
)  =  1 ) )

Proof of Theorem gzrngunit
StepHypRef Expression
1 gzsubrg 17711 . . . . 5  |-  ZZ[_i]  e.  (SubRing ` fld )
2 gzrng.1 . . . . . 6  |-  Z  =  (flds  ZZ[_i] )
32subrgbas 16798 . . . . 5  |-  ( ZZ[_i]  e.  (SubRing ` fld )  ->  ZZ[_i]  =  ( Base `  Z ) )
41, 3ax-mp 5 . . . 4  |-  ZZ[_i]  =  ( Base `  Z )
5 eqid 2433 . . . 4  |-  (Unit `  Z )  =  (Unit `  Z )
64, 5unitcl 16685 . . 3  |-  ( A  e.  (Unit `  Z
)  ->  A  e.  ZZ[_i] )
7 eqid 2433 . . . . . . . . . . . 12  |-  ( invr ` fld )  =  ( invr ` fld )
8 eqid 2433 . . . . . . . . . . . 12  |-  ( invr `  Z )  =  (
invr `  Z )
92, 7, 5, 8subrginv 16805 . . . . . . . . . . 11  |-  ( ( ZZ[_i] 
e.  (SubRing ` fld )  /\  A  e.  (Unit `  Z )
)  ->  ( ( invr ` fld ) `  A )  =  ( ( invr `  Z ) `  A
) )
101, 9mpan 663 . . . . . . . . . 10  |-  ( A  e.  (Unit `  Z
)  ->  ( ( invr ` fld ) `  A )  =  ( ( invr `  Z ) `  A
) )
11 gzcn 13976 . . . . . . . . . . . 12  |-  ( A  e.  ZZ[_i]  ->  A  e.  CC )
126, 11syl 16 . . . . . . . . . . 11  |-  ( A  e.  (Unit `  Z
)  ->  A  e.  CC )
13 0red 9375 . . . . . . . . . . . . . 14  |-  ( A  e.  (Unit `  Z
)  ->  0  e.  RR )
14 1re 9373 . . . . . . . . . . . . . . 15  |-  1  e.  RR
1514a1i 11 . . . . . . . . . . . . . 14  |-  ( A  e.  (Unit `  Z
)  ->  1  e.  RR )
1612abscld 12906 . . . . . . . . . . . . . 14  |-  ( A  e.  (Unit `  Z
)  ->  ( abs `  A )  e.  RR )
17 0lt1 9850 . . . . . . . . . . . . . . 15  |-  0  <  1
1817a1i 11 . . . . . . . . . . . . . 14  |-  ( A  e.  (Unit `  Z
)  ->  0  <  1 )
192gzrngunitlem 17721 . . . . . . . . . . . . . 14  |-  ( A  e.  (Unit `  Z
)  ->  1  <_  ( abs `  A ) )
2013, 15, 16, 18, 19ltletrd 9519 . . . . . . . . . . . . 13  |-  ( A  e.  (Unit `  Z
)  ->  0  <  ( abs `  A ) )
2120gt0ne0d 9892 . . . . . . . . . . . 12  |-  ( A  e.  (Unit `  Z
)  ->  ( abs `  A )  =/=  0
)
2212abs00ad 12763 . . . . . . . . . . . . 13  |-  ( A  e.  (Unit `  Z
)  ->  ( ( abs `  A )  =  0  <->  A  =  0
) )
2322necon3bid 2633 . . . . . . . . . . . 12  |-  ( A  e.  (Unit `  Z
)  ->  ( ( abs `  A )  =/=  0  <->  A  =/=  0
) )
2421, 23mpbid 210 . . . . . . . . . . 11  |-  ( A  e.  (Unit `  Z
)  ->  A  =/=  0 )
25 cnfldinv 17691 . . . . . . . . . . 11  |-  ( ( A  e.  CC  /\  A  =/=  0 )  -> 
( ( invr ` fld ) `  A )  =  ( 1  /  A ) )
2612, 24, 25syl2anc 654 . . . . . . . . . 10  |-  ( A  e.  (Unit `  Z
)  ->  ( ( invr ` fld ) `  A )  =  ( 1  /  A ) )
2710, 26eqtr3d 2467 . . . . . . . . 9  |-  ( A  e.  (Unit `  Z
)  ->  ( ( invr `  Z ) `  A )  =  ( 1  /  A ) )
282subrgrng 16792 . . . . . . . . . . 11  |-  ( ZZ[_i]  e.  (SubRing ` fld )  ->  Z  e.  Ring )
291, 28ax-mp 5 . . . . . . . . . 10  |-  Z  e. 
Ring
305, 8unitinvcl 16700 . . . . . . . . . 10  |-  ( ( Z  e.  Ring  /\  A  e.  (Unit `  Z )
)  ->  ( ( invr `  Z ) `  A )  e.  (Unit `  Z ) )
3129, 30mpan 663 . . . . . . . . 9  |-  ( A  e.  (Unit `  Z
)  ->  ( ( invr `  Z ) `  A )  e.  (Unit `  Z ) )
3227, 31eqeltrrd 2508 . . . . . . . 8  |-  ( A  e.  (Unit `  Z
)  ->  ( 1  /  A )  e.  (Unit `  Z )
)
332gzrngunitlem 17721 . . . . . . . 8  |-  ( ( 1  /  A )  e.  (Unit `  Z
)  ->  1  <_  ( abs `  ( 1  /  A ) ) )
3432, 33syl 16 . . . . . . 7  |-  ( A  e.  (Unit `  Z
)  ->  1  <_  ( abs `  ( 1  /  A ) ) )
35 ax-1cn 9328 . . . . . . . . 9  |-  1  e.  CC
3635a1i 11 . . . . . . . 8  |-  ( A  e.  (Unit `  Z
)  ->  1  e.  CC )
3736, 12, 24absdivd 12925 . . . . . . 7  |-  ( A  e.  (Unit `  Z
)  ->  ( abs `  ( 1  /  A
) )  =  ( ( abs `  1
)  /  ( abs `  A ) ) )
3834, 37breqtrd 4304 . . . . . 6  |-  ( A  e.  (Unit `  Z
)  ->  1  <_  ( ( abs `  1
)  /  ( abs `  A ) ) )
39 1div1e1 10012 . . . . . 6  |-  ( 1  /  1 )  =  1
40 abs1 12770 . . . . . . . 8  |-  ( abs `  1 )  =  1
4140eqcomi 2437 . . . . . . 7  |-  1  =  ( abs `  1
)
4241oveq1i 6090 . . . . . 6  |-  ( 1  /  ( abs `  A
) )  =  ( ( abs `  1
)  /  ( abs `  A ) )
4338, 39, 423brtr4g 4312 . . . . 5  |-  ( A  e.  (Unit `  Z
)  ->  ( 1  /  1 )  <_ 
( 1  /  ( abs `  A ) ) )
44 lerec 10202 . . . . . 6  |-  ( ( ( ( abs `  A
)  e.  RR  /\  0  <  ( abs `  A
) )  /\  (
1  e.  RR  /\  0  <  1 ) )  ->  ( ( abs `  A )  <_  1  <->  ( 1  /  1 )  <_  ( 1  / 
( abs `  A
) ) ) )
4516, 20, 15, 18, 44syl22anc 1212 . . . . 5  |-  ( A  e.  (Unit `  Z
)  ->  ( ( abs `  A )  <_ 
1  <->  ( 1  / 
1 )  <_  (
1  /  ( abs `  A ) ) ) )
4643, 45mpbird 232 . . . 4  |-  ( A  e.  (Unit `  Z
)  ->  ( abs `  A )  <_  1
)
47 letri3 9448 . . . . 5  |-  ( ( ( abs `  A
)  e.  RR  /\  1  e.  RR )  ->  ( ( abs `  A
)  =  1  <->  (
( abs `  A
)  <_  1  /\  1  <_  ( abs `  A
) ) ) )
4816, 14, 47sylancl 655 . . . 4  |-  ( A  e.  (Unit `  Z
)  ->  ( ( abs `  A )  =  1  <->  ( ( abs `  A )  <_  1  /\  1  <_  ( abs `  A ) ) ) )
4946, 19, 48mpbir2and 906 . . 3  |-  ( A  e.  (Unit `  Z
)  ->  ( abs `  A )  =  1 )
506, 49jca 529 . 2  |-  ( A  e.  (Unit `  Z
)  ->  ( A  e.  ZZ[_i]  /\  ( abs `  A
)  =  1 ) )
5111adantr 462 . . . 4  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  A  e.  CC )
52 simpr 458 . . . . . 6  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  ( abs `  A )  =  1 )
53 ax-1ne0 9339 . . . . . . 7  |-  1  =/=  0
5453a1i 11 . . . . . 6  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  1  =/=  0 )
5552, 54eqnetrd 2616 . . . . 5  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  ( abs `  A )  =/=  0 )
56 fveq2 5679 . . . . . . 7  |-  ( A  =  0  ->  ( abs `  A )  =  ( abs `  0
) )
57 abs0 12758 . . . . . . 7  |-  ( abs `  0 )  =  0
5856, 57syl6eq 2481 . . . . . 6  |-  ( A  =  0  ->  ( abs `  A )  =  0 )
5958necon3i 2640 . . . . 5  |-  ( ( abs `  A )  =/=  0  ->  A  =/=  0 )
6055, 59syl 16 . . . 4  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  A  =/=  0 )
61 eldifsn 3988 . . . 4  |-  ( A  e.  ( CC  \  { 0 } )  <-> 
( A  e.  CC  /\  A  =/=  0 ) )
6251, 60, 61sylanbrc 657 . . 3  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  A  e.  ( CC  \  {
0 } ) )
63 simpl 454 . . 3  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  A  e.  ZZ[_i]
)
6451, 60, 25syl2anc 654 . . . . 5  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  (
( invr ` fld ) `  A )  =  ( 1  /  A ) )
6551absvalsqd 12912 . . . . . . 7  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  (
( abs `  A
) ^ 2 )  =  ( A  x.  ( * `  A
) ) )
6652oveq1d 6095 . . . . . . . 8  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  (
( abs `  A
) ^ 2 )  =  ( 1 ^ 2 ) )
67 sq1 11944 . . . . . . . 8  |-  ( 1 ^ 2 )  =  1
6866, 67syl6eq 2481 . . . . . . 7  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  (
( abs `  A
) ^ 2 )  =  1 )
6965, 68eqtr3d 2467 . . . . . 6  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  ( A  x.  ( * `  A ) )  =  1 )
7069oveq1d 6095 . . . . 5  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  (
( A  x.  (
* `  A )
)  /  A )  =  ( 1  /  A ) )
7151cjcld 12669 . . . . . 6  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  (
* `  A )  e.  CC )
7271, 51, 60divcan3d 10100 . . . . 5  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  (
( A  x.  (
* `  A )
)  /  A )  =  ( * `  A ) )
7364, 70, 723eqtr2d 2471 . . . 4  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  (
( invr ` fld ) `  A )  =  ( * `  A ) )
74 gzcjcl 13980 . . . . 5  |-  ( A  e.  ZZ[_i]  ->  ( * `  A )  e.  ZZ[_i] )
7574adantr 462 . . . 4  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  (
* `  A )  e.  ZZ[_i]
)
7673, 75eqeltrd 2507 . . 3  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  (
( invr ` fld ) `  A )  e.  ZZ[_i] )
77 cnfldbas 17666 . . . . . 6  |-  CC  =  ( Base ` fld )
78 cnfld0 17684 . . . . . 6  |-  0  =  ( 0g ` fld )
79 cndrng 17689 . . . . . 6  |-fld  e.  DivRing
8077, 78, 79drngui 16762 . . . . 5  |-  ( CC 
\  { 0 } )  =  (Unit ` fld )
812, 80, 5, 7subrgunit 16807 . . . 4  |-  ( ZZ[_i]  e.  (SubRing ` fld )  ->  ( A  e.  (Unit `  Z )  <->  ( A  e.  ( CC 
\  { 0 } )  /\  A  e.  ZZ[_i]  /\  ( ( invr ` fld ) `  A )  e.  ZZ[_i] ) ) )
821, 81ax-mp 5 . . 3  |-  ( A  e.  (Unit `  Z
)  <->  ( A  e.  ( CC  \  {
0 } )  /\  A  e.  ZZ[_i]  /\  ( (
invr ` fld ) `  A )  e.  ZZ[_i] ) )
8362, 63, 76, 82syl3anbrc 1165 . 2  |-  ( ( A  e.  ZZ[_i]  /\  ( abs `  A )  =  1 )  ->  A  e.  (Unit `  Z )
)
8450, 83impbii 188 1  |-  ( A  e.  (Unit `  Z
)  <->  ( A  e.  ZZ[_i]  /\  ( abs `  A
)  =  1 ) )
Colors of variables: wff setvar class
Syntax hints:    <-> wb 184    /\ wa 369    /\ w3a 958    = wceq 1362    e. wcel 1755    =/= wne 2596    \ cdif 3313   {csn 3865   class class class wbr 4280   ` cfv 5406  (class class class)co 6080   CCcc 9268   RRcr 9269   0cc0 9270   1c1 9271    x. cmul 9275    < clt 9406    <_ cle 9407    / cdiv 9981   2c2 10359   ^cexp 11849   *ccj 12569   abscabs 12707   ZZ[_i]cgz 13973   Basecbs 14157   ↾s cress 14158   Ringcrg 16577  Unitcui 16665   invrcinvr 16697  SubRingcsubrg 16785  ℂfldccnfld 17662
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1594  ax-4 1605  ax-5 1669  ax-6 1707  ax-7 1727  ax-8 1757  ax-9 1759  ax-10 1774  ax-11 1779  ax-12 1791  ax-13 1942  ax-ext 2414  ax-rep 4391  ax-sep 4401  ax-nul 4409  ax-pow 4458  ax-pr 4519  ax-un 6361  ax-cnex 9326  ax-resscn 9327  ax-1cn 9328  ax-icn 9329  ax-addcl 9330  ax-addrcl 9331  ax-mulcl 9332  ax-mulrcl 9333  ax-mulcom 9334  ax-addass 9335  ax-mulass 9336  ax-distr 9337  ax-i2m1 9338  ax-1ne0 9339  ax-1rid 9340  ax-rnegex 9341  ax-rrecex 9342  ax-cnre 9343  ax-pre-lttri 9344  ax-pre-lttrn 9345  ax-pre-ltadd 9346  ax-pre-mulgt0 9347  ax-pre-sup 9348  ax-addf 9349  ax-mulf 9350
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 959  df-3an 960  df-tru 1365  df-ex 1590  df-nf 1593  df-sb 1700  df-eu 2258  df-mo 2259  df-clab 2420  df-cleq 2426  df-clel 2429  df-nfc 2558  df-ne 2598  df-nel 2599  df-ral 2710  df-rex 2711  df-reu 2712  df-rmo 2713  df-rab 2714  df-v 2964  df-sbc 3176  df-csb 3277  df-dif 3319  df-un 3321  df-in 3323  df-ss 3330  df-pss 3332  df-nul 3626  df-if 3780  df-pw 3850  df-sn 3866  df-pr 3868  df-tp 3870  df-op 3872  df-uni 4080  df-int 4117  df-iun 4161  df-br 4281  df-opab 4339  df-mpt 4340  df-tr 4374  df-eprel 4619  df-id 4623  df-po 4628  df-so 4629  df-fr 4666  df-we 4668  df-ord 4709  df-on 4710  df-lim 4711  df-suc 4712  df-xp 4833  df-rel 4834  df-cnv 4835  df-co 4836  df-dm 4837  df-rn 4838  df-res 4839  df-ima 4840  df-iota 5369  df-fun 5408  df-fn 5409  df-f 5410  df-f1 5411  df-fo 5412  df-f1o 5413  df-fv 5414  df-riota 6039  df-ov 6083  df-oprab 6084  df-mpt2 6085  df-om 6466  df-1st 6566  df-2nd 6567  df-tpos 6734  df-recs 6818  df-rdg 6852  df-1o 6908  df-oadd 6912  df-er 7089  df-en 7299  df-dom 7300  df-sdom 7301  df-fin 7302  df-sup 7679  df-pnf 9408  df-mnf 9409  df-xr 9410  df-ltxr 9411  df-le 9412  df-sub 9585  df-neg 9586  df-div 9982  df-nn 10311  df-2 10368  df-3 10369  df-4 10370  df-5 10371  df-6 10372  df-7 10373  df-8 10374  df-9 10375  df-10 10376  df-n0 10568  df-z 10635  df-dec 10744  df-uz 10850  df-rp 10980  df-fz 11425  df-seq 11791  df-exp 11850  df-cj 12572  df-re 12573  df-im 12574  df-sqr 12708  df-abs 12709  df-gz 13974  df-struct 14159  df-ndx 14160  df-slot 14161  df-base 14162  df-sets 14163  df-ress 14164  df-plusg 14234  df-mulr 14235  df-starv 14236  df-tset 14240  df-ple 14241  df-ds 14243  df-unif 14244  df-0g 14363  df-mnd 15398  df-grp 15525  df-minusg 15526  df-subg 15658  df-cmn 16259  df-mgp 16566  df-rng 16580  df-cring 16581  df-ur 16582  df-oppr 16649  df-dvdsr 16667  df-unit 16668  df-invr 16698  df-dvr 16709  df-drng 16758  df-subrg 16787  df-cnfld 17663
This theorem is referenced by:  zringunit  17756  zrngunit  17757
  Copyright terms: Public domain W3C validator