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

Theorem 4sqlem12 13326
Description: Lemma for 4sq 13334. For any odd prime  P, there is a  k  <  P such that  k P  -  1 is a sum of two squares. (Contributed by Mario Carneiro, 15-Jul-2014.)
Hypotheses
Ref Expression
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 ) ) ) }
4sq.2  |-  ( ph  ->  N  e.  NN )
4sq.3  |-  ( ph  ->  P  =  ( ( 2  x.  N )  +  1 ) )
4sq.4  |-  ( ph  ->  P  e.  Prime )
4sqlem11.5  |-  A  =  { u  |  E. m  e.  ( 0 ... N ) u  =  ( ( m ^ 2 )  mod 
P ) }
4sqlem11.6  |-  F  =  ( v  e.  A  |->  ( ( P  - 
1 )  -  v
) )
Assertion
Ref Expression
4sqlem12  |-  ( ph  ->  E. k  e.  ( 1 ... ( P  -  1 ) ) E. u  e.  ZZ [ _i ]  ( ( ( abs `  u
) ^ 2 )  +  1 )  =  ( k  x.  P
) )
Distinct variable groups:    w, n, x, y, z    k, n, v, A    n, F    u, k, n, m, N, v    P, k, m, n, u, v    ph, k, m, n, u, v    S, k, m, n, u, v
Allowed substitution hints:    ph( x, y, z, w)    A( x, y, z, w, u, m)    P( x, y, z, w)    S( x, y, z, w)    F( x, y, z, w, v, u, k, m)    N( x, y, z, w)

Proof of Theorem 4sqlem12
Dummy variable  j is distinct from all other variables.
StepHypRef Expression
1 4sq.1 . . . 4  |-  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 4sq.2 . . . 4  |-  ( ph  ->  N  e.  NN )
3 4sq.3 . . . 4  |-  ( ph  ->  P  =  ( ( 2  x.  N )  +  1 ) )
4 4sq.4 . . . 4  |-  ( ph  ->  P  e.  Prime )
5 4sqlem11.5 . . . 4  |-  A  =  { u  |  E. m  e.  ( 0 ... N ) u  =  ( ( m ^ 2 )  mod 
P ) }
6 4sqlem11.6 . . . 4  |-  F  =  ( v  e.  A  |->  ( ( P  - 
1 )  -  v
) )
71, 2, 3, 4, 5, 64sqlem11 13325 . . 3  |-  ( ph  ->  ( A  i^i  ran  F )  =/=  (/) )
8 n0 3639 . . 3  |-  ( ( A  i^i  ran  F
)  =/=  (/)  <->  E. j 
j  e.  ( A  i^i  ran  F )
)
97, 8sylib 190 . 2  |-  ( ph  ->  E. j  j  e.  ( A  i^i  ran  F ) )
10 vex 2961 . . . . . . 7  |-  j  e. 
_V
11 eqeq1 2444 . . . . . . . 8  |-  ( u  =  j  ->  (
u  =  ( ( m ^ 2 )  mod  P )  <->  j  =  ( ( m ^
2 )  mod  P
) ) )
1211rexbidv 2728 . . . . . . 7  |-  ( u  =  j  ->  ( E. m  e.  (
0 ... N ) u  =  ( ( m ^ 2 )  mod 
P )  <->  E. m  e.  ( 0 ... N
) j  =  ( ( m ^ 2 )  mod  P ) ) )
1310, 12, 5elab2 3087 . . . . . 6  |-  ( j  e.  A  <->  E. m  e.  ( 0 ... N
) j  =  ( ( m ^ 2 )  mod  P ) )
14 abid 2426 . . . . . . . . 9  |-  ( j  e.  { j  |  E. v  e.  A  j  =  ( ( P  -  1 )  -  v ) }  <->  E. v  e.  A  j  =  ( ( P  -  1 )  -  v ) )
155rexeqi 2911 . . . . . . . . 9  |-  ( E. v  e.  A  j  =  ( ( P  -  1 )  -  v )  <->  E. v  e.  { u  |  E. m  e.  ( 0 ... N ) u  =  ( ( m ^ 2 )  mod 
P ) } j  =  ( ( P  -  1 )  -  v ) )
16 oveq1 6090 . . . . . . . . . . . . . 14  |-  ( m  =  n  ->  (
m ^ 2 )  =  ( n ^
2 ) )
1716oveq1d 6098 . . . . . . . . . . . . 13  |-  ( m  =  n  ->  (
( m ^ 2 )  mod  P )  =  ( ( n ^ 2 )  mod 
P ) )
1817eqeq2d 2449 . . . . . . . . . . . 12  |-  ( m  =  n  ->  (
u  =  ( ( m ^ 2 )  mod  P )  <->  u  =  ( ( n ^
2 )  mod  P
) ) )
1918cbvrexv 2935 . . . . . . . . . . 11  |-  ( E. m  e.  ( 0 ... N ) u  =  ( ( m ^ 2 )  mod 
P )  <->  E. n  e.  ( 0 ... N
) u  =  ( ( n ^ 2 )  mod  P ) )
20 eqeq1 2444 . . . . . . . . . . . 12  |-  ( u  =  v  ->  (
u  =  ( ( n ^ 2 )  mod  P )  <->  v  =  ( ( n ^
2 )  mod  P
) ) )
2120rexbidv 2728 . . . . . . . . . . 11  |-  ( u  =  v  ->  ( E. n  e.  (
0 ... N ) u  =  ( ( n ^ 2 )  mod 
P )  <->  E. n  e.  ( 0 ... N
) v  =  ( ( n ^ 2 )  mod  P ) ) )
2219, 21syl5bb 250 . . . . . . . . . 10  |-  ( u  =  v  ->  ( E. m  e.  (
0 ... N ) u  =  ( ( m ^ 2 )  mod 
P )  <->  E. n  e.  ( 0 ... N
) v  =  ( ( n ^ 2 )  mod  P ) ) )
2322rexab 3099 . . . . . . . . 9  |-  ( E. v  e.  { u  |  E. m  e.  ( 0 ... N ) u  =  ( ( m ^ 2 )  mod  P ) } j  =  ( ( P  -  1 )  -  v )  <->  E. v
( E. n  e.  ( 0 ... N
) v  =  ( ( n ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  v ) ) )
2414, 15, 233bitri 264 . . . . . . . 8  |-  ( j  e.  { j  |  E. v  e.  A  j  =  ( ( P  -  1 )  -  v ) }  <->  E. v ( E. n  e.  ( 0 ... N
) v  =  ( ( n ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  v ) ) )
256rnmpt 5118 . . . . . . . . 9  |-  ran  F  =  { j  |  E. v  e.  A  j  =  ( ( P  -  1 )  -  v ) }
2625eleq2i 2502 . . . . . . . 8  |-  ( j  e.  ran  F  <->  j  e.  { j  |  E. v  e.  A  j  =  ( ( P  - 
1 )  -  v
) } )
27 rexcom4 2977 . . . . . . . . 9  |-  ( E. n  e.  ( 0 ... N ) E. v ( v  =  ( ( n ^
2 )  mod  P
)  /\  j  =  ( ( P  - 
1 )  -  v
) )  <->  E. v E. n  e.  (
0 ... N ) ( v  =  ( ( n ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  v ) ) )
28 r19.41v 2863 . . . . . . . . . 10  |-  ( E. n  e.  ( 0 ... N ) ( v  =  ( ( n ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  v ) )  <-> 
( E. n  e.  ( 0 ... N
) v  =  ( ( n ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  v ) ) )
2928exbii 1593 . . . . . . . . 9  |-  ( E. v E. n  e.  ( 0 ... N
) ( v  =  ( ( n ^
2 )  mod  P
)  /\  j  =  ( ( P  - 
1 )  -  v
) )  <->  E. v
( E. n  e.  ( 0 ... N
) v  =  ( ( n ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  v ) ) )
3027, 29bitri 242 . . . . . . . 8  |-  ( E. n  e.  ( 0 ... N ) E. v ( v  =  ( ( n ^
2 )  mod  P
)  /\  j  =  ( ( P  - 
1 )  -  v
) )  <->  E. v
( E. n  e.  ( 0 ... N
) v  =  ( ( n ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  v ) ) )
3124, 26, 303bitr4i 270 . . . . . . 7  |-  ( j  e.  ran  F  <->  E. n  e.  ( 0 ... N
) E. v ( v  =  ( ( n ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  v ) ) )
32 ovex 6108 . . . . . . . . 9  |-  ( ( n ^ 2 )  mod  P )  e. 
_V
33 oveq2 6091 . . . . . . . . . 10  |-  ( v  =  ( ( n ^ 2 )  mod 
P )  ->  (
( P  -  1 )  -  v )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )
3433eqeq2d 2449 . . . . . . . . 9  |-  ( v  =  ( ( n ^ 2 )  mod 
P )  ->  (
j  =  ( ( P  -  1 )  -  v )  <->  j  =  ( ( P  - 
1 )  -  (
( n ^ 2 )  mod  P ) ) ) )
3532, 34ceqsexv 2993 . . . . . . . 8  |-  ( E. v ( v  =  ( ( n ^
2 )  mod  P
)  /\  j  =  ( ( P  - 
1 )  -  v
) )  <->  j  =  ( ( P  - 
1 )  -  (
( n ^ 2 )  mod  P ) ) )
3635rexbii 2732 . . . . . . 7  |-  ( E. n  e.  ( 0 ... N ) E. v ( v  =  ( ( n ^
2 )  mod  P
)  /\  j  =  ( ( P  - 
1 )  -  v
) )  <->  E. n  e.  ( 0 ... N
) j  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod  P ) ) )
3731, 36bitri 242 . . . . . 6  |-  ( j  e.  ran  F  <->  E. n  e.  ( 0 ... N
) j  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod  P ) ) )
3813, 37anbi12i 680 . . . . 5  |-  ( ( j  e.  A  /\  j  e.  ran  F )  <-> 
( E. m  e.  ( 0 ... N
) j  =  ( ( m ^ 2 )  mod  P )  /\  E. n  e.  ( 0 ... N
) j  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod  P ) ) ) )
39 elin 3532 . . . . 5  |-  ( j  e.  ( A  i^i  ran 
F )  <->  ( j  e.  A  /\  j  e.  ran  F ) )
40 reeanv 2877 . . . . 5  |-  ( E. m  e.  ( 0 ... N ) E. n  e.  ( 0 ... N ) ( j  =  ( ( m ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod 
P ) ) )  <-> 
( E. m  e.  ( 0 ... N
) j  =  ( ( m ^ 2 )  mod  P )  /\  E. n  e.  ( 0 ... N
) j  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod  P ) ) ) )
4138, 39, 403bitr4i 270 . . . 4  |-  ( j  e.  ( A  i^i  ran 
F )  <->  E. m  e.  ( 0 ... N
) E. n  e.  ( 0 ... N
) ( j  =  ( ( m ^
2 )  mod  P
)  /\  j  =  ( ( P  - 
1 )  -  (
( n ^ 2 )  mod  P ) ) ) )
42 eqtr2 2456 . . . . . 6  |-  ( ( j  =  ( ( m ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod 
P ) ) )  ->  ( ( m ^ 2 )  mod 
P )  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod  P ) ) )
4343ad2ant1 979 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  e.  Prime )
44 prmnn 13084 . . . . . . . . . . . . . . . . . . 19  |-  ( P  e.  Prime  ->  P  e.  NN )
4543, 44syl 16 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  e.  NN )
46 nnm1nn0 10263 . . . . . . . . . . . . . . . . . 18  |-  ( P  e.  NN  ->  ( P  -  1 )  e.  NN0 )
4745, 46syl 16 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( P  -  1 )  e.  NN0 )
4847nn0red 10277 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( P  -  1 )  e.  RR )
4945nnrpd 10649 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  e.  RR+ )
5047nn0ge0d 10279 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
0  <_  ( P  -  1 ) )
5145nnred 10017 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  e.  RR )
5251ltm1d 9945 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( P  -  1 )  <  P )
53 modid 11272 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( P  - 
1 )  e.  RR  /\  P  e.  RR+ )  /\  ( 0  <_  ( P  -  1 )  /\  ( P  - 
1 )  <  P
) )  ->  (
( P  -  1 )  mod  P )  =  ( P  - 
1 ) )
5448, 49, 50, 52, 53syl22anc 1186 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( P  - 
1 )  mod  P
)  =  ( P  -  1 ) )
5554oveq1d 6098 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( P  -  1 )  mod 
P )  -  (
( n ^ 2 )  mod  P ) )  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod 
P ) ) )
56 simp2r 985 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  n  e.  ( 0 ... N ) )
57 elfzelz 11061 . . . . . . . . . . . . . . . . . . . . 21  |-  ( n  e.  ( 0 ... N )  ->  n  e.  ZZ )
5856, 57syl 16 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  n  e.  ZZ )
59 zsqcl2 11461 . . . . . . . . . . . . . . . . . . . 20  |-  ( n  e.  ZZ  ->  (
n ^ 2 )  e.  NN0 )
6058, 59syl 16 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( n ^ 2 )  e.  NN0 )
6160nn0red 10277 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( n ^ 2 )  e.  RR )
62 modlt 11260 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n ^ 2 )  e.  RR  /\  P  e.  RR+ )  -> 
( ( n ^
2 )  mod  P
)  <  P )
6361, 49, 62syl2anc 644 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( n ^
2 )  mod  P
)  <  P )
64 zsqcl 11454 . . . . . . . . . . . . . . . . . . . . 21  |-  ( n  e.  ZZ  ->  (
n ^ 2 )  e.  ZZ )
6558, 64syl 16 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( n ^ 2 )  e.  ZZ )
6665, 45zmodcld 11269 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( n ^
2 )  mod  P
)  e.  NN0 )
6766nn0zd 10375 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( n ^
2 )  mod  P
)  e.  ZZ )
68 prmz 13085 . . . . . . . . . . . . . . . . . . 19  |-  ( P  e.  Prime  ->  P  e.  ZZ )
6943, 68syl 16 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  e.  ZZ )
70 zltlem1 10330 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n ^
2 )  mod  P
)  e.  ZZ  /\  P  e.  ZZ )  ->  ( ( ( n ^ 2 )  mod 
P )  <  P  <->  ( ( n ^ 2 )  mod  P )  <_  ( P  - 
1 ) ) )
7167, 69, 70syl2anc 644 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( n ^ 2 )  mod 
P )  <  P  <->  ( ( n ^ 2 )  mod  P )  <_  ( P  - 
1 ) ) )
7263, 71mpbid 203 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( n ^
2 )  mod  P
)  <_  ( P  -  1 ) )
7372, 54breqtrrd 4240 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( n ^
2 )  mod  P
)  <_  ( ( P  -  1 )  mod  P ) )
74 modsubdir 11287 . . . . . . . . . . . . . . . 16  |-  ( ( ( P  -  1 )  e.  RR  /\  ( n ^ 2 )  e.  RR  /\  P  e.  RR+ )  -> 
( ( ( n ^ 2 )  mod 
P )  <_  (
( P  -  1 )  mod  P )  <-> 
( ( ( P  -  1 )  -  ( n ^ 2 ) )  mod  P
)  =  ( ( ( P  -  1 )  mod  P )  -  ( ( n ^ 2 )  mod 
P ) ) ) )
7548, 61, 49, 74syl3anc 1185 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( n ^ 2 )  mod 
P )  <_  (
( P  -  1 )  mod  P )  <-> 
( ( ( P  -  1 )  -  ( n ^ 2 ) )  mod  P
)  =  ( ( ( P  -  1 )  mod  P )  -  ( ( n ^ 2 )  mod 
P ) ) ) )
7673, 75mpbid 203 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( P  -  1 )  -  ( n ^ 2 ) )  mod  P
)  =  ( ( ( P  -  1 )  mod  P )  -  ( ( n ^ 2 )  mod 
P ) ) )
77 simp3 960 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( m ^
2 )  mod  P
)  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod 
P ) ) )
7855, 76, 773eqtr4rd 2481 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( m ^
2 )  mod  P
)  =  ( ( ( P  -  1 )  -  ( n ^ 2 ) )  mod  P ) )
79 simp2l 984 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  m  e.  ( 0 ... N ) )
80 elfzelz 11061 . . . . . . . . . . . . . . . 16  |-  ( m  e.  ( 0 ... N )  ->  m  e.  ZZ )
8179, 80syl 16 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  m  e.  ZZ )
82 zsqcl 11454 . . . . . . . . . . . . . . 15  |-  ( m  e.  ZZ  ->  (
m ^ 2 )  e.  ZZ )
8381, 82syl 16 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( m ^ 2 )  e.  ZZ )
8447nn0zd 10375 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( P  -  1 )  e.  ZZ )
8584, 65zsubcld 10382 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( P  - 
1 )  -  (
n ^ 2 ) )  e.  ZZ )
86 moddvds 12861 . . . . . . . . . . . . . 14  |-  ( ( P  e.  NN  /\  ( m ^ 2 )  e.  ZZ  /\  ( ( P  - 
1 )  -  (
n ^ 2 ) )  e.  ZZ )  ->  ( ( ( m ^ 2 )  mod  P )  =  ( ( ( P  -  1 )  -  ( n ^ 2 ) )  mod  P
)  <->  P  ||  ( ( m ^ 2 )  -  ( ( P  -  1 )  -  ( n ^ 2 ) ) ) ) )
8745, 83, 85, 86syl3anc 1185 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( m ^ 2 )  mod 
P )  =  ( ( ( P  - 
1 )  -  (
n ^ 2 ) )  mod  P )  <-> 
P  ||  ( (
m ^ 2 )  -  ( ( P  -  1 )  -  ( n ^ 2 ) ) ) ) )
8878, 87mpbid 203 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  ||  ( ( m ^ 2 )  -  ( ( P  - 
1 )  -  (
n ^ 2 ) ) ) )
89 zsqcl2 11461 . . . . . . . . . . . . . . . 16  |-  ( m  e.  ZZ  ->  (
m ^ 2 )  e.  NN0 )
9081, 89syl 16 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( m ^ 2 )  e.  NN0 )
9190nn0cnd 10278 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( m ^ 2 )  e.  CC )
9247nn0cnd 10278 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( P  -  1 )  e.  CC )
9360nn0cnd 10278 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( n ^ 2 )  e.  CC )
9491, 92, 93subsub3d 9443 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( m ^
2 )  -  (
( P  -  1 )  -  ( n ^ 2 ) ) )  =  ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  -  ( P  - 
1 ) ) )
9590, 60nn0addcld 10280 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( m ^
2 )  +  ( n ^ 2 ) )  e.  NN0 )
9695nn0cnd 10278 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( m ^
2 )  +  ( n ^ 2 ) )  e.  CC )
9745nncnd 10018 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  e.  CC )
98 ax-1cn 9050 . . . . . . . . . . . . . . 15  |-  1  e.  CC
9998a1i 11 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
1  e.  CC )
10096, 97, 99subsub3d 9443 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( m ^ 2 )  +  ( n ^ 2 ) )  -  ( P  -  1 ) )  =  ( ( ( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  -  P ) )
10194, 100eqtrd 2470 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( m ^
2 )  -  (
( P  -  1 )  -  ( n ^ 2 ) ) )  =  ( ( ( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  -  P ) )
10288, 101breqtrd 4238 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  ||  ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  -  P ) )
103 nn0p1nn 10261 . . . . . . . . . . . . . 14  |-  ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  e.  NN0  ->  ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  NN )
10495, 103syl 16 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  NN )
105104nnzd 10376 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  ZZ )
106 dvdssubr 12893 . . . . . . . . . . . 12  |-  ( ( P  e.  ZZ  /\  ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  ZZ )  ->  ( P  ||  ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  <->  P  ||  ( ( ( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  -  P ) ) )
10769, 105, 106syl2anc 644 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( P  ||  (
( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  <-> 
P  ||  ( (
( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  -  P ) ) )
108102, 107mpbird 225 . . . . . . . . . 10  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  ||  ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 ) )
10945nnne0d 10046 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  =/=  0 )
110 dvdsval2 12857 . . . . . . . . . . 11  |-  ( ( P  e.  ZZ  /\  P  =/=  0  /\  (
( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  e.  ZZ )  -> 
( P  ||  (
( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  <-> 
( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  e.  ZZ ) )
11169, 109, 105, 110syl3anc 1185 . . . . . . . . . 10  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( P  ||  (
( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  <-> 
( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  e.  ZZ ) )
112108, 111mpbid 203 . . . . . . . . 9  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  e.  ZZ )
113 nnrp 10623 . . . . . . . . . . . . . 14  |-  ( ( ( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  e.  NN  ->  (
( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  e.  RR+ )
114 nnrp 10623 . . . . . . . . . . . . . 14  |-  ( P  e.  NN  ->  P  e.  RR+ )
115 rpdivcl 10636 . . . . . . . . . . . . . 14  |-  ( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  RR+  /\  P  e.  RR+ )  ->  (
( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  e.  RR+ )
116113, 114, 115syl2an 465 . . . . . . . . . . . . 13  |-  ( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  NN  /\  P  e.  NN )  ->  ( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  e.  RR+ )
117104, 45, 116syl2anc 644 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  e.  RR+ )
118117rpgt0d 10653 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
0  <  ( (
( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  /  P ) )
119 elnnz 10294 . . . . . . . . . . 11  |-  ( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  e.  NN  <->  ( (
( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  e.  ZZ  /\  0  <  ( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
) ) )
120112, 118, 119sylanbrc 647 . . . . . . . . . 10  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  e.  NN )
121120nnge1d 10044 . . . . . . . . 9  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
1  <_  ( (
( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  /  P ) )
12295nn0red 10277 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( m ^
2 )  +  ( n ^ 2 ) )  e.  RR )
123 2nn 10135 . . . . . . . . . . . . . . . 16  |-  2  e.  NN
12423ad2ant1 979 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  N  e.  NN )
125 nnmulcl 10025 . . . . . . . . . . . . . . . 16  |-  ( ( 2  e.  NN  /\  N  e.  NN )  ->  ( 2  x.  N
)  e.  NN )
126123, 124, 125sylancr 646 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  x.  N
)  e.  NN )
127126nnred 10017 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  x.  N
)  e.  RR )
128127resqcld 11551 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( 2  x.  N ) ^ 2 )  e.  RR )
129 nnmulcl 10025 . . . . . . . . . . . . . . 15  |-  ( ( 2  e.  NN  /\  ( 2  x.  N
)  e.  NN )  ->  ( 2  x.  ( 2  x.  N
) )  e.  NN )
130123, 126, 129sylancr 646 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  x.  (
2  x.  N ) )  e.  NN )
131130nnred 10017 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  x.  (
2  x.  N ) )  e.  RR )
132128, 131readdcld 9117 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( 2  x.  N ) ^
2 )  +  ( 2  x.  ( 2  x.  N ) ) )  e.  RR )
133 1re 9092 . . . . . . . . . . . . 13  |-  1  e.  RR
134133a1i 11 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
1  e.  RR )
135124nnsqcld 11545 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( N ^ 2 )  e.  NN )
136 nnmulcl 10025 . . . . . . . . . . . . . . . 16  |-  ( ( 2  e.  NN  /\  ( N ^ 2 )  e.  NN )  -> 
( 2  x.  ( N ^ 2 ) )  e.  NN )
137123, 135, 136sylancr 646 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  x.  ( N ^ 2 ) )  e.  NN )
138137nnred 10017 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  x.  ( N ^ 2 ) )  e.  RR )
13990nn0red 10277 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( m ^ 2 )  e.  RR )
140135nnred 10017 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( N ^ 2 )  e.  RR )
14181zred 10377 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  m  e.  RR )
142 elfzle1 11062 . . . . . . . . . . . . . . . . . 18  |-  ( m  e.  ( 0 ... N )  ->  0  <_  m )
14379, 142syl 16 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
0  <_  m )
144124nnred 10017 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  N  e.  RR )
145 elfzle2 11063 . . . . . . . . . . . . . . . . . 18  |-  ( m  e.  ( 0 ... N )  ->  m  <_  N )
14679, 145syl 16 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  m  <_  N )
147 le2sq2 11459 . . . . . . . . . . . . . . . . 17  |-  ( ( ( m  e.  RR  /\  0  <_  m )  /\  ( N  e.  RR  /\  m  <_  N )
)  ->  ( m ^ 2 )  <_ 
( N ^ 2 ) )
148141, 143, 144, 146, 147syl22anc 1186 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( m ^ 2 )  <_  ( N ^ 2 ) )
14958zred 10377 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  n  e.  RR )
150 elfzle1 11062 . . . . . . . . . . . . . . . . . 18  |-  ( n  e.  ( 0 ... N )  ->  0  <_  n )
15156, 150syl 16 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
0  <_  n )
152 elfzle2 11063 . . . . . . . . . . . . . . . . . 18  |-  ( n  e.  ( 0 ... N )  ->  n  <_  N )
15356, 152syl 16 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  n  <_  N )
154 le2sq2 11459 . . . . . . . . . . . . . . . . 17  |-  ( ( ( n  e.  RR  /\  0  <_  n )  /\  ( N  e.  RR  /\  n  <_  N )
)  ->  ( n ^ 2 )  <_ 
( N ^ 2 ) )
155149, 151, 144, 153, 154syl22anc 1186 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( n ^ 2 )  <_  ( N ^ 2 ) )
156139, 61, 140, 140, 148, 155le2addd 9646 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( m ^
2 )  +  ( n ^ 2 ) )  <_  ( ( N ^ 2 )  +  ( N ^ 2 ) ) )
157135nncnd 10018 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( N ^ 2 )  e.  CC )
1581572timesd 10212 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  x.  ( N ^ 2 ) )  =  ( ( N ^ 2 )  +  ( N ^ 2 ) ) )
159156, 158breqtrrd 4240 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( m ^
2 )  +  ( n ^ 2 ) )  <_  ( 2  x.  ( N ^
2 ) ) )
160 2lt4 10148 . . . . . . . . . . . . . . . 16  |-  2  <  4
161 2re 10071 . . . . . . . . . . . . . . . . . 18  |-  2  e.  RR
162161a1i 11 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
2  e.  RR )
163 4re 10075 . . . . . . . . . . . . . . . . . 18  |-  4  e.  RR
164163a1i 11 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
4  e.  RR )
165135nngt0d 10045 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
0  <  ( N ^ 2 ) )
166 ltmul1 9862 . . . . . . . . . . . . . . . . 17  |-  ( ( 2  e.  RR  /\  4  e.  RR  /\  (
( N ^ 2 )  e.  RR  /\  0  <  ( N ^
2 ) ) )  ->  ( 2  <  4  <->  ( 2  x.  ( N ^ 2 ) )  <  (
4  x.  ( N ^ 2 ) ) ) )
167162, 164, 140, 165, 166syl112anc 1189 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  <  4  <->  ( 2  x.  ( N ^ 2 ) )  <  ( 4  x.  ( N ^ 2 ) ) ) )
168160, 167mpbii 204 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  x.  ( N ^ 2 ) )  <  ( 4  x.  ( N ^ 2 ) ) )
169 2cn 10072 . . . . . . . . . . . . . . . . 17  |-  2  e.  CC
170124nncnd 10018 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  N  e.  CC )
171 sqmul 11447 . . . . . . . . . . . . . . . . 17  |-  ( ( 2  e.  CC  /\  N  e.  CC )  ->  ( ( 2  x.  N ) ^ 2 )  =  ( ( 2 ^ 2 )  x.  ( N ^
2 ) ) )
172169, 170, 171sylancr 646 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( 2  x.  N ) ^ 2 )  =  ( ( 2 ^ 2 )  x.  ( N ^
2 ) ) )
173 sq2 11479 . . . . . . . . . . . . . . . . 17  |-  ( 2 ^ 2 )  =  4
174173oveq1i 6093 . . . . . . . . . . . . . . . 16  |-  ( ( 2 ^ 2 )  x.  ( N ^
2 ) )  =  ( 4  x.  ( N ^ 2 ) )
175172, 174syl6eq 2486 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( 2  x.  N ) ^ 2 )  =  ( 4  x.  ( N ^
2 ) ) )
176168, 175breqtrrd 4240 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  x.  ( N ^ 2 ) )  <  ( ( 2  x.  N ) ^
2 ) )
177122, 138, 128, 159, 176lelttrd 9230 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( m ^
2 )  +  ( n ^ 2 ) )  <  ( ( 2  x.  N ) ^ 2 ) )
178130nnrpd 10649 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  x.  (
2  x.  N ) )  e.  RR+ )
179128, 178ltaddrpd 10679 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( 2  x.  N ) ^ 2 )  <  ( ( ( 2  x.  N
) ^ 2 )  +  ( 2  x.  ( 2  x.  N
) ) ) )
180122, 128, 132, 177, 179lttrd 9233 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( m ^
2 )  +  ( n ^ 2 ) )  <  ( ( ( 2  x.  N
) ^ 2 )  +  ( 2  x.  ( 2  x.  N
) ) ) )
181122, 132, 134, 180ltadd1dd 9639 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  <  ( ( ( ( 2  x.  N ) ^ 2 )  +  ( 2  x.  ( 2  x.  N ) ) )  +  1 ) )
18233ad2ant1 979 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  =  ( (
2  x.  N )  +  1 ) )
183182oveq1d 6098 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( P ^ 2 )  =  ( ( ( 2  x.  N
)  +  1 ) ^ 2 ) )
18497sqvald 11522 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( P ^ 2 )  =  ( P  x.  P ) )
185126nncnd 10018 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( 2  x.  N
)  e.  CC )
186 binom21 11499 . . . . . . . . . . . . 13  |-  ( ( 2  x.  N )  e.  CC  ->  (
( ( 2  x.  N )  +  1 ) ^ 2 )  =  ( ( ( ( 2  x.  N
) ^ 2 )  +  ( 2  x.  ( 2  x.  N
) ) )  +  1 ) )
187185, 186syl 16 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( 2  x.  N )  +  1 ) ^ 2 )  =  ( ( ( ( 2  x.  N ) ^ 2 )  +  ( 2  x.  ( 2  x.  N ) ) )  +  1 ) )
188183, 184, 1873eqtr3d 2478 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( P  x.  P
)  =  ( ( ( ( 2  x.  N ) ^ 2 )  +  ( 2  x.  ( 2  x.  N ) ) )  +  1 ) )
189181, 188breqtrrd 4240 . . . . . . . . . 10  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  <  ( P  x.  P ) )
190104nnred 10017 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  RR )
19145nngt0d 10045 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
0  <  P )
192 ltdivmul 9884 . . . . . . . . . . 11  |-  ( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  RR  /\  P  e.  RR  /\  ( P  e.  RR  /\  0  <  P ) )  -> 
( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  <  P  <->  ( ( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  <  ( P  x.  P ) ) )
193190, 51, 51, 191, 192syl112anc 1189 . . . . . . . . . 10  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  <  P  <->  ( ( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  <  ( P  x.  P ) ) )
194189, 193mpbird 225 . . . . . . . . 9  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  <  P )
195 1z 10313 . . . . . . . . . 10  |-  1  e.  ZZ
196 elfzm11 11118 . . . . . . . . . 10  |-  ( ( 1  e.  ZZ  /\  P  e.  ZZ )  ->  ( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  e.  ( 1 ... ( P  -  1 ) )  <-> 
( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  e.  ZZ  /\  1  <_  ( (
( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  /\  ( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  <  P )
) )
197195, 69, 196sylancr 646 . . . . . . . . 9  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  e.  ( 1 ... ( P  -  1 ) )  <-> 
( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  e.  ZZ  /\  1  <_  ( (
( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  /\  ( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  <  P )
) )
198112, 121, 194, 197mpbir3and 1138 . . . . . . . 8  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  e.  ( 1 ... ( P  - 
1 ) ) )
199 gzreim 13309 . . . . . . . . 9  |-  ( ( m  e.  ZZ  /\  n  e.  ZZ )  ->  ( m  +  ( _i  x.  n ) )  e.  ZZ [
_i ] )
20081, 58, 199syl2anc 644 . . . . . . . 8  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( m  +  ( _i  x.  n ) )  e.  ZZ [
_i ] )
201 gzcn 13302 . . . . . . . . . . . . 13  |-  ( ( m  +  ( _i  x.  n ) )  e.  ZZ [ _i ]  ->  ( m  +  ( _i  x.  n
) )  e.  CC )
202200, 201syl 16 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( m  +  ( _i  x.  n ) )  e.  CC )
203202absvalsq2d 12247 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( abs `  (
m  +  ( _i  x.  n ) ) ) ^ 2 )  =  ( ( ( Re `  ( m  +  ( _i  x.  n ) ) ) ^ 2 )  +  ( ( Im `  ( m  +  (
_i  x.  n )
) ) ^ 2 ) ) )
204141, 149crred 12038 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( Re `  (
m  +  ( _i  x.  n ) ) )  =  m )
205204oveq1d 6098 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( Re `  ( m  +  (
_i  x.  n )
) ) ^ 2 )  =  ( m ^ 2 ) )
206141, 149crimd 12039 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( Im `  (
m  +  ( _i  x.  n ) ) )  =  n )
207206oveq1d 6098 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( Im `  ( m  +  (
_i  x.  n )
) ) ^ 2 )  =  ( n ^ 2 ) )
208205, 207oveq12d 6101 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( Re
`  ( m  +  ( _i  x.  n
) ) ) ^
2 )  +  ( ( Im `  (
m  +  ( _i  x.  n ) ) ) ^ 2 ) )  =  ( ( m ^ 2 )  +  ( n ^
2 ) ) )
209203, 208eqtrd 2470 . . . . . . . . . 10  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( abs `  (
m  +  ( _i  x.  n ) ) ) ^ 2 )  =  ( ( m ^ 2 )  +  ( n ^ 2 ) ) )
210209oveq1d 6098 . . . . . . . . 9  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( abs `  ( m  +  ( _i  x.  n ) ) ) ^ 2 )  +  1 )  =  ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 ) )
211104nncnd 10018 . . . . . . . . . 10  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  CC )
212211, 97, 109divcan1d 9793 . . . . . . . . 9  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  x.  P
)  =  ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 ) )
213210, 212eqtr4d 2473 . . . . . . . 8  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
( ( ( abs `  ( m  +  ( _i  x.  n ) ) ) ^ 2 )  +  1 )  =  ( ( ( ( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  x.  P ) )
214 oveq1 6090 . . . . . . . . . 10  |-  ( k  =  ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  ->  (
k  x.  P )  =  ( ( ( ( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  x.  P ) )
215214eqeq2d 2449 . . . . . . . . 9  |-  ( k  =  ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  ->  (
( ( ( abs `  u ) ^ 2 )  +  1 )  =  ( k  x.  P )  <->  ( (
( abs `  u
) ^ 2 )  +  1 )  =  ( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  x.  P
) ) )
216 fveq2 5730 . . . . . . . . . . . 12  |-  ( u  =  ( m  +  ( _i  x.  n
) )  ->  ( abs `  u )  =  ( abs `  (
m  +  ( _i  x.  n ) ) ) )
217216oveq1d 6098 . . . . . . . . . . 11  |-  ( u  =  ( m  +  ( _i  x.  n
) )  ->  (
( abs `  u
) ^ 2 )  =  ( ( abs `  ( m  +  ( _i  x.  n ) ) ) ^ 2 ) )
218217oveq1d 6098 . . . . . . . . . 10  |-  ( u  =  ( m  +  ( _i  x.  n
) )  ->  (
( ( abs `  u
) ^ 2 )  +  1 )  =  ( ( ( abs `  ( m  +  ( _i  x.  n ) ) ) ^ 2 )  +  1 ) )
219218eqeq1d 2446 . . . . . . . . 9  |-  ( u  =  ( m  +  ( _i  x.  n
) )  ->  (
( ( ( abs `  u ) ^ 2 )  +  1 )  =  ( ( ( ( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  x.  P )  <->  ( (
( abs `  (
m  +  ( _i  x.  n ) ) ) ^ 2 )  +  1 )  =  ( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  x.  P
) ) )
220215, 219rspc2ev 3062 . . . . . . . 8  |-  ( ( ( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  e.  ( 1 ... ( P  - 
1 ) )  /\  ( m  +  (
_i  x.  n )
)  e.  ZZ [
_i ]  /\  (
( ( abs `  (
m  +  ( _i  x.  n ) ) ) ^ 2 )  +  1 )  =  ( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  x.  P
) )  ->  E. k  e.  ( 1 ... ( P  -  1 ) ) E. u  e.  ZZ [ _i ] 
( ( ( abs `  u ) ^ 2 )  +  1 )  =  ( k  x.  P ) )
221198, 200, 213, 220syl3anc 1185 . . . . . . 7  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  E. k  e.  (
1 ... ( P  - 
1 ) ) E. u  e.  ZZ [
_i ]  ( ( ( abs `  u
) ^ 2 )  +  1 )  =  ( k  x.  P
) )
2222213expia 1156 . . . . . 6  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) ) )  -> 
( ( ( m ^ 2 )  mod 
P )  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod  P ) )  ->  E. k  e.  ( 1 ... ( P  -  1 ) ) E. u  e.  ZZ [ _i ]  ( ( ( abs `  u
) ^ 2 )  +  1 )  =  ( k  x.  P
) ) )
22342, 222syl5 31 . . . . 5  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) ) )  -> 
( ( j  =  ( ( m ^
2 )  mod  P
)  /\  j  =  ( ( P  - 
1 )  -  (
( n ^ 2 )  mod  P ) ) )  ->  E. k  e.  ( 1 ... ( P  -  1 ) ) E. u  e.  ZZ [ _i ] 
( ( ( abs `  u ) ^ 2 )  +  1 )  =  ( k  x.  P ) ) )
224223rexlimdvva 2839 . . . 4  |-  ( ph  ->  ( E. m  e.  ( 0 ... N
) E. n  e.  ( 0 ... N
) ( j  =  ( ( m ^
2 )  mod  P
)  /\  j  =  ( ( P  - 
1 )  -  (
( n ^ 2 )  mod  P ) ) )  ->  E. k  e.  ( 1 ... ( P  -  1 ) ) E. u  e.  ZZ [ _i ] 
( ( ( abs `  u ) ^ 2 )  +  1 )  =  ( k  x.  P ) ) )
22541, 224syl5bi 210 . . 3  |-  ( ph  ->  ( j  e.  ( A  i^i  ran  F
)  ->  E. k  e.  ( 1 ... ( P  -  1 ) ) E. u  e.  ZZ [ _i ] 
( ( ( abs `  u ) ^ 2 )  +  1 )  =  ( k  x.  P ) ) )
226225exlimdv 1647 . 2  |-  ( ph  ->  ( E. j  j  e.  ( A  i^i  ran 
F )  ->  E. k  e.  ( 1 ... ( P  -  1 ) ) E. u  e.  ZZ [ _i ] 
( ( ( abs `  u ) ^ 2 )  +  1 )  =  ( k  x.  P ) ) )
2279, 226mpd 15 1  |-  ( ph  ->  E. k  e.  ( 1 ... ( P  -  1 ) ) E. u  e.  ZZ [ _i ]  ( ( ( abs `  u
) ^ 2 )  +  1 )  =  ( k  x.  P
) )
Colors of variables: wff set class
Syntax hints:    -> wi 4    <-> wb 178    /\ wa 360    /\ w3a 937   E.wex 1551    = wceq 1653    e. wcel 1726   {cab 2424    =/= wne 2601   E.wrex 2708    i^i cin 3321   (/)c0 3630   class class class wbr 4214    e. cmpt 4268   ran crn 4881   ` cfv 5456  (class class class)co 6083   CCcc 8990   RRcr 8991   0cc0 8992   1c1 8993   _ici 8994    + caddc 8995    x. cmul 8997    < clt 9122    <_ cle 9123    - cmin 9293    / cdiv 9679   NNcn 10002   2c2 10051   4c4 10053   NN0cn0 10223   ZZcz 10284   RR+crp 10614   ...cfz 11045    mod cmo 11252   ^cexp 11384   Recre 11904   Imcim 11905   abscabs 12041    || cdivides 12854   Primecprime 13081   ZZ [ _i ]cgz 13299
This theorem is referenced by:  4sqlem13  13327
This theorem was proved from axioms:  ax-1 5  ax-2 6  ax-3 7  ax-mp 8  ax-gen 1556  ax-5 1567  ax-17 1627  ax-9 1667  ax-8 1688  ax-13 1728  ax-14 1730  ax-6 1745  ax-7 1750  ax-11 1762  ax-12 1951  ax-ext 2419  ax-rep 4322  ax-sep 4332  ax-nul 4340  ax-pow 4379  ax-pr 4405  ax-un 4703  ax-cnex 9048  ax-resscn 9049  ax-1cn 9050  ax-icn 9051  ax-addcl 9052  ax-addrcl 9053  ax-mulcl 9054  ax-mulrcl 9055  ax-mulcom 9056  ax-addass 9057  ax-mulass 9058  ax-distr 9059  ax-i2m1 9060  ax-1ne0 9061  ax-1rid 9062  ax-rnegex 9063  ax-rrecex 9064  ax-cnre 9065  ax-pre-lttri 9066  ax-pre-lttrn 9067  ax-pre-ltadd 9068  ax-pre-mulgt0 9069  ax-pre-sup 9070
This theorem depends on definitions:  df-bi 179  df-or 361  df-an 362  df-3or 938  df-3an 939  df-tru 1329  df-ex 1552  df-nf 1555  df-sb 1660  df-eu 2287  df-mo 2288  df-clab 2425  df-cleq 2431  df-clel 2434  df-nfc 2563  df-ne 2603  df-nel 2604  df-ral 2712  df-rex 2713  df-reu 2714  df-rmo 2715  df-rab 2716  df-v 2960  df-sbc 3164  df-csb 3254  df-dif 3325  df-un 3327  df-in 3329  df-ss 3336  df-pss 3338  df-nul 3631  df-if 3742  df-pw 3803  df-sn 3822  df-pr 3823  df-tp 3824  df-op 3825  df-uni 4018  df-int 4053  df-iun 4097  df-br 4215  df-opab 4269  df-mpt 4270  df-tr 4305  df-eprel 4496  df-id 4500  df-po 4505  df-so 4506  df-fr 4543  df-we 4545  df-ord 4586  df-on 4587  df-lim 4588  df-suc 4589  df-om 4848  df-xp 4886  df-rel 4887  df-cnv 4888  df-co 4889  df-dm 4890  df-rn 4891  df-res 4892  df-ima 4893  df-iota 5420  df-fun 5458  df-fn 5459  df-f 5460  df-f1 5461  df-fo 5462  df-f1o 5463  df-fv 5464  df-ov 6086  df-oprab 6087  df-mpt2 6088  df-1st 6351  df-2nd 6352  df-riota 6551  df-recs 6635  df-rdg 6670  df-1o 6726  df-2o 6727  df-oadd 6730  df-er 6907  df-en 7112  df-dom 7113  df-sdom 7114  df-fin 7115  df-sup 7448  df-card 7828  df-cda 8050  df-pnf 9124  df-mnf 9125  df-xr 9126  df-ltxr 9127  df-le 9128  df-sub 9295  df-neg 9296  df-div 9680  df-nn 10003  df-2 10060  df-3 10061  df-4 10062  df-n0 10224  df-z 10285  df-uz 10491  df-rp 10615  df-fz 11046  df-fl 11204  df-mod 11253  df-seq 11326  df-exp 11385  df-hash 11621  df-cj 11906  df-re 11907  df-im 11908  df-sqr 12042  df-abs 12043  df-dvds 12855  df-gcd 13009  df-prm 13082  df-gz 13300
  Copyright terms: Public domain W3C validator