This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: The units on ZZ [ _i ] are the gaussian integers with norm 1 . (Contributed by Mario Carneiro, 4-Dec-2014)
| Ref | Expression | ||
|---|---|---|---|
| Hypothesis | gzrng.1 | |- Z = ( CCfld |`s Z[i] ) |
|
| Assertion | gzrngunit | |- ( A e. ( Unit ` Z ) <-> ( A e. Z[i] /\ ( abs ` A ) = 1 ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | gzrng.1 | |- Z = ( CCfld |`s Z[i] ) |
|
| 2 | gzsubrg | |- Z[i] e. ( SubRing ` CCfld ) |
|
| 3 | 1 | subrgbas | |- ( Z[i] e. ( SubRing ` CCfld ) -> Z[i] = ( Base ` Z ) ) |
| 4 | 2 3 | ax-mp | |- Z[i] = ( Base ` Z ) |
| 5 | eqid | |- ( Unit ` Z ) = ( Unit ` Z ) |
|
| 6 | 4 5 | unitcl | |- ( A e. ( Unit ` Z ) -> A e. Z[i] ) |
| 7 | eqid | |- ( invr ` CCfld ) = ( invr ` CCfld ) |
|
| 8 | eqid | |- ( invr ` Z ) = ( invr ` Z ) |
|
| 9 | 1 7 5 8 | subrginv | |- ( ( Z[i] e. ( SubRing ` CCfld ) /\ A e. ( Unit ` Z ) ) -> ( ( invr ` CCfld ) ` A ) = ( ( invr ` Z ) ` A ) ) |
| 10 | 2 9 | mpan | |- ( A e. ( Unit ` Z ) -> ( ( invr ` CCfld ) ` A ) = ( ( invr ` Z ) ` A ) ) |
| 11 | gzcn | |- ( A e. Z[i] -> A e. CC ) |
|
| 12 | 6 11 | syl | |- ( A e. ( Unit ` Z ) -> A e. CC ) |
| 13 | 0red | |- ( A e. ( Unit ` Z ) -> 0 e. RR ) |
|
| 14 | 1re | |- 1 e. RR |
|
| 15 | 14 | a1i | |- ( A e. ( Unit ` Z ) -> 1 e. RR ) |
| 16 | 12 | abscld | |- ( A e. ( Unit ` Z ) -> ( abs ` A ) e. RR ) |
| 17 | 0lt1 | |- 0 < 1 |
|
| 18 | 17 | a1i | |- ( A e. ( Unit ` Z ) -> 0 < 1 ) |
| 19 | 1 | gzrngunitlem | |- ( A e. ( Unit ` Z ) -> 1 <_ ( abs ` A ) ) |
| 20 | 13 15 16 18 19 | ltletrd | |- ( A e. ( Unit ` Z ) -> 0 < ( abs ` A ) ) |
| 21 | 20 | gt0ne0d | |- ( A e. ( Unit ` Z ) -> ( abs ` A ) =/= 0 ) |
| 22 | 12 | abs00ad | |- ( A e. ( Unit ` Z ) -> ( ( abs ` A ) = 0 <-> A = 0 ) ) |
| 23 | 22 | necon3bid | |- ( A e. ( Unit ` Z ) -> ( ( abs ` A ) =/= 0 <-> A =/= 0 ) ) |
| 24 | 21 23 | mpbid | |- ( A e. ( Unit ` Z ) -> A =/= 0 ) |
| 25 | cnfldinv | |- ( ( A e. CC /\ A =/= 0 ) -> ( ( invr ` CCfld ) ` A ) = ( 1 / A ) ) |
|
| 26 | 12 24 25 | syl2anc | |- ( A e. ( Unit ` Z ) -> ( ( invr ` CCfld ) ` A ) = ( 1 / A ) ) |
| 27 | 10 26 | eqtr3d | |- ( A e. ( Unit ` Z ) -> ( ( invr ` Z ) ` A ) = ( 1 / A ) ) |
| 28 | 1 | subrgring | |- ( Z[i] e. ( SubRing ` CCfld ) -> Z e. Ring ) |
| 29 | 2 28 | ax-mp | |- Z e. Ring |
| 30 | 5 8 | unitinvcl | |- ( ( Z e. Ring /\ A e. ( Unit ` Z ) ) -> ( ( invr ` Z ) ` A ) e. ( Unit ` Z ) ) |
| 31 | 29 30 | mpan | |- ( A e. ( Unit ` Z ) -> ( ( invr ` Z ) ` A ) e. ( Unit ` Z ) ) |
| 32 | 27 31 | eqeltrrd | |- ( A e. ( Unit ` Z ) -> ( 1 / A ) e. ( Unit ` Z ) ) |
| 33 | 1 | gzrngunitlem | |- ( ( 1 / A ) e. ( Unit ` Z ) -> 1 <_ ( abs ` ( 1 / A ) ) ) |
| 34 | 32 33 | syl | |- ( A e. ( Unit ` Z ) -> 1 <_ ( abs ` ( 1 / A ) ) ) |
| 35 | 1cnd | |- ( A e. ( Unit ` Z ) -> 1 e. CC ) |
|
| 36 | 35 12 24 | absdivd | |- ( A e. ( Unit ` Z ) -> ( abs ` ( 1 / A ) ) = ( ( abs ` 1 ) / ( abs ` A ) ) ) |
| 37 | 34 36 | breqtrd | |- ( A e. ( Unit ` Z ) -> 1 <_ ( ( abs ` 1 ) / ( abs ` A ) ) ) |
| 38 | 1div1e1 | |- ( 1 / 1 ) = 1 |
|
| 39 | abs1 | |- ( abs ` 1 ) = 1 |
|
| 40 | 39 | eqcomi | |- 1 = ( abs ` 1 ) |
| 41 | 40 | oveq1i | |- ( 1 / ( abs ` A ) ) = ( ( abs ` 1 ) / ( abs ` A ) ) |
| 42 | 37 38 41 | 3brtr4g | |- ( A e. ( Unit ` Z ) -> ( 1 / 1 ) <_ ( 1 / ( abs ` A ) ) ) |
| 43 | lerec | |- ( ( ( ( abs ` A ) e. RR /\ 0 < ( abs ` A ) ) /\ ( 1 e. RR /\ 0 < 1 ) ) -> ( ( abs ` A ) <_ 1 <-> ( 1 / 1 ) <_ ( 1 / ( abs ` A ) ) ) ) |
|
| 44 | 16 20 15 18 43 | syl22anc | |- ( A e. ( Unit ` Z ) -> ( ( abs ` A ) <_ 1 <-> ( 1 / 1 ) <_ ( 1 / ( abs ` A ) ) ) ) |
| 45 | 42 44 | mpbird | |- ( A e. ( Unit ` Z ) -> ( abs ` A ) <_ 1 ) |
| 46 | letri3 | |- ( ( ( abs ` A ) e. RR /\ 1 e. RR ) -> ( ( abs ` A ) = 1 <-> ( ( abs ` A ) <_ 1 /\ 1 <_ ( abs ` A ) ) ) ) |
|
| 47 | 16 14 46 | sylancl | |- ( A e. ( Unit ` Z ) -> ( ( abs ` A ) = 1 <-> ( ( abs ` A ) <_ 1 /\ 1 <_ ( abs ` A ) ) ) ) |
| 48 | 45 19 47 | mpbir2and | |- ( A e. ( Unit ` Z ) -> ( abs ` A ) = 1 ) |
| 49 | 6 48 | jca | |- ( A e. ( Unit ` Z ) -> ( A e. Z[i] /\ ( abs ` A ) = 1 ) ) |
| 50 | 11 | adantr | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> A e. CC ) |
| 51 | simpr | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( abs ` A ) = 1 ) |
|
| 52 | ax-1ne0 | |- 1 =/= 0 |
|
| 53 | 52 | a1i | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> 1 =/= 0 ) |
| 54 | 51 53 | eqnetrd | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( abs ` A ) =/= 0 ) |
| 55 | fveq2 | |- ( A = 0 -> ( abs ` A ) = ( abs ` 0 ) ) |
|
| 56 | abs0 | |- ( abs ` 0 ) = 0 |
|
| 57 | 55 56 | eqtrdi | |- ( A = 0 -> ( abs ` A ) = 0 ) |
| 58 | 57 | necon3i | |- ( ( abs ` A ) =/= 0 -> A =/= 0 ) |
| 59 | 54 58 | syl | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> A =/= 0 ) |
| 60 | eldifsn | |- ( A e. ( CC \ { 0 } ) <-> ( A e. CC /\ A =/= 0 ) ) |
|
| 61 | 50 59 60 | sylanbrc | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> A e. ( CC \ { 0 } ) ) |
| 62 | simpl | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> A e. Z[i] ) |
|
| 63 | 50 59 25 | syl2anc | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( ( invr ` CCfld ) ` A ) = ( 1 / A ) ) |
| 64 | 50 | absvalsqd | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( ( abs ` A ) ^ 2 ) = ( A x. ( * ` A ) ) ) |
| 65 | 51 | oveq1d | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( ( abs ` A ) ^ 2 ) = ( 1 ^ 2 ) ) |
| 66 | sq1 | |- ( 1 ^ 2 ) = 1 |
|
| 67 | 65 66 | eqtrdi | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( ( abs ` A ) ^ 2 ) = 1 ) |
| 68 | 64 67 | eqtr3d | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( A x. ( * ` A ) ) = 1 ) |
| 69 | 68 | oveq1d | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( ( A x. ( * ` A ) ) / A ) = ( 1 / A ) ) |
| 70 | 50 | cjcld | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( * ` A ) e. CC ) |
| 71 | 70 50 59 | divcan3d | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( ( A x. ( * ` A ) ) / A ) = ( * ` A ) ) |
| 72 | 63 69 71 | 3eqtr2d | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( ( invr ` CCfld ) ` A ) = ( * ` A ) ) |
| 73 | gzcjcl | |- ( A e. Z[i] -> ( * ` A ) e. Z[i] ) |
|
| 74 | 73 | adantr | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( * ` A ) e. Z[i] ) |
| 75 | 72 74 | eqeltrd | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> ( ( invr ` CCfld ) ` A ) e. Z[i] ) |
| 76 | cnfldbas | |- CC = ( Base ` CCfld ) |
|
| 77 | cnfld0 | |- 0 = ( 0g ` CCfld ) |
|
| 78 | cndrng | |- CCfld e. DivRing |
|
| 79 | 76 77 78 | drngui | |- ( CC \ { 0 } ) = ( Unit ` CCfld ) |
| 80 | 1 79 5 7 | subrgunit | |- ( Z[i] e. ( SubRing ` CCfld ) -> ( A e. ( Unit ` Z ) <-> ( A e. ( CC \ { 0 } ) /\ A e. Z[i] /\ ( ( invr ` CCfld ) ` A ) e. Z[i] ) ) ) |
| 81 | 2 80 | ax-mp | |- ( A e. ( Unit ` Z ) <-> ( A e. ( CC \ { 0 } ) /\ A e. Z[i] /\ ( ( invr ` CCfld ) ` A ) e. Z[i] ) ) |
| 82 | 61 62 75 81 | syl3anbrc | |- ( ( A e. Z[i] /\ ( abs ` A ) = 1 ) -> A e. ( Unit ` Z ) ) |
| 83 | 49 82 | impbii | |- ( A e. ( Unit ` Z ) <-> ( A e. Z[i] /\ ( abs ` A ) = 1 ) ) |