| Step | Hyp | Ref | Expression | 
						
							| 1 |  | 2sq.1 |  |-  S = ran ( w e. Z[i] |-> ( ( abs ` w ) ^ 2 ) ) | 
						
							| 2 | 1 | 2sqlem1 |  |-  ( A e. S <-> E. z e. Z[i] A = ( ( abs ` z ) ^ 2 ) ) | 
						
							| 3 |  | elgz |  |-  ( z e. Z[i] <-> ( z e. CC /\ ( Re ` z ) e. ZZ /\ ( Im ` z ) e. ZZ ) ) | 
						
							| 4 | 3 | simp2bi |  |-  ( z e. Z[i] -> ( Re ` z ) e. ZZ ) | 
						
							| 5 | 3 | simp3bi |  |-  ( z e. Z[i] -> ( Im ` z ) e. ZZ ) | 
						
							| 6 |  | gzcn |  |-  ( z e. Z[i] -> z e. CC ) | 
						
							| 7 | 6 | absvalsq2d |  |-  ( z e. Z[i] -> ( ( abs ` z ) ^ 2 ) = ( ( ( Re ` z ) ^ 2 ) + ( ( Im ` z ) ^ 2 ) ) ) | 
						
							| 8 |  | oveq1 |  |-  ( x = ( Re ` z ) -> ( x ^ 2 ) = ( ( Re ` z ) ^ 2 ) ) | 
						
							| 9 | 8 | oveq1d |  |-  ( x = ( Re ` z ) -> ( ( x ^ 2 ) + ( y ^ 2 ) ) = ( ( ( Re ` z ) ^ 2 ) + ( y ^ 2 ) ) ) | 
						
							| 10 | 9 | eqeq2d |  |-  ( x = ( Re ` z ) -> ( ( ( abs ` z ) ^ 2 ) = ( ( x ^ 2 ) + ( y ^ 2 ) ) <-> ( ( abs ` z ) ^ 2 ) = ( ( ( Re ` z ) ^ 2 ) + ( y ^ 2 ) ) ) ) | 
						
							| 11 |  | oveq1 |  |-  ( y = ( Im ` z ) -> ( y ^ 2 ) = ( ( Im ` z ) ^ 2 ) ) | 
						
							| 12 | 11 | oveq2d |  |-  ( y = ( Im ` z ) -> ( ( ( Re ` z ) ^ 2 ) + ( y ^ 2 ) ) = ( ( ( Re ` z ) ^ 2 ) + ( ( Im ` z ) ^ 2 ) ) ) | 
						
							| 13 | 12 | eqeq2d |  |-  ( y = ( Im ` z ) -> ( ( ( abs ` z ) ^ 2 ) = ( ( ( Re ` z ) ^ 2 ) + ( y ^ 2 ) ) <-> ( ( abs ` z ) ^ 2 ) = ( ( ( Re ` z ) ^ 2 ) + ( ( Im ` z ) ^ 2 ) ) ) ) | 
						
							| 14 | 10 13 | rspc2ev |  |-  ( ( ( Re ` z ) e. ZZ /\ ( Im ` z ) e. ZZ /\ ( ( abs ` z ) ^ 2 ) = ( ( ( Re ` z ) ^ 2 ) + ( ( Im ` z ) ^ 2 ) ) ) -> E. x e. ZZ E. y e. ZZ ( ( abs ` z ) ^ 2 ) = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) | 
						
							| 15 | 4 5 7 14 | syl3anc |  |-  ( z e. Z[i] -> E. x e. ZZ E. y e. ZZ ( ( abs ` z ) ^ 2 ) = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) | 
						
							| 16 |  | eqeq1 |  |-  ( A = ( ( abs ` z ) ^ 2 ) -> ( A = ( ( x ^ 2 ) + ( y ^ 2 ) ) <-> ( ( abs ` z ) ^ 2 ) = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) ) | 
						
							| 17 | 16 | 2rexbidv |  |-  ( A = ( ( abs ` z ) ^ 2 ) -> ( E. x e. ZZ E. y e. ZZ A = ( ( x ^ 2 ) + ( y ^ 2 ) ) <-> E. x e. ZZ E. y e. ZZ ( ( abs ` z ) ^ 2 ) = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) ) | 
						
							| 18 | 15 17 | syl5ibrcom |  |-  ( z e. Z[i] -> ( A = ( ( abs ` z ) ^ 2 ) -> E. x e. ZZ E. y e. ZZ A = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) ) | 
						
							| 19 | 18 | rexlimiv |  |-  ( E. z e. Z[i] A = ( ( abs ` z ) ^ 2 ) -> E. x e. ZZ E. y e. ZZ A = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) | 
						
							| 20 | 2 19 | sylbi |  |-  ( A e. S -> E. x e. ZZ E. y e. ZZ A = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) | 
						
							| 21 |  | gzreim |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> ( x + ( _i x. y ) ) e. Z[i] ) | 
						
							| 22 |  | zcn |  |-  ( x e. ZZ -> x e. CC ) | 
						
							| 23 |  | ax-icn |  |-  _i e. CC | 
						
							| 24 |  | zcn |  |-  ( y e. ZZ -> y e. CC ) | 
						
							| 25 |  | mulcl |  |-  ( ( _i e. CC /\ y e. CC ) -> ( _i x. y ) e. CC ) | 
						
							| 26 | 23 24 25 | sylancr |  |-  ( y e. ZZ -> ( _i x. y ) e. CC ) | 
						
							| 27 |  | addcl |  |-  ( ( x e. CC /\ ( _i x. y ) e. CC ) -> ( x + ( _i x. y ) ) e. CC ) | 
						
							| 28 | 22 26 27 | syl2an |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> ( x + ( _i x. y ) ) e. CC ) | 
						
							| 29 | 28 | absvalsq2d |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> ( ( abs ` ( x + ( _i x. y ) ) ) ^ 2 ) = ( ( ( Re ` ( x + ( _i x. y ) ) ) ^ 2 ) + ( ( Im ` ( x + ( _i x. y ) ) ) ^ 2 ) ) ) | 
						
							| 30 |  | zre |  |-  ( x e. ZZ -> x e. RR ) | 
						
							| 31 |  | zre |  |-  ( y e. ZZ -> y e. RR ) | 
						
							| 32 |  | crre |  |-  ( ( x e. RR /\ y e. RR ) -> ( Re ` ( x + ( _i x. y ) ) ) = x ) | 
						
							| 33 | 30 31 32 | syl2an |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> ( Re ` ( x + ( _i x. y ) ) ) = x ) | 
						
							| 34 | 33 | oveq1d |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> ( ( Re ` ( x + ( _i x. y ) ) ) ^ 2 ) = ( x ^ 2 ) ) | 
						
							| 35 |  | crim |  |-  ( ( x e. RR /\ y e. RR ) -> ( Im ` ( x + ( _i x. y ) ) ) = y ) | 
						
							| 36 | 30 31 35 | syl2an |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> ( Im ` ( x + ( _i x. y ) ) ) = y ) | 
						
							| 37 | 36 | oveq1d |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> ( ( Im ` ( x + ( _i x. y ) ) ) ^ 2 ) = ( y ^ 2 ) ) | 
						
							| 38 | 34 37 | oveq12d |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> ( ( ( Re ` ( x + ( _i x. y ) ) ) ^ 2 ) + ( ( Im ` ( x + ( _i x. y ) ) ) ^ 2 ) ) = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) | 
						
							| 39 | 29 38 | eqtr2d |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> ( ( x ^ 2 ) + ( y ^ 2 ) ) = ( ( abs ` ( x + ( _i x. y ) ) ) ^ 2 ) ) | 
						
							| 40 |  | fveq2 |  |-  ( z = ( x + ( _i x. y ) ) -> ( abs ` z ) = ( abs ` ( x + ( _i x. y ) ) ) ) | 
						
							| 41 | 40 | oveq1d |  |-  ( z = ( x + ( _i x. y ) ) -> ( ( abs ` z ) ^ 2 ) = ( ( abs ` ( x + ( _i x. y ) ) ) ^ 2 ) ) | 
						
							| 42 | 41 | rspceeqv |  |-  ( ( ( x + ( _i x. y ) ) e. Z[i] /\ ( ( x ^ 2 ) + ( y ^ 2 ) ) = ( ( abs ` ( x + ( _i x. y ) ) ) ^ 2 ) ) -> E. z e. Z[i] ( ( x ^ 2 ) + ( y ^ 2 ) ) = ( ( abs ` z ) ^ 2 ) ) | 
						
							| 43 | 21 39 42 | syl2anc |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> E. z e. Z[i] ( ( x ^ 2 ) + ( y ^ 2 ) ) = ( ( abs ` z ) ^ 2 ) ) | 
						
							| 44 | 1 | 2sqlem1 |  |-  ( ( ( x ^ 2 ) + ( y ^ 2 ) ) e. S <-> E. z e. Z[i] ( ( x ^ 2 ) + ( y ^ 2 ) ) = ( ( abs ` z ) ^ 2 ) ) | 
						
							| 45 | 43 44 | sylibr |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> ( ( x ^ 2 ) + ( y ^ 2 ) ) e. S ) | 
						
							| 46 |  | eleq1 |  |-  ( A = ( ( x ^ 2 ) + ( y ^ 2 ) ) -> ( A e. S <-> ( ( x ^ 2 ) + ( y ^ 2 ) ) e. S ) ) | 
						
							| 47 | 45 46 | syl5ibrcom |  |-  ( ( x e. ZZ /\ y e. ZZ ) -> ( A = ( ( x ^ 2 ) + ( y ^ 2 ) ) -> A e. S ) ) | 
						
							| 48 | 47 | rexlimivv |  |-  ( E. x e. ZZ E. y e. ZZ A = ( ( x ^ 2 ) + ( y ^ 2 ) ) -> A e. S ) | 
						
							| 49 | 20 48 | impbii |  |-  ( A e. S <-> E. x e. ZZ E. y e. ZZ A = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) |