This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Lemma for 4sq . We can express the four-square property more compactly in terms of gaussian integers, because the norms of gaussian integers are exactly sums of two squares. (Contributed by Mario Carneiro, 14-Jul-2014)
| Ref | Expression | ||
|---|---|---|---|
| Hypothesis | 4sq.1 | |- S = { n | E. x e. ZZ E. y e. ZZ E. z e. ZZ E. w e. ZZ n = ( ( ( x ^ 2 ) + ( y ^ 2 ) ) + ( ( z ^ 2 ) + ( w ^ 2 ) ) ) } |
|
| Assertion | 4sqlem4 | |- ( A e. S <-> E. u e. Z[i] E. v e. Z[i] A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | 4sq.1 | |- S = { n | E. x e. ZZ E. y e. ZZ E. z e. ZZ E. w e. ZZ n = ( ( ( x ^ 2 ) + ( y ^ 2 ) ) + ( ( z ^ 2 ) + ( w ^ 2 ) ) ) } |
|
| 2 | 1 | 4sqlem2 | |- ( A e. S <-> E. a e. ZZ E. b e. ZZ E. c e. ZZ E. d e. ZZ A = ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) ) |
| 3 | gzreim | |- ( ( a e. ZZ /\ b e. ZZ ) -> ( a + ( _i x. b ) ) e. Z[i] ) |
|
| 4 | 3 | adantr | |- ( ( ( a e. ZZ /\ b e. ZZ ) /\ ( c e. ZZ /\ d e. ZZ ) ) -> ( a + ( _i x. b ) ) e. Z[i] ) |
| 5 | gzreim | |- ( ( c e. ZZ /\ d e. ZZ ) -> ( c + ( _i x. d ) ) e. Z[i] ) |
|
| 6 | 5 | adantl | |- ( ( ( a e. ZZ /\ b e. ZZ ) /\ ( c e. ZZ /\ d e. ZZ ) ) -> ( c + ( _i x. d ) ) e. Z[i] ) |
| 7 | gzcn | |- ( ( a + ( _i x. b ) ) e. Z[i] -> ( a + ( _i x. b ) ) e. CC ) |
|
| 8 | 3 7 | syl | |- ( ( a e. ZZ /\ b e. ZZ ) -> ( a + ( _i x. b ) ) e. CC ) |
| 9 | 8 | absvalsq2d | |- ( ( a e. ZZ /\ b e. ZZ ) -> ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) = ( ( ( Re ` ( a + ( _i x. b ) ) ) ^ 2 ) + ( ( Im ` ( a + ( _i x. b ) ) ) ^ 2 ) ) ) |
| 10 | zre | |- ( a e. ZZ -> a e. RR ) |
|
| 11 | zre | |- ( b e. ZZ -> b e. RR ) |
|
| 12 | crre | |- ( ( a e. RR /\ b e. RR ) -> ( Re ` ( a + ( _i x. b ) ) ) = a ) |
|
| 13 | 10 11 12 | syl2an | |- ( ( a e. ZZ /\ b e. ZZ ) -> ( Re ` ( a + ( _i x. b ) ) ) = a ) |
| 14 | 13 | oveq1d | |- ( ( a e. ZZ /\ b e. ZZ ) -> ( ( Re ` ( a + ( _i x. b ) ) ) ^ 2 ) = ( a ^ 2 ) ) |
| 15 | crim | |- ( ( a e. RR /\ b e. RR ) -> ( Im ` ( a + ( _i x. b ) ) ) = b ) |
|
| 16 | 10 11 15 | syl2an | |- ( ( a e. ZZ /\ b e. ZZ ) -> ( Im ` ( a + ( _i x. b ) ) ) = b ) |
| 17 | 16 | oveq1d | |- ( ( a e. ZZ /\ b e. ZZ ) -> ( ( Im ` ( a + ( _i x. b ) ) ) ^ 2 ) = ( b ^ 2 ) ) |
| 18 | 14 17 | oveq12d | |- ( ( a e. ZZ /\ b e. ZZ ) -> ( ( ( Re ` ( a + ( _i x. b ) ) ) ^ 2 ) + ( ( Im ` ( a + ( _i x. b ) ) ) ^ 2 ) ) = ( ( a ^ 2 ) + ( b ^ 2 ) ) ) |
| 19 | 9 18 | eqtrd | |- ( ( a e. ZZ /\ b e. ZZ ) -> ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) = ( ( a ^ 2 ) + ( b ^ 2 ) ) ) |
| 20 | gzcn | |- ( ( c + ( _i x. d ) ) e. Z[i] -> ( c + ( _i x. d ) ) e. CC ) |
|
| 21 | 5 20 | syl | |- ( ( c e. ZZ /\ d e. ZZ ) -> ( c + ( _i x. d ) ) e. CC ) |
| 22 | 21 | absvalsq2d | |- ( ( c e. ZZ /\ d e. ZZ ) -> ( ( abs ` ( c + ( _i x. d ) ) ) ^ 2 ) = ( ( ( Re ` ( c + ( _i x. d ) ) ) ^ 2 ) + ( ( Im ` ( c + ( _i x. d ) ) ) ^ 2 ) ) ) |
| 23 | zre | |- ( c e. ZZ -> c e. RR ) |
|
| 24 | zre | |- ( d e. ZZ -> d e. RR ) |
|
| 25 | crre | |- ( ( c e. RR /\ d e. RR ) -> ( Re ` ( c + ( _i x. d ) ) ) = c ) |
|
| 26 | 23 24 25 | syl2an | |- ( ( c e. ZZ /\ d e. ZZ ) -> ( Re ` ( c + ( _i x. d ) ) ) = c ) |
| 27 | 26 | oveq1d | |- ( ( c e. ZZ /\ d e. ZZ ) -> ( ( Re ` ( c + ( _i x. d ) ) ) ^ 2 ) = ( c ^ 2 ) ) |
| 28 | crim | |- ( ( c e. RR /\ d e. RR ) -> ( Im ` ( c + ( _i x. d ) ) ) = d ) |
|
| 29 | 23 24 28 | syl2an | |- ( ( c e. ZZ /\ d e. ZZ ) -> ( Im ` ( c + ( _i x. d ) ) ) = d ) |
| 30 | 29 | oveq1d | |- ( ( c e. ZZ /\ d e. ZZ ) -> ( ( Im ` ( c + ( _i x. d ) ) ) ^ 2 ) = ( d ^ 2 ) ) |
| 31 | 27 30 | oveq12d | |- ( ( c e. ZZ /\ d e. ZZ ) -> ( ( ( Re ` ( c + ( _i x. d ) ) ) ^ 2 ) + ( ( Im ` ( c + ( _i x. d ) ) ) ^ 2 ) ) = ( ( c ^ 2 ) + ( d ^ 2 ) ) ) |
| 32 | 22 31 | eqtrd | |- ( ( c e. ZZ /\ d e. ZZ ) -> ( ( abs ` ( c + ( _i x. d ) ) ) ^ 2 ) = ( ( c ^ 2 ) + ( d ^ 2 ) ) ) |
| 33 | 19 32 | oveqan12d | |- ( ( ( a e. ZZ /\ b e. ZZ ) /\ ( c e. ZZ /\ d e. ZZ ) ) -> ( ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) + ( ( abs ` ( c + ( _i x. d ) ) ) ^ 2 ) ) = ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) ) |
| 34 | 33 | eqcomd | |- ( ( ( a e. ZZ /\ b e. ZZ ) /\ ( c e. ZZ /\ d e. ZZ ) ) -> ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) = ( ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) + ( ( abs ` ( c + ( _i x. d ) ) ) ^ 2 ) ) ) |
| 35 | fveq2 | |- ( u = ( a + ( _i x. b ) ) -> ( abs ` u ) = ( abs ` ( a + ( _i x. b ) ) ) ) |
|
| 36 | 35 | oveq1d | |- ( u = ( a + ( _i x. b ) ) -> ( ( abs ` u ) ^ 2 ) = ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) ) |
| 37 | 36 | oveq1d | |- ( u = ( a + ( _i x. b ) ) -> ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) = ( ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) |
| 38 | 37 | eqeq2d | |- ( u = ( a + ( _i x. b ) ) -> ( ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) <-> ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) = ( ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) ) |
| 39 | fveq2 | |- ( v = ( c + ( _i x. d ) ) -> ( abs ` v ) = ( abs ` ( c + ( _i x. d ) ) ) ) |
|
| 40 | 39 | oveq1d | |- ( v = ( c + ( _i x. d ) ) -> ( ( abs ` v ) ^ 2 ) = ( ( abs ` ( c + ( _i x. d ) ) ) ^ 2 ) ) |
| 41 | 40 | oveq2d | |- ( v = ( c + ( _i x. d ) ) -> ( ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) = ( ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) + ( ( abs ` ( c + ( _i x. d ) ) ) ^ 2 ) ) ) |
| 42 | 41 | eqeq2d | |- ( v = ( c + ( _i x. d ) ) -> ( ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) = ( ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) <-> ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) = ( ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) + ( ( abs ` ( c + ( _i x. d ) ) ) ^ 2 ) ) ) ) |
| 43 | 38 42 | rspc2ev | |- ( ( ( a + ( _i x. b ) ) e. Z[i] /\ ( c + ( _i x. d ) ) e. Z[i] /\ ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) = ( ( ( abs ` ( a + ( _i x. b ) ) ) ^ 2 ) + ( ( abs ` ( c + ( _i x. d ) ) ) ^ 2 ) ) ) -> E. u e. Z[i] E. v e. Z[i] ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) |
| 44 | 4 6 34 43 | syl3anc | |- ( ( ( a e. ZZ /\ b e. ZZ ) /\ ( c e. ZZ /\ d e. ZZ ) ) -> E. u e. Z[i] E. v e. Z[i] ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) |
| 45 | eqeq1 | |- ( A = ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) -> ( A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) <-> ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) ) |
|
| 46 | 45 | 2rexbidv | |- ( A = ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) -> ( E. u e. Z[i] E. v e. Z[i] A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) <-> E. u e. Z[i] E. v e. Z[i] ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) ) |
| 47 | 44 46 | syl5ibrcom | |- ( ( ( a e. ZZ /\ b e. ZZ ) /\ ( c e. ZZ /\ d e. ZZ ) ) -> ( A = ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) -> E. u e. Z[i] E. v e. Z[i] A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) ) |
| 48 | 47 | rexlimdvva | |- ( ( a e. ZZ /\ b e. ZZ ) -> ( E. c e. ZZ E. d e. ZZ A = ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) -> E. u e. Z[i] E. v e. Z[i] A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) ) |
| 49 | 48 | rexlimivv | |- ( E. a e. ZZ E. b e. ZZ E. c e. ZZ E. d e. ZZ A = ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) -> E. u e. Z[i] E. v e. Z[i] A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) |
| 50 | 2 49 | sylbi | |- ( A e. S -> E. u e. Z[i] E. v e. Z[i] A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) |
| 51 | 1 | 4sqlem4a | |- ( ( u e. Z[i] /\ v e. Z[i] ) -> ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) e. S ) |
| 52 | eleq1a | |- ( ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) e. S -> ( A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) -> A e. S ) ) |
|
| 53 | 51 52 | syl | |- ( ( u e. Z[i] /\ v e. Z[i] ) -> ( A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) -> A e. S ) ) |
| 54 | 53 | rexlimivv | |- ( E. u e. Z[i] E. v e. Z[i] A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) -> A e. S ) |
| 55 | 50 54 | impbii | |- ( A e. S <-> E. u e. Z[i] E. v e. Z[i] A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) |