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

Theorem 4sqlem12 13019
Description: Lemma for 4sq 13027. 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 13018 . . 3  |-  ( ph  ->  ( A  i^i  ran  F )  =/=  (/) )
8 n0 3477 . . 3  |-  ( ( A  i^i  ran  F
)  =/=  (/)  <->  E. j 
j  e.  ( A  i^i  ran  F )
)
97, 8sylib 188 . 2  |-  ( ph  ->  E. j  j  e.  ( A  i^i  ran  F ) )
10 vex 2804 . . . . . . 7  |-  j  e. 
_V
11 eqeq1 2302 . . . . . . . 8  |-  ( u  =  j  ->  (
u  =  ( ( m ^ 2 )  mod  P )  <->  j  =  ( ( m ^
2 )  mod  P
) ) )
1211rexbidv 2577 . . . . . . 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 2930 . . . . . 6  |-  ( j  e.  A  <->  E. m  e.  ( 0 ... N
) j  =  ( ( m ^ 2 )  mod  P ) )
14 abid 2284 . . . . . . . . 9  |-  ( j  e.  { j  |  E. v  e.  A  j  =  ( ( P  -  1 )  -  v ) }  <->  E. v  e.  A  j  =  ( ( P  -  1 )  -  v ) )
155rexeqi 2754 . . . . . . . . 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 5881 . . . . . . . . . . . . . 14  |-  ( m  =  n  ->  (
m ^ 2 )  =  ( n ^
2 ) )
1716oveq1d 5889 . . . . . . . . . . . . 13  |-  ( m  =  n  ->  (
( m ^ 2 )  mod  P )  =  ( ( n ^ 2 )  mod 
P ) )
1817eqeq2d 2307 . . . . . . . . . . . 12  |-  ( m  =  n  ->  (
u  =  ( ( m ^ 2 )  mod  P )  <->  u  =  ( ( n ^
2 )  mod  P
) ) )
1918cbvrexv 2778 . . . . . . . . . . 11  |-  ( E. m  e.  ( 0 ... N ) u  =  ( ( m ^ 2 )  mod 
P )  <->  E. n  e.  ( 0 ... N
) u  =  ( ( n ^ 2 )  mod  P ) )
20 eqeq1 2302 . . . . . . . . . . . 12  |-  ( u  =  v  ->  (
u  =  ( ( n ^ 2 )  mod  P )  <->  v  =  ( ( n ^
2 )  mod  P
) ) )
2120rexbidv 2577 . . . . . . . . . . 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 248 . . . . . . . . . 10  |-  ( u  =  v  ->  ( E. m  e.  (
0 ... N ) u  =  ( ( m ^ 2 )  mod 
P )  <->  E. n  e.  ( 0 ... N
) v  =  ( ( n ^ 2 )  mod  P ) ) )
2322rexab 2941 . . . . . . . . 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 262 . . . . . . . 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 4941 . . . . . . . . 9  |-  ran  F  =  { j  |  E. v  e.  A  j  =  ( ( P  -  1 )  -  v ) }
2625eleq2i 2360 . . . . . . . 8  |-  ( j  e.  ran  F  <->  j  e.  { j  |  E. v  e.  A  j  =  ( ( P  - 
1 )  -  v
) } )
27 rexcom4 2820 . . . . . . . . 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 2706 . . . . . . . . . 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 1572 . . . . . . . . 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 240 . . . . . . . 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 268 . . . . . . 7  |-  ( j  e.  ran  F  <->  E. n  e.  ( 0 ... N
) E. v ( v  =  ( ( n ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  v ) ) )
32 ovex 5899 . . . . . . . . 9  |-  ( ( n ^ 2 )  mod  P )  e. 
_V
33 oveq2 5882 . . . . . . . . . 10  |-  ( v  =  ( ( n ^ 2 )  mod 
P )  ->  (
( P  -  1 )  -  v )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )
3433eqeq2d 2307 . . . . . . . . 9  |-  ( v  =  ( ( n ^ 2 )  mod 
P )  ->  (
j  =  ( ( P  -  1 )  -  v )  <->  j  =  ( ( P  - 
1 )  -  (
( n ^ 2 )  mod  P ) ) ) )
3532, 34ceqsexv 2836 . . . . . . . 8  |-  ( E. v ( v  =  ( ( n ^
2 )  mod  P
)  /\  j  =  ( ( P  - 
1 )  -  v
) )  <->  j  =  ( ( P  - 
1 )  -  (
( n ^ 2 )  mod  P ) ) )
3635rexbii 2581 . . . . . . 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 240 . . . . . 6  |-  ( j  e.  ran  F  <->  E. n  e.  ( 0 ... N
) j  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod  P ) ) )
3813, 37anbi12i 678 . . . . 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 3371 . . . . 5  |-  ( j  e.  ( A  i^i  ran 
F )  <->  ( j  e.  A  /\  j  e.  ran  F ) )
40 reeanv 2720 . . . . 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 268 . . . 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 2314 . . . . . 6  |-  ( ( j  =  ( ( m ^ 2 )  mod  P )  /\  j  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod 
P ) ) )  ->  ( ( m ^ 2 )  mod 
P )  =  ( ( P  -  1 )  -  ( ( n ^ 2 )  mod  P ) ) )
4343ad2ant1 976 . . . . . . . . . . . . . . . . . . 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 12777 . . . . . . . . . . . . . . . . . . 19  |-  ( P  e.  Prime  ->  P  e.  NN )
4543, 44syl 15 . . . . . . . . . . . . . . . . . 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 10021 . . . . . . . . . . . . . . . . . 18  |-  ( P  e.  NN  ->  ( P  -  1 )  e.  NN0 )
4745, 46syl 15 . . . . . . . . . . . . . . . . 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 10035 . . . . . . . . . . . . . . . 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 10405 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  e.  RR+ )
5047nn0ge0d 10037 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
0  <_  ( P  -  1 ) )
5145nnred 9777 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  e.  RR )
5251ltm1d 9705 . . . . . . . . . . . . . . . 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 11009 . . . . . . . . . . . . . . . 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 1183 . . . . . . . . . . . . . . 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 5889 . . . . . . . . . . . . . 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 982 . . . . . . . . . . . . . . . . . . . . 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 10814 . . . . . . . . . . . . . . . . . . . . 21  |-  ( n  e.  ( 0 ... N )  ->  n  e.  ZZ )
5856, 57syl 15 . . . . . . . . . . . . . . . . . . . 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 11197 . . . . . . . . . . . . . . . . . . . 20  |-  ( n  e.  ZZ  ->  (
n ^ 2 )  e.  NN0 )
6058, 59syl 15 . . . . . . . . . . . . . . . . . . 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 10035 . . . . . . . . . . . . . . . . . 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 10997 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n ^ 2 )  e.  RR  /\  P  e.  RR+ )  -> 
( ( n ^
2 )  mod  P
)  <  P )
6361, 49, 62syl2anc 642 . . . . . . . . . . . . . . . . 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 11190 . . . . . . . . . . . . . . . . . . . . 21  |-  ( n  e.  ZZ  ->  (
n ^ 2 )  e.  ZZ )
6558, 64syl 15 . . . . . . . . . . . . . . . . . . . 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 11006 . . . . . . . . . . . . . . . . . . 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 10131 . . . . . . . . . . . . . . . . . 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 12778 . . . . . . . . . . . . . . . . . . 19  |-  ( P  e.  Prime  ->  P  e.  ZZ )
6943, 68syl 15 . . . . . . . . . . . . . . . . . 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 10086 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n ^
2 )  mod  P
)  e.  ZZ  /\  P  e.  ZZ )  ->  ( ( ( n ^ 2 )  mod 
P )  <  P  <->  ( ( n ^ 2 )  mod  P )  <_  ( P  - 
1 ) ) )
7167, 69, 70syl2anc 642 . . . . . . . . . . . . . . . . 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 201 . . . . . . . . . . . . . . . 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 4065 . . . . . . . . . . . . . . 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 11024 . . . . . . . . . . . . . . . 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 1182 . . . . . . . . . . . . . . 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 201 . . . . . . . . . . . . . 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 957 . . . . . . . . . . . . . 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 2339 . . . . . . . . . . . . 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 981 . . . . . . . . . . . . . . . 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 10814 . . . . . . . . . . . . . . . 16  |-  ( m  e.  ( 0 ... N )  ->  m  e.  ZZ )
8179, 80syl 15 . . . . . . . . . . . . . . 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 11190 . . . . . . . . . . . . . . 15  |-  ( m  e.  ZZ  ->  (
m ^ 2 )  e.  ZZ )
8381, 82syl 15 . . . . . . . . . . . . . 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 10131 . . . . . . . . . . . . . . 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 10138 . . . . . . . . . . . . . 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 12554 . . . . . . . . . . . . . 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 1182 . . . . . . . . . . . . 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 201 . . . . . . . . . . . 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 11197 . . . . . . . . . . . . . . . 16  |-  ( m  e.  ZZ  ->  (
m ^ 2 )  e.  NN0 )
9081, 89syl 15 . . . . . . . . . . . . . . 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 10036 . . . . . . . . . . . . . 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 10036 . . . . . . . . . . . . . 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 10036 . . . . . . . . . . . . . 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 9203 . . . . . . . . . . . . 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 10038 . . . . . . . . . . . . . . 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 10036 . . . . . . . . . . . . . 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 9778 . . . . . . . . . . . . . 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 8811 . . . . . . . . . . . . . . 15  |-  1  e.  CC
9998a1i 10 . . . . . . . . . . . . . 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 9203 . . . . . . . . . . . . 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 2328 . . . . . . . . . . . 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 4063 . . . . . . . . . . 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 10019 . . . . . . . . . . . . . 14  |-  ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  e.  NN0  ->  ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  NN )
10495, 103syl 15 . . . . . . . . . . . . 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 10132 . . . . . . . . . . . 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 12586 . . . . . . . . . . . 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 642 . . . . . . . . . . 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 223 . . . . . . . . . 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 9806 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  P  =/=  0 )
110 dvdsval2 12550 . . . . . . . . . . 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 1182 . . . . . . . . . 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 201 . . . . . . . . 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 10379 . . . . . . . . . . . . . 14  |-  ( ( ( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  e.  NN  ->  (
( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  e.  RR+ )
114 nnrp 10379 . . . . . . . . . . . . . 14  |-  ( P  e.  NN  ->  P  e.  RR+ )
115 rpdivcl 10392 . . . . . . . . . . . . . 14  |-  ( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  RR+  /\  P  e.  RR+ )  ->  (
( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  e.  RR+ )
116113, 114, 115syl2an 463 . . . . . . . . . . . . 13  |-  ( ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  e.  NN  /\  P  e.  NN )  ->  ( ( ( ( m ^ 2 )  +  ( n ^
2 ) )  +  1 )  /  P
)  e.  RR+ )
117104, 45, 116syl2anc 642 . . . . . . . . . . . 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 10409 . . . . . . . . . . 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 10050 . . . . . . . . . . 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 645 . . . . . . . . . 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 9804 . . . . . . . . 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 10035 . . . . . . . . . . . 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 9893 . . . . . . . . . . . . . . . 16  |-  2  e.  NN
12423ad2ant1 976 . . . . . . . . . . . . . . . 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 9785 . . . . . . . . . . . . . . . 16  |-  ( ( 2  e.  NN  /\  N  e.  NN )  ->  ( 2  x.  N
)  e.  NN )
126123, 124, 125sylancr 644 . . . . . . . . . . . . . . 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 9777 . . . . . . . . . . . . . 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 11287 . . . . . . . . . . . . 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 9785 . . . . . . . . . . . . . . 15  |-  ( ( 2  e.  NN  /\  ( 2  x.  N
)  e.  NN )  ->  ( 2  x.  ( 2  x.  N
) )  e.  NN )
130123, 126, 129sylancr 644 . . . . . . . . . . . . . 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 9777 . . . . . . . . . . . . 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 8878 . . . . . . . . . . . 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 8853 . . . . . . . . . . . . 13  |-  1  e.  RR
134133a1i 10 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
1  e.  RR )
135124nnsqcld 11281 . . . . . . . . . . . . . . . 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 9785 . . . . . . . . . . . . . . . 16  |-  ( ( 2  e.  NN  /\  ( N ^ 2 )  e.  NN )  -> 
( 2  x.  ( N ^ 2 ) )  e.  NN )
137123, 135, 136sylancr 644 . . . . . . . . . . . . . . 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 9777 . . . . . . . . . . . . . 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 10035 . . . . . . . . . . . . . . . 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 9777 . . . . . . . . . . . . . . . 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 10133 . . . . . . . . . . . . . . . . 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 10815 . . . . . . . . . . . . . . . . . 18  |-  ( m  e.  ( 0 ... N )  ->  0  <_  m )
14379, 142syl 15 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
0  <_  m )
144124nnred 9777 . . . . . . . . . . . . . . . . 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 10816 . . . . . . . . . . . . . . . . . 18  |-  ( m  e.  ( 0 ... N )  ->  m  <_  N )
14679, 145syl 15 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  m  <_  N )
147 le2sq2 11195 . . . . . . . . . . . . . . . . 17  |-  ( ( ( m  e.  RR  /\  0  <_  m )  /\  ( N  e.  RR  /\  m  <_  N )
)  ->  ( m ^ 2 )  <_ 
( N ^ 2 ) )
148141, 143, 144, 146, 147syl22anc 1183 . . . . . . . . . . . . . . . 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 10133 . . . . . . . . . . . . . . . . 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 10815 . . . . . . . . . . . . . . . . . 18  |-  ( n  e.  ( 0 ... N )  ->  0  <_  n )
15156, 150syl 15 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
0  <_  n )
152 elfzle2 10816 . . . . . . . . . . . . . . . . . 18  |-  ( n  e.  ( 0 ... N )  ->  n  <_  N )
15356, 152syl 15 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  ->  n  <_  N )
154 le2sq2 11195 . . . . . . . . . . . . . . . . 17  |-  ( ( ( n  e.  RR  /\  0  <_  n )  /\  ( N  e.  RR  /\  n  <_  N )
)  ->  ( n ^ 2 )  <_ 
( N ^ 2 ) )
155149, 151, 144, 153, 154syl22anc 1183 . . . . . . . . . . . . . . . 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 9406 . . . . . . . . . . . . . . 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 9778 . . . . . . . . . . . . . . . 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 9970 . . . . . . . . . . . . . . 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 4065 . . . . . . . . . . . . . 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 9906 . . . . . . . . . . . . . . . 16  |-  2  <  4
161 2re 9831 . . . . . . . . . . . . . . . . . 18  |-  2  e.  RR
162161a1i 10 . . . . . . . . . . . . . . . . 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 9835 . . . . . . . . . . . . . . . . . 18  |-  4  e.  RR
164163a1i 10 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
4  e.  RR )
165135nngt0d 9805 . . . . . . . . . . . . . . . . 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 9622 . . . . . . . . . . . . . . . . 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 1186 . . . . . . . . . . . . . . . 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 202 . . . . . . . . . . . . . . 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 9832 . . . . . . . . . . . . . . . . 17  |-  2  e.  CC
170124nncnd 9778 . . . . . . . . . . . . . . . . 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 11183 . . . . . . . . . . . . . . . . 17  |-  ( ( 2  e.  CC  /\  N  e.  CC )  ->  ( ( 2  x.  N ) ^ 2 )  =  ( ( 2 ^ 2 )  x.  ( N ^
2 ) ) )
172169, 170, 171sylancr 644 . . . . . . . . . . . . . . . 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 11215 . . . . . . . . . . . . . . . . 17  |-  ( 2 ^ 2 )  =  4
174173oveq1i 5884 . . . . . . . . . . . . . . . 16  |-  ( ( 2 ^ 2 )  x.  ( N ^
2 ) )  =  ( 4  x.  ( N ^ 2 ) )
175172, 174syl6eq 2344 . . . . . . . . . . . . . . 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 4065 . . . . . . . . . . . . . 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 8990 . . . . . . . . . . . . 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 10405 . . . . . . . . . . . . . 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 10435 . . . . . . . . . . . . 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 8993 . . . . . . . . . . . 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 9399 . . . . . . . . . . 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 976 . . . . . . . . . . . . 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 5889 . . . . . . . . . . . 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 11258 . . . . . . . . . . . 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 9778 . . . . . . . . . . . . 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 11235 . . . . . . . . . . . . 13  |-  ( ( 2  x.  N )  e.  CC  ->  (
( ( 2  x.  N )  +  1 ) ^ 2 )  =  ( ( ( ( 2  x.  N
) ^ 2 )  +  ( 2  x.  ( 2  x.  N
) ) )  +  1 ) )
187185, 186syl 15 . . . . . . . . . . . 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 2336 . . . . . . . . . . 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 4065 . . . . . . . . . 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 9777 . . . . . . . . . . 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 9805 . . . . . . . . . . 11  |-  ( (
ph  /\  ( m  e.  ( 0 ... N
)  /\  n  e.  ( 0 ... N
) )  /\  (
( m ^ 2 )  mod  P )  =  ( ( P  -  1 )  -  ( ( n ^
2 )  mod  P
) ) )  -> 
0  <  P )
192 ltdivmul 9644 . . . . . . . . . . 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 1186 . . . . . . . . . 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 223 . . . . . . . . 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 10069 . . . . . . . . . 10  |-  1  e.  ZZ
196 elfzm11 10869 . . . . . . . . . 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 644 . . . . . . . . 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 1135 . . . . . . . 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 13002 . . . . . . . . 9  |-  ( ( m  e.  ZZ  /\  n  e.  ZZ )  ->  ( m  +  ( _i  x.  n ) )  e.  ZZ [
_i ] )
20081, 58, 199syl2anc 642 . . . . . . . 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 12995 . . . . . . . . . . . . 13  |-  ( ( m  +  ( _i  x.  n ) )  e.  ZZ [ _i ]  ->  ( m  +  ( _i  x.  n
) )  e.  CC )
202200, 201syl 15 . . . . . . . . . . . 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 11941 . . . . . . . . . . 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 11732 . . . . . . . . . . . . 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 5889 . . . . . . . . . . . 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 11733 . . . . . . . . . . . . 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 5889 . . . . . . . . . . . 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 5892 . . . . . . . . . . 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 2328 . . . . . . . . . 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 5889 . . . . . . . . 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 9778 . . . . . . . . . 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 9553 . . . . . . . . 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 2331 . . . . . . . 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 5881 . . . . . . . . . 10  |-  ( k  =  ( ( ( ( m ^ 2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  ->  (
k  x.  P )  =  ( ( ( ( ( m ^
2 )  +  ( n ^ 2 ) )  +  1 )  /  P )  x.  P ) )
215214eqeq2d 2307 . . . . . . . . 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 5541 . . . . . . . . . . . 12  |-  ( u  =  ( m  +  ( _i  x.  n
) )  ->  ( abs `  u )  =  ( abs `  (
m  +  ( _i  x.  n ) ) ) )
217216oveq1d 5889 . . . . . . . . . . 11  |-  ( u  =  ( m  +  ( _i  x.  n
) )  ->  (
( abs `  u
) ^ 2 )  =  ( ( abs `  ( m  +  ( _i  x.  n ) ) ) ^ 2 ) )
218217oveq1d 5889 . . . . . . . . . 10  |-  ( u  =  ( m  +  ( _i  x.  n
) )  ->  (
( ( abs `  u
) ^ 2 )  +  1 )  =  ( ( ( abs `  ( m  +  ( _i  x.  n ) ) ) ^ 2 )  +  1 ) )
219218eqeq1d 2304 . . . . . . . . 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 2905 . . . . . . . 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 1182 . . . . . . 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 1153 . . . . . 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 28 . . . . 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 2687 . . . 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 208 . . 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 1626 . 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 14 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 176    /\ wa 358    /\ w3a 934   E.wex 1531    = wceq 1632    e. wcel 1696   {cab 2282    =/= wne 2459   E.wrex 2557    i^i cin 3164   (/)c0 3468   class class class wbr 4039    e. cmpt 4093   ran crn 4706   ` cfv 5271  (class class class)co 5874   CCcc 8751   RRcr 8752   0cc0 8753   1c1 8754   _ici 8755    + caddc 8756    x. cmul 8758    < clt 8883    <_ cle 8884    - cmin 9053    / cdiv 9439   NNcn 9762   2c2 9811   4c4 9813   NN0cn0 9981   ZZcz 10040   RR+crp 10370   ...cfz 10798    mod cmo 10989   ^cexp 11120   Recre 11598   Imcim 11599   abscabs 11735    || cdivides 12547   Primecprime 12774   ZZ [ _i ]cgz 12992
This theorem is referenced by:  4sqlem13  13020
This theorem was proved from axioms:  ax-1 5  ax-2 6  ax-3 7  ax-mp 8  ax-gen 1536  ax-5 1547  ax-17 1606  ax-9 1644  ax-8 1661  ax-13 1698  ax-14 1700  ax-6 1715  ax-7 1720  ax-11 1727  ax-12 1878  ax-ext 2277  ax-rep 4147  ax-sep 4157  ax-nul 4165  ax-pow 4204  ax-pr 4230  ax-un 4528  ax-cnex 8809  ax-resscn 8810  ax-1cn 8811  ax-icn 8812  ax-addcl 8813  ax-addrcl 8814  ax-mulcl 8815  ax-mulrcl 8816  ax-mulcom 8817  ax-addass 8818  ax-mulass 8819  ax-distr 8820  ax-i2m1 8821  ax-1ne0 8822  ax-1rid 8823  ax-rnegex 8824  ax-rrecex 8825  ax-cnre 8826  ax-pre-lttri 8827  ax-pre-lttrn 8828  ax-pre-ltadd 8829  ax-pre-mulgt0 8830  ax-pre-sup 8831
This theorem depends on definitions:  df-bi 177  df-or 359  df-an 360  df-3or 935  df-3an 936  df-tru 1310  df-ex 1532  df-nf 1535  df-sb 1639  df-eu 2160  df-mo 2161  df-clab 2283  df-cleq 2289  df-clel 2292  df-nfc 2421  df-ne 2461  df-nel 2462  df-ral 2561  df-rex 2562  df-reu 2563  df-rmo 2564  df-rab 2565  df-v 2803  df-sbc 3005  df-csb 3095  df-dif 3168  df-un 3170  df-in 3172  df-ss 3179  df-pss 3181  df-nul 3469  df-if 3579  df-pw 3640  df-sn 3659  df-pr 3660  df-tp 3661  df-op 3662  df-uni 3844  df-int 3879  df-iun 3923  df-br 4040  df-opab 4094  df-mpt 4095  df-tr 4130  df-eprel 4321  df-id 4325  df-po 4330  df-so 4331  df-fr 4368  df-we 4370  df-ord 4411  df-on 4412  df-lim 4413  df-suc 4414  df-om 4673  df-xp 4711  df-rel 4712  df-cnv 4713  df-co 4714  df-dm 4715  df-rn 4716  df-res 4717  df-ima 4718  df-iota 5235  df-fun 5273  df-fn 5274  df-f 5275  df-f1 5276  df-fo 5277  df-f1o 5278  df-fv 5279  df-ov 5877  df-oprab 5878  df-mpt2 5879  df-1st 6138  df-2nd 6139  df-riota 6320  df-recs 6404  df-rdg 6439  df-1o 6495  df-2o 6496  df-oadd 6499  df-er 6676  df-en 6880  df-dom 6881  df-sdom 6882  df-fin 6883  df-sup 7210  df-card 7588  df-cda 7810  df-pnf 8885  df-mnf 8886  df-xr 8887  df-ltxr 8888  df-le 8889  df-sub 9055  df-neg 9056  df-div 9440  df-nn 9763  df-2 9820  df-3 9821  df-4 9822  df-n0 9982  df-z 10041  df-uz 10247  df-rp 10371  df-fz 10799  df-fl 10941  df-mod 10990  df-seq 11063  df-exp 11121  df-hash 11354  df-cj 11600  df-re 11601  df-im 11602  df-sqr 11736  df-abs 11737  df-dvds 12548  df-gcd 12702  df-prm 12775  df-gz 12993
  Copyright terms: Public domain W3C validator