ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  lgseisenlem2 Unicode version

Theorem lgseisenlem2 16190
Description: Lemma for lgseisen 16193. The function  M is an injection (and hence a bijection by the pigeonhole principle). (Contributed by Mario Carneiro, 17-Jun-2015.)
Hypotheses
Ref Expression
lgseisen.1  |-  ( ph  ->  P  e.  ( Prime  \  { 2 } ) )
lgseisen.2  |-  ( ph  ->  Q  e.  ( Prime  \  { 2 } ) )
lgseisen.3  |-  ( ph  ->  P  =/=  Q )
lgseisen.4  |-  R  =  ( ( Q  x.  ( 2  x.  x
) )  mod  P
)
lgseisen.5  |-  M  =  ( x  e.  ( 1 ... ( ( P  -  1 )  /  2 ) ) 
|->  ( ( ( (
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 ) )
lgseisen.6  |-  S  =  ( ( Q  x.  ( 2  x.  y
) )  mod  P
)
Assertion
Ref Expression
lgseisenlem2  |-  ( ph  ->  M : ( 1 ... ( ( P  -  1 )  / 
2 ) ) -1-1-onto-> ( 1 ... ( ( P  -  1 )  / 
2 ) ) )
Distinct variable groups:    x, y, P    ph, x, y    y, M   
x, Q, y    x, S
Allowed substitution hints:    R( x,  y)    S( y)    M( x)

Proof of Theorem lgseisenlem2
Dummy variable  z is distinct from all other variables.
StepHypRef Expression
1 lgseisen.1 . . . 4  |-  ( ph  ->  P  e.  ( Prime  \  { 2 } ) )
2 lgseisen.2 . . . 4  |-  ( ph  ->  Q  e.  ( Prime  \  { 2 } ) )
3 lgseisen.3 . . . 4  |-  ( ph  ->  P  =/=  Q )
4 lgseisen.4 . . . 4  |-  R  =  ( ( Q  x.  ( 2  x.  x
) )  mod  P
)
5 lgseisen.5 . . . 4  |-  M  =  ( x  e.  ( 1 ... ( ( P  -  1 )  /  2 ) ) 
|->  ( ( ( (
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 ) )
61, 2, 3, 4, 5lgseisenlem1 16189 . . 3  |-  ( ph  ->  M : ( 1 ... ( ( P  -  1 )  / 
2 ) ) --> ( 1 ... ( ( P  -  1 )  /  2 ) ) )
7 oveq2 6093 . . . . . . . . . . . . . . 15  |-  ( x  =  y  ->  (
2  x.  x )  =  ( 2  x.  y ) )
87oveq2d 6101 . . . . . . . . . . . . . 14  |-  ( x  =  y  ->  ( Q  x.  ( 2  x.  x ) )  =  ( Q  x.  ( 2  x.  y
) ) )
98oveq1d 6100 . . . . . . . . . . . . 13  |-  ( x  =  y  ->  (
( Q  x.  (
2  x.  x ) )  mod  P )  =  ( ( Q  x.  ( 2  x.  y ) )  mod 
P ) )
10 lgseisen.6 . . . . . . . . . . . . 13  |-  S  =  ( ( Q  x.  ( 2  x.  y
) )  mod  P
)
119, 4, 103eqtr4g 2296 . . . . . . . . . . . 12  |-  ( x  =  y  ->  R  =  S )
1211oveq2d 6101 . . . . . . . . . . 11  |-  ( x  =  y  ->  ( -u 1 ^ R )  =  ( -u 1 ^ S ) )
1312, 11oveq12d 6103 . . . . . . . . . 10  |-  ( x  =  y  ->  (
( -u 1 ^ R
)  x.  R )  =  ( ( -u
1 ^ S )  x.  S ) )
1413oveq1d 6100 . . . . . . . . 9  |-  ( x  =  y  ->  (
( ( -u 1 ^ R )  x.  R
)  mod  P )  =  ( ( (
-u 1 ^ S
)  x.  S )  mod  P ) )
1514oveq1d 6100 . . . . . . . 8  |-  ( x  =  y  ->  (
( ( ( -u
1 ^ R )  x.  R )  mod 
P )  /  2
)  =  ( ( ( ( -u 1 ^ S )  x.  S
)  mod  P )  /  2 ) )
16 simprl 535 . . . . . . . 8  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
y  e.  ( 1 ... ( ( P  -  1 )  / 
2 ) ) )
17 neg1z 9676 . . . . . . . . . . . . 13  |-  -u 1  e.  ZZ
182eldifad 3231 . . . . . . . . . . . . . . . . . . 19  |-  ( ph  ->  Q  e.  Prime )
19 prmnn 12888 . . . . . . . . . . . . . . . . . . 19  |-  ( Q  e.  Prime  ->  Q  e.  NN )
2018, 19syl 14 . . . . . . . . . . . . . . . . . 18  |-  ( ph  ->  Q  e.  NN )
2120adantr 276 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  Q  e.  NN )
22 2nn 9466 . . . . . . . . . . . . . . . . . . 19  |-  2  e.  NN
2322a1i 9 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
2  e.  NN )
24 elfznn 10460 . . . . . . . . . . . . . . . . . . 19  |-  ( y  e.  ( 1 ... ( ( P  - 
1 )  /  2
) )  ->  y  e.  NN )
2524ad2antrl 494 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
y  e.  NN )
2623, 25nnmulcld 9353 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  y
)  e.  NN )
2721, 26nnmulcld 9353 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
2  x.  y ) )  e.  NN )
2827nnzd 9767 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
2  x.  y ) )  e.  ZZ )
291eldifad 3231 . . . . . . . . . . . . . . . . 17  |-  ( ph  ->  P  e.  Prime )
30 prmnn 12888 . . . . . . . . . . . . . . . . 17  |-  ( P  e.  Prime  ->  P  e.  NN )
3129, 30syl 14 . . . . . . . . . . . . . . . 16  |-  ( ph  ->  P  e.  NN )
3231adantr 276 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  P  e.  NN )
3328, 32zmodcld 10782 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( Q  x.  ( 2  x.  y
) )  mod  P
)  e.  NN0 )
3410, 33eqeltrid 2325 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  S  e.  NN0 )
35 zexpcl 10991 . . . . . . . . . . . . 13  |-  ( (
-u 1  e.  ZZ  /\  S  e.  NN0 )  ->  ( -u 1 ^ S )  e.  ZZ )
3617, 34, 35sylancr 418 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( -u 1 ^ S
)  e.  ZZ )
3734nn0zd 9766 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  S  e.  ZZ )
3836, 37zmulcld 9774 . . . . . . . . . . 11  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ S )  x.  S
)  e.  ZZ )
3938, 32zmodcld 10782 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ S )  x.  S )  mod 
P )  e.  NN0 )
4039nn0zd 9766 . . . . . . . . 9  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ S )  x.  S )  mod 
P )  e.  ZZ )
41 znq 10024 . . . . . . . . 9  |-  ( ( ( ( ( -u
1 ^ S )  x.  S )  mod 
P )  e.  ZZ  /\  2  e.  NN )  ->  ( ( ( ( -u 1 ^ S )  x.  S
)  mod  P )  /  2 )  e.  QQ )
4240, 22, 41sylancl 417 . . . . . . . 8  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( (
-u 1 ^ S
)  x.  S )  mod  P )  / 
2 )  e.  QQ )
435, 15, 16, 42fvmptd3 5799 . . . . . . 7  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( M `  y
)  =  ( ( ( ( -u 1 ^ S )  x.  S
)  mod  P )  /  2 ) )
44 simprr 537 . . . . . . . 8  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  x  e.  ( 1 ... ( ( P  -  1 )  / 
2 ) ) )
45 elfznn 10460 . . . . . . . . . . . . . . . . . . . 20  |-  ( x  e.  ( 1 ... ( ( P  - 
1 )  /  2
) )  ->  x  e.  NN )
4645ad2antll 495 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  x  e.  NN )
4723, 46nnmulcld 9353 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  x
)  e.  NN )
4821, 47nnmulcld 9353 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
2  x.  x ) )  e.  NN )
4948nnzd 9767 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
2  x.  x ) )  e.  ZZ )
5049, 32zmodcld 10782 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( Q  x.  ( 2  x.  x
) )  mod  P
)  e.  NN0 )
514, 50eqeltrid 2325 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  R  e.  NN0 )
52 zexpcl 10991 . . . . . . . . . . . . . 14  |-  ( (
-u 1  e.  ZZ  /\  R  e.  NN0 )  ->  ( -u 1 ^ R )  e.  ZZ )
5317, 51, 52sylancr 418 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( -u 1 ^ R
)  e.  ZZ )
5451nn0zd 9766 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  R  e.  ZZ )
5553, 54zmulcld 9774 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  R
)  e.  ZZ )
5655, 32zmodcld 10782 . . . . . . . . . . 11  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ R )  x.  R )  mod 
P )  e.  NN0 )
5756nn0zd 9766 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ R )  x.  R )  mod 
P )  e.  ZZ )
58 znq 10024 . . . . . . . . . 10  |-  ( ( ( ( ( -u
1 ^ R )  x.  R )  mod 
P )  e.  ZZ  /\  2  e.  NN )  ->  ( ( ( ( -u 1 ^ R )  x.  R
)  mod  P )  /  2 )  e.  QQ )
5957, 22, 58sylancl 417 . . . . . . . . 9  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( (
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 )  e.  QQ )
6059elexd 2835 . . . . . . . 8  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( (
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 )  e.  _V )
615fvmpt2 5789 . . . . . . . 8  |-  ( ( x  e.  ( 1 ... ( ( P  -  1 )  / 
2 ) )  /\  ( ( ( (
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 )  e.  _V )  ->  ( M `  x )  =  ( ( ( ( -u
1 ^ R )  x.  R )  mod 
P )  /  2
) )
6244, 60, 61syl2anc 415 . . . . . . 7  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( M `  x
)  =  ( ( ( ( -u 1 ^ R )  x.  R
)  mod  P )  /  2 ) )
6343, 62eqeq12d 2253 . . . . . 6  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( M `  y )  =  ( M `  x )  <-> 
( ( ( (
-u 1 ^ S
)  x.  S )  mod  P )  / 
2 )  =  ( ( ( ( -u
1 ^ R )  x.  R )  mod 
P )  /  2
) ) )
642adantr 276 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  Q  e.  ( Prime  \  { 2 } ) )
6564eldifad 3231 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  Q  e.  Prime )
66 prmz 12889 . . . . . . . . . . . . . . . . 17  |-  ( Q  e.  Prime  ->  Q  e.  ZZ )
6765, 66syl 14 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  Q  e.  ZZ )
68 2z 9672 . . . . . . . . . . . . . . . . 17  |-  2  e.  ZZ
69 elfzelz 10428 . . . . . . . . . . . . . . . . . 18  |-  ( y  e.  ( 1 ... ( ( P  - 
1 )  /  2
) )  ->  y  e.  ZZ )
7069ad2antrl 494 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
y  e.  ZZ )
71 zmulcl 9698 . . . . . . . . . . . . . . . . 17  |-  ( ( 2  e.  ZZ  /\  y  e.  ZZ )  ->  ( 2  x.  y
)  e.  ZZ )
7268, 70, 71sylancr 418 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  y
)  e.  ZZ )
7367, 72zmulcld 9774 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
2  x.  y ) )  e.  ZZ )
741adantr 276 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  P  e.  ( Prime  \  { 2 } ) )
7574eldifad 3231 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  P  e.  Prime )
7675, 30syl 14 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  P  e.  NN )
7773, 76zmodcld 10782 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( Q  x.  ( 2  x.  y
) )  mod  P
)  e.  NN0 )
7810, 77eqeltrid 2325 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  S  e.  NN0 )
7978nn0zd 9766 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  S  e.  ZZ )
80 m1expcl 10999 . . . . . . . . . . . 12  |-  ( S  e.  ZZ  ->  ( -u 1 ^ S )  e.  ZZ )
8179, 80syl 14 . . . . . . . . . . 11  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( -u 1 ^ S
)  e.  ZZ )
8281, 79zmulcld 9774 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ S )  x.  S
)  e.  ZZ )
8382, 76zmodcld 10782 . . . . . . . . 9  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ S )  x.  S )  mod 
P )  e.  NN0 )
8483nn0cnd 9622 . . . . . . . 8  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ S )  x.  S )  mod 
P )  e.  CC )
85 elfzelz 10428 . . . . . . . . . . . . . . . . . 18  |-  ( x  e.  ( 1 ... ( ( P  - 
1 )  /  2
) )  ->  x  e.  ZZ )
8685ad2antll 495 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  x  e.  ZZ )
87 zmulcl 9698 . . . . . . . . . . . . . . . . 17  |-  ( ( 2  e.  ZZ  /\  x  e.  ZZ )  ->  ( 2  x.  x
)  e.  ZZ )
8868, 86, 87sylancr 418 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  x
)  e.  ZZ )
8967, 88zmulcld 9774 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
2  x.  x ) )  e.  ZZ )
9089, 76zmodcld 10782 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( Q  x.  ( 2  x.  x
) )  mod  P
)  e.  NN0 )
914, 90eqeltrid 2325 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  R  e.  NN0 )
9291nn0zd 9766 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  R  e.  ZZ )
93 m1expcl 10999 . . . . . . . . . . . 12  |-  ( R  e.  ZZ  ->  ( -u 1 ^ R )  e.  ZZ )
9492, 93syl 14 . . . . . . . . . . 11  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( -u 1 ^ R
)  e.  ZZ )
9594, 92zmulcld 9774 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  R
)  e.  ZZ )
9695, 76zmodcld 10782 . . . . . . . . 9  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ R )  x.  R )  mod 
P )  e.  NN0 )
9796nn0cnd 9622 . . . . . . . 8  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ R )  x.  R )  mod 
P )  e.  CC )
98 2cnd 9377 . . . . . . . 8  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
2  e.  CC )
9923nnap0d 9350 . . . . . . . 8  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
2 #  0 )
100 div11ap 9030 . . . . . . . 8  |-  ( ( ( ( ( -u
1 ^ S )  x.  S )  mod 
P )  e.  CC  /\  ( ( ( -u
1 ^ R )  x.  R )  mod 
P )  e.  CC  /\  ( 2  e.  CC  /\  2 #  0 ) )  ->  ( ( ( ( ( -u 1 ^ S )  x.  S
)  mod  P )  /  2 )  =  ( ( ( (
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 )  <->  ( (
( -u 1 ^ S
)  x.  S )  mod  P )  =  ( ( ( -u
1 ^ R )  x.  R )  mod 
P ) ) )
10184, 97, 98, 99, 100syl112anc 1282 . . . . . . 7  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( ( ( -u 1 ^ S )  x.  S
)  mod  P )  /  2 )  =  ( ( ( (
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 )  <->  ( (
( -u 1 ^ S
)  x.  S )  mod  P )  =  ( ( ( -u
1 ^ R )  x.  R )  mod 
P ) ) )
102 nnq 10033 . . . . . . . . . . 11  |-  ( P  e.  NN  ->  P  e.  QQ )
10332, 102syl 14 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  P  e.  QQ )
10432nngt0d 9348 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
0  <  P )
105 eqidd 2239 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ S )  mod  P
)  =  ( (
-u 1 ^ S
)  mod  P )
)
10610oveq1i 6095 . . . . . . . . . . 11  |-  ( S  mod  P )  =  ( ( ( Q  x.  ( 2  x.  y ) )  mod 
P )  mod  P
)
107 nnq 10033 . . . . . . . . . . . . 13  |-  ( ( Q  x.  ( 2  x.  y ) )  e.  NN  ->  ( Q  x.  ( 2  x.  y ) )  e.  QQ )
10827, 107syl 14 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
2  x.  y ) )  e.  QQ )
10931, 102syl 14 . . . . . . . . . . . . 13  |-  ( ph  ->  P  e.  QQ )
110109adantr 276 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  P  e.  QQ )
111 modqabs2 10795 . . . . . . . . . . . 12  |-  ( ( ( Q  x.  (
2  x.  y ) )  e.  QQ  /\  P  e.  QQ  /\  0  <  P )  ->  (
( ( Q  x.  ( 2  x.  y
) )  mod  P
)  mod  P )  =  ( ( Q  x.  ( 2  x.  y ) )  mod 
P ) )
112108, 110, 104, 111syl3anc 1278 . . . . . . . . . . 11  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( Q  x.  ( 2  x.  y ) )  mod 
P )  mod  P
)  =  ( ( Q  x.  ( 2  x.  y ) )  mod  P ) )
113106, 112eqtrid 2283 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( S  mod  P
)  =  ( ( Q  x.  ( 2  x.  y ) )  mod  P ) )
11436, 36, 37, 28, 103, 104, 105, 113modqmul12d 10815 . . . . . . . . 9  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ S )  x.  S )  mod 
P )  =  ( ( ( -u 1 ^ S )  x.  ( Q  x.  ( 2  x.  y ) ) )  mod  P ) )
115 eqidd 2239 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  mod  P
)  =  ( (
-u 1 ^ R
)  mod  P )
)
1164oveq1i 6095 . . . . . . . . . . 11  |-  ( R  mod  P )  =  ( ( ( Q  x.  ( 2  x.  x ) )  mod 
P )  mod  P
)
117 nnq 10033 . . . . . . . . . . . . 13  |-  ( ( Q  x.  ( 2  x.  x ) )  e.  NN  ->  ( Q  x.  ( 2  x.  x ) )  e.  QQ )
11848, 117syl 14 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
2  x.  x ) )  e.  QQ )
119 modqabs2 10795 . . . . . . . . . . . 12  |-  ( ( ( Q  x.  (
2  x.  x ) )  e.  QQ  /\  P  e.  QQ  /\  0  <  P )  ->  (
( ( Q  x.  ( 2  x.  x
) )  mod  P
)  mod  P )  =  ( ( Q  x.  ( 2  x.  x ) )  mod 
P ) )
120118, 110, 104, 119syl3anc 1278 . . . . . . . . . . 11  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( Q  x.  ( 2  x.  x ) )  mod 
P )  mod  P
)  =  ( ( Q  x.  ( 2  x.  x ) )  mod  P ) )
121116, 120eqtrid 2283 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( R  mod  P
)  =  ( ( Q  x.  ( 2  x.  x ) )  mod  P ) )
12253, 53, 54, 49, 110, 104, 115, 121modqmul12d 10815 . . . . . . . . 9  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ R )  x.  R )  mod 
P )  =  ( ( ( -u 1 ^ R )  x.  ( Q  x.  ( 2  x.  x ) ) )  mod  P ) )
123114, 122eqeq12d 2253 . . . . . . . 8  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( (
-u 1 ^ S
)  x.  S )  mod  P )  =  ( ( ( -u
1 ^ R )  x.  R )  mod 
P )  <->  ( (
( -u 1 ^ S
)  x.  ( Q  x.  ( 2  x.  y ) ) )  mod  P )  =  ( ( ( -u
1 ^ R )  x.  ( Q  x.  ( 2  x.  x
) ) )  mod 
P ) ) )
12481, 73zmulcld 9774 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ S )  x.  ( Q  x.  ( 2  x.  y ) ) )  e.  ZZ )
12594, 89zmulcld 9774 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  ( Q  x.  ( 2  x.  x ) ) )  e.  ZZ )
126 moddvds 12566 . . . . . . . . . 10  |-  ( ( P  e.  NN  /\  ( ( -u 1 ^ S )  x.  ( Q  x.  ( 2  x.  y ) ) )  e.  ZZ  /\  ( ( -u 1 ^ R )  x.  ( Q  x.  ( 2  x.  x ) ) )  e.  ZZ )  ->  ( ( ( ( -u 1 ^ S )  x.  ( Q  x.  ( 2  x.  y ) ) )  mod  P )  =  ( ( (
-u 1 ^ R
)  x.  ( Q  x.  ( 2  x.  x ) ) )  mod  P )  <->  P  ||  (
( ( -u 1 ^ S )  x.  ( Q  x.  ( 2  x.  y ) ) )  -  ( (
-u 1 ^ R
)  x.  ( Q  x.  ( 2  x.  x ) ) ) ) ) )
12776, 124, 125, 126syl3anc 1278 . . . . . . . . 9  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( (
-u 1 ^ S
)  x.  ( Q  x.  ( 2  x.  y ) ) )  mod  P )  =  ( ( ( -u
1 ^ R )  x.  ( Q  x.  ( 2  x.  x
) ) )  mod 
P )  <->  P  ||  (
( ( -u 1 ^ S )  x.  ( Q  x.  ( 2  x.  y ) ) )  -  ( (
-u 1 ^ R
)  x.  ( Q  x.  ( 2  x.  x ) ) ) ) ) )
12867zcnd 9769 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  Q  e.  CC )
12981, 72zmulcld 9774 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ S )  x.  (
2  x.  y ) )  e.  ZZ )
130129zcnd 9769 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ S )  x.  (
2  x.  y ) )  e.  CC )
13194, 88zmulcld 9774 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  (
2  x.  x ) )  e.  ZZ )
132131zcnd 9769 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  (
2  x.  x ) )  e.  CC )
133128, 130, 132subdid 8741 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) ) )  =  ( ( Q  x.  (
( -u 1 ^ S
)  x.  ( 2  x.  y ) ) )  -  ( Q  x.  ( ( -u
1 ^ R )  x.  ( 2  x.  x ) ) ) ) )
13481zcnd 9769 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( -u 1 ^ S
)  e.  CC )
13572zcnd 9769 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  y
)  e.  CC )
136128, 134, 135mul12d 8478 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
( -u 1 ^ S
)  x.  ( 2  x.  y ) ) )  =  ( (
-u 1 ^ S
)  x.  ( Q  x.  ( 2  x.  y ) ) ) )
13794zcnd 9769 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( -u 1 ^ R
)  e.  CC )
13888zcnd 9769 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  x
)  e.  CC )
139128, 137, 138mul12d 8478 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
( -u 1 ^ R
)  x.  ( 2  x.  x ) ) )  =  ( (
-u 1 ^ R
)  x.  ( Q  x.  ( 2  x.  x ) ) ) )
140136, 139oveq12d 6103 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( Q  x.  ( ( -u 1 ^ S )  x.  (
2  x.  y ) ) )  -  ( Q  x.  ( ( -u 1 ^ R )  x.  ( 2  x.  x ) ) ) )  =  ( ( ( -u 1 ^ S )  x.  ( Q  x.  ( 2  x.  y ) ) )  -  ( (
-u 1 ^ R
)  x.  ( Q  x.  ( 2  x.  x ) ) ) ) )
141133, 140eqtrd 2271 . . . . . . . . . . 11  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( Q  x.  (
( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) ) )  =  ( ( ( -u 1 ^ S )  x.  ( Q  x.  ( 2  x.  y ) ) )  -  ( (
-u 1 ^ R
)  x.  ( Q  x.  ( 2  x.  x ) ) ) ) )
142141breq2d 4142 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  ||  ( Q  x.  ( (
( -u 1 ^ S
)  x.  ( 2  x.  y ) )  -  ( ( -u
1 ^ R )  x.  ( 2  x.  x ) ) ) )  <->  P  ||  ( ( ( -u 1 ^ S )  x.  ( Q  x.  ( 2  x.  y ) ) )  -  ( (
-u 1 ^ R
)  x.  ( Q  x.  ( 2  x.  x ) ) ) ) ) )
1433adantr 276 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  P  =/=  Q )
144 prmrp 12923 . . . . . . . . . . . . . 14  |-  ( ( P  e.  Prime  /\  Q  e.  Prime )  ->  (
( P  gcd  Q
)  =  1  <->  P  =/=  Q ) )
14575, 65, 144syl2anc 415 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( P  gcd  Q )  =  1  <->  P  =/=  Q ) )
146143, 145mpbird 167 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  gcd  Q
)  =  1 )
147 prmz 12889 . . . . . . . . . . . . . 14  |-  ( P  e.  Prime  ->  P  e.  ZZ )
14875, 147syl 14 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  P  e.  ZZ )
149129, 131zsubcld 9773 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ S )  x.  ( 2  x.  y ) )  -  ( ( -u 1 ^ R )  x.  (
2  x.  x ) ) )  e.  ZZ )
150 coprmdvds 12870 . . . . . . . . . . . . 13  |-  ( ( P  e.  ZZ  /\  Q  e.  ZZ  /\  (
( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) )  e.  ZZ )  ->  ( ( P 
||  ( Q  x.  ( ( ( -u
1 ^ S )  x.  ( 2  x.  y ) )  -  ( ( -u 1 ^ R )  x.  (
2  x.  x ) ) ) )  /\  ( P  gcd  Q )  =  1 )  ->  P  ||  ( ( (
-u 1 ^ S
)  x.  ( 2  x.  y ) )  -  ( ( -u
1 ^ R )  x.  ( 2  x.  x ) ) ) ) )
151148, 67, 149, 150syl3anc 1278 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( P  ||  ( Q  x.  (
( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) ) )  /\  ( P  gcd  Q )  =  1 )  ->  P  ||  ( ( ( -u
1 ^ S )  x.  ( 2  x.  y ) )  -  ( ( -u 1 ^ R )  x.  (
2  x.  x ) ) ) ) )
152146, 151mpan2d 432 . . . . . . . . . . 11  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  ||  ( Q  x.  ( (
( -u 1 ^ S
)  x.  ( 2  x.  y ) )  -  ( ( -u
1 ^ R )  x.  ( 2  x.  x ) ) ) )  ->  P  ||  (
( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) ) ) )
153 dvdsmultr2 12600 . . . . . . . . . . . 12  |-  ( ( P  e.  ZZ  /\  ( -u 1 ^ R
)  e.  ZZ  /\  ( ( ( -u
1 ^ S )  x.  ( 2  x.  y ) )  -  ( ( -u 1 ^ R )  x.  (
2  x.  x ) ) )  e.  ZZ )  ->  ( P  ||  ( ( ( -u
1 ^ S )  x.  ( 2  x.  y ) )  -  ( ( -u 1 ^ R )  x.  (
2  x.  x ) ) )  ->  P  ||  ( ( -u 1 ^ R )  x.  (
( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) ) ) ) )
154148, 94, 149, 153syl3anc 1278 . . . . . . . . . . 11  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  ||  (
( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) )  ->  P  ||  (
( -u 1 ^ R
)  x.  ( ( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) ) ) ) )
155137, 130, 132subdid 8741 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  (
( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) ) )  =  ( ( ( -u 1 ^ R )  x.  (
( -u 1 ^ S
)  x.  ( 2  x.  y ) ) )  -  ( (
-u 1 ^ R
)  x.  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) ) ) )
156 neg1cn 9409 . . . . . . . . . . . . . . . . . . 19  |-  -u 1  e.  CC
157156a1i 9 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  -u 1  e.  CC )
158157, 78, 91expaddd 11113 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( -u 1 ^ ( R  +  S )
)  =  ( (
-u 1 ^ R
)  x.  ( -u
1 ^ S ) ) )
159158oveq1d 6100 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ ( R  +  S ) )  x.  ( 2  x.  y
) )  =  ( ( ( -u 1 ^ R )  x.  ( -u 1 ^ S ) )  x.  ( 2  x.  y ) ) )
160137, 134, 135mulassd 8349 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ R )  x.  ( -u 1 ^ S ) )  x.  ( 2  x.  y
) )  =  ( ( -u 1 ^ R )  x.  (
( -u 1 ^ S
)  x.  ( 2  x.  y ) ) ) )
161159, 160eqtr2d 2272 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  (
( -u 1 ^ S
)  x.  ( 2  x.  y ) ) )  =  ( (
-u 1 ^ ( R  +  S )
)  x.  ( 2  x.  y ) ) )
162 ax-1cn 8272 . . . . . . . . . . . . . . . . . . . . . . 23  |-  1  e.  CC
163 1ap0 8918 . . . . . . . . . . . . . . . . . . . . . . 23  |-  1 #  0
164 divneg2ap 9066 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( 1  e.  CC  /\  1  e.  CC  /\  1 #  0 )  ->  -u (
1  /  1 )  =  ( 1  /  -u 1 ) )
165162, 162, 163, 164mp3an 1378 . . . . . . . . . . . . . . . . . . . . . 22  |-  -u (
1  /  1 )  =  ( 1  /  -u 1 )
166 1div1e1 9034 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( 1  /  1 )  =  1
167166negeqi 8520 . . . . . . . . . . . . . . . . . . . . . 22  |-  -u (
1  /  1 )  =  -u 1
168165, 167eqtr3i 2261 . . . . . . . . . . . . . . . . . . . . 21  |-  ( 1  /  -u 1 )  = 
-u 1
169168oveq1i 6095 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( 1  /  -u 1
) ^ R )  =  ( -u 1 ^ R )
170 neg1ap0 9413 . . . . . . . . . . . . . . . . . . . . . 22  |-  -u 1 #  0
171170a1i 9 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  -u 1 #  0 )
172157, 171, 54exprecapd 11119 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 1  /  -u 1 ) ^ R
)  =  ( 1  /  ( -u 1 ^ R ) ) )
173169, 172eqtr3id 2285 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( -u 1 ^ R
)  =  ( 1  /  ( -u 1 ^ R ) ) )
174173oveq2d 6101 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  ( -u 1 ^ R ) )  =  ( (
-u 1 ^ R
)  x.  ( 1  /  ( -u 1 ^ R ) ) ) )
175157, 171, 54expap0d 11117 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( -u 1 ^ R
) #  0 )
176137, 175recidapd 9113 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  (
1  /  ( -u
1 ^ R ) ) )  =  1 )
177174, 176eqtrd 2271 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  ( -u 1 ^ R ) )  =  1 )
178177oveq1d 6100 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ R )  x.  ( -u 1 ^ R ) )  x.  ( 2  x.  x
) )  =  ( 1  x.  ( 2  x.  x ) ) )
179137, 137, 138mulassd 8349 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ R )  x.  ( -u 1 ^ R ) )  x.  ( 2  x.  x
) )  =  ( ( -u 1 ^ R )  x.  (
( -u 1 ^ R
)  x.  ( 2  x.  x ) ) ) )
180138mullidd 8344 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 1  x.  (
2  x.  x ) )  =  ( 2  x.  x ) )
181178, 179, 1803eqtr3d 2279 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  (
( -u 1 ^ R
)  x.  ( 2  x.  x ) ) )  =  ( 2  x.  x ) )
182161, 181oveq12d 6103 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1 ^ R )  x.  ( ( -u
1 ^ S )  x.  ( 2  x.  y ) ) )  -  ( ( -u
1 ^ R )  x.  ( ( -u
1 ^ R )  x.  ( 2  x.  x ) ) ) )  =  ( ( ( -u 1 ^ ( R  +  S
) )  x.  (
2  x.  y ) )  -  ( 2  x.  x ) ) )
183155, 182eqtrd 2271 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ R )  x.  (
( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) ) )  =  ( ( ( -u 1 ^ ( R  +  S ) )  x.  ( 2  x.  y
) )  -  (
2  x.  x ) ) )
184183breq2d 4142 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  ||  (
( -u 1 ^ R
)  x.  ( ( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) ) )  <->  P  ||  (
( ( -u 1 ^ ( R  +  S ) )  x.  ( 2  x.  y
) )  -  (
2  x.  x ) ) ) )
185 eqcom 2240 . . . . . . . . . . . . . . . . 17  |-  ( ( ( -u 1  x.  ( 2  x.  y
) )  mod  P
)  =  ( ( 2  x.  x )  mod  P )  <->  ( (
2  x.  x )  mod  P )  =  ( ( -u 1  x.  ( 2  x.  y
) )  mod  P
) )
186135mulm1d 8737 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( -u 1  x.  (
2  x.  y ) )  =  -u (
2  x.  y ) )
187186oveq1d 6100 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1  x.  ( 2  x.  y
) )  mod  P
)  =  ( -u ( 2  x.  y
)  mod  P )
)
188187eqeq2d 2250 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( 2  x.  x )  mod 
P )  =  ( ( -u 1  x.  ( 2  x.  y
) )  mod  P
)  <->  ( ( 2  x.  x )  mod 
P )  =  (
-u ( 2  x.  y )  mod  P
) ) )
189185, 188bitrid 192 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1  x.  ( 2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod  P
)  <->  ( ( 2  x.  x )  mod 
P )  =  (
-u ( 2  x.  y )  mod  P
) ) )
19072znegcld 9770 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  -u ( 2  x.  y
)  e.  ZZ )
191 moddvds 12566 . . . . . . . . . . . . . . . . . 18  |-  ( ( P  e.  NN  /\  ( 2  x.  x
)  e.  ZZ  /\  -u ( 2  x.  y
)  e.  ZZ )  ->  ( ( ( 2  x.  x )  mod  P )  =  ( -u ( 2  x.  y )  mod 
P )  <->  P  ||  (
( 2  x.  x
)  -  -u (
2  x.  y ) ) ) )
19276, 88, 190, 191syl3anc 1278 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( 2  x.  x )  mod 
P )  =  (
-u ( 2  x.  y )  mod  P
)  <->  P  ||  ( ( 2  x.  x )  -  -u ( 2  x.  y ) ) ) )
19346, 25nnaddcld 9352 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( x  +  y )  e.  NN )
19446nnred 9317 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  x  e.  RR )
19570zred 9768 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
y  e.  RR )
196 oddprm 13038 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( P  e.  ( Prime  \  {
2 } )  -> 
( ( P  - 
1 )  /  2
)  e.  NN )
19774, 196syl 14 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( P  - 
1 )  /  2
)  e.  NN )
198197nnred 9317 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( P  - 
1 )  /  2
)  e.  RR )
199 elfzle2 10432 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( x  e.  ( 1 ... ( ( P  - 
1 )  /  2
) )  ->  x  <_  ( ( P  - 
1 )  /  2
) )
200199ad2antll 495 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  x  <_  ( ( P  -  1 )  / 
2 ) )
201 elfzle2 10432 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( y  e.  ( 1 ... ( ( P  - 
1 )  /  2
) )  ->  y  <_  ( ( P  - 
1 )  /  2
) )
202201ad2antrl 494 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
y  <_  ( ( P  -  1 )  /  2 ) )
203194, 195, 198, 198, 200, 202le2addd 8891 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( x  +  y )  <_  ( (
( P  -  1 )  /  2 )  +  ( ( P  -  1 )  / 
2 ) ) )
20476nnred 9317 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  P  e.  RR )
205 peano2rem 8593 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( P  e.  RR  ->  ( P  -  1 )  e.  RR )
206204, 205syl 14 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  -  1 )  e.  RR )
207206recnd 8354 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  -  1 )  e.  CC )
2082072halvesd 9551 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( P  -  1 )  / 
2 )  +  ( ( P  -  1 )  /  2 ) )  =  ( P  -  1 ) )
209203, 208breqtrd 4156 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( x  +  y )  <_  ( P  -  1 ) )
210 peano2zm 9682 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( P  e.  ZZ  ->  ( P  -  1 )  e.  ZZ )
211 fznn 10496 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( P  -  1 )  e.  ZZ  ->  (
( x  +  y )  e.  ( 1 ... ( P  - 
1 ) )  <->  ( (
x  +  y )  e.  NN  /\  (
x  +  y )  <_  ( P  - 
1 ) ) ) )
212148, 210, 2113syl 17 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( x  +  y )  e.  ( 1 ... ( P  -  1 ) )  <-> 
( ( x  +  y )  e.  NN  /\  ( x  +  y )  <_  ( P  -  1 ) ) ) )
213193, 209, 212mpbir2and 957 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( x  +  y )  e.  ( 1 ... ( P  - 
1 ) ) )
214 fzm1ndvds 12623 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( P  e.  NN  /\  ( x  +  y
)  e.  ( 1 ... ( P  - 
1 ) ) )  ->  -.  P  ||  (
x  +  y ) )
21576, 213, 214syl2anc 415 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  -.  P  ||  ( x  +  y ) )
216 eldifsni 3843 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( P  e.  ( Prime  \  {
2 } )  ->  P  =/=  2 )
21774, 216syl 14 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  P  =/=  2 )
218 2prm 12905 . . . . . . . . . . . . . . . . . . . . . . 23  |-  2  e.  Prime
219 prmrp 12923 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( P  e.  Prime  /\  2  e.  Prime )  ->  (
( P  gcd  2
)  =  1  <->  P  =/=  2 ) )
22075, 218, 219sylancl 417 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( P  gcd  2 )  =  1  <-> 
P  =/=  2 ) )
221217, 220mpbird 167 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  gcd  2
)  =  1 )
22268a1i 9 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
2  e.  ZZ )
223193nnzd 9767 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( x  +  y )  e.  ZZ )
224 coprmdvds 12870 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( P  e.  ZZ  /\  2  e.  ZZ  /\  (
x  +  y )  e.  ZZ )  -> 
( ( P  ||  ( 2  x.  (
x  +  y ) )  /\  ( P  gcd  2 )  =  1 )  ->  P  ||  ( x  +  y ) ) )
225148, 222, 223, 224syl3anc 1278 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( P  ||  ( 2  x.  (
x  +  y ) )  /\  ( P  gcd  2 )  =  1 )  ->  P  ||  ( x  +  y ) ) )
226221, 225mpan2d 432 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  ||  (
2  x.  ( x  +  y ) )  ->  P  ||  (
x  +  y ) ) )
227215, 226mtod 673 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  -.  P  ||  ( 2  x.  ( x  +  y ) ) )
228138, 135subnegd 8644 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 2  x.  x )  -  -u (
2  x.  y ) )  =  ( ( 2  x.  x )  +  ( 2  x.  y ) ) )
22986zcnd 9769 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  x  e.  CC )
23070zcnd 9769 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
y  e.  CC )
23198, 229, 230adddid 8350 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  (
x  +  y ) )  =  ( ( 2  x.  x )  +  ( 2  x.  y ) ) )
232228, 231eqtr4d 2274 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 2  x.  x )  -  -u (
2  x.  y ) )  =  ( 2  x.  ( x  +  y ) ) )
233232breq2d 4142 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  ||  (
( 2  x.  x
)  -  -u (
2  x.  y ) )  <->  P  ||  ( 2  x.  ( x  +  y ) ) ) )
234227, 233mtbird 684 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  ->  -.  P  ||  ( ( 2  x.  x )  -  -u ( 2  x.  y ) ) )
235234pm2.21d 628 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  ||  (
( 2  x.  x
)  -  -u (
2  x.  y ) )  ->  ( 2  x.  y )  =  ( 2  x.  x
) ) )
236192, 235sylbid 150 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( 2  x.  x )  mod 
P )  =  (
-u ( 2  x.  y )  mod  P
)  ->  ( 2  x.  y )  =  ( 2  x.  x
) ) )
237189, 236sylbid 150 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( -u
1  x.  ( 2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod  P
)  ->  ( 2  x.  y )  =  ( 2  x.  x
) ) )
238 oveq1 6092 . . . . . . . . . . . . . . . . . 18  |-  ( (
-u 1 ^ ( R  +  S )
)  =  -u 1  ->  ( ( -u 1 ^ ( R  +  S ) )  x.  ( 2  x.  y
) )  =  (
-u 1  x.  (
2  x.  y ) ) )
239238oveq1d 6100 . . . . . . . . . . . . . . . . 17  |-  ( (
-u 1 ^ ( R  +  S )
)  =  -u 1  ->  ( ( ( -u
1 ^ ( R  +  S ) )  x.  ( 2  x.  y ) )  mod 
P )  =  ( ( -u 1  x.  ( 2  x.  y
) )  mod  P
) )
240239eqeq1d 2247 . . . . . . . . . . . . . . . 16  |-  ( (
-u 1 ^ ( R  +  S )
)  =  -u 1  ->  ( ( ( (
-u 1 ^ ( R  +  S )
)  x.  ( 2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod  P
)  <->  ( ( -u
1  x.  ( 2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod  P
) ) )
241240imbi1d 231 . . . . . . . . . . . . . . 15  |-  ( (
-u 1 ^ ( R  +  S )
)  =  -u 1  ->  ( ( ( ( ( -u 1 ^ ( R  +  S
) )  x.  (
2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod 
P )  ->  (
2  x.  y )  =  ( 2  x.  x ) )  <->  ( (
( -u 1  x.  (
2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod 
P )  ->  (
2  x.  y )  =  ( 2  x.  x ) ) ) )
242237, 241syl5ibrcom 157 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ ( R  +  S ) )  = 
-u 1  ->  (
( ( ( -u
1 ^ ( R  +  S ) )  x.  ( 2  x.  y ) )  mod 
P )  =  ( ( 2  x.  x
)  mod  P )  ->  ( 2  x.  y
)  =  ( 2  x.  x ) ) ) )
243135mullidd 8344 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 1  x.  (
2  x.  y ) )  =  ( 2  x.  y ) )
244243oveq1d 6100 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 1  x.  ( 2  x.  y
) )  mod  P
)  =  ( ( 2  x.  y )  mod  P ) )
245 nnq 10033 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( 2  x.  y )  e.  NN  ->  (
2  x.  y )  e.  QQ )
24626, 245syl 14 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  y
)  e.  QQ )
247 nnmulcl 9325 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( 2  e.  NN  /\  y  e.  NN )  ->  ( 2  x.  y
)  e.  NN )
24822, 25, 247sylancr 418 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  y
)  e.  NN )
249248nnnn0d 9620 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  y
)  e.  NN0 )
250249nn0ge0d 9623 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
0  <_  ( 2  x.  y ) )
251 2re 9374 . . . . . . . . . . . . . . . . . . . . . . 23  |-  2  e.  RR
252251a1i 9 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
2  e.  RR )
253 2pos 9395 . . . . . . . . . . . . . . . . . . . . . . 23  |-  0  <  2
254253a1i 9 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
0  <  2 )
255 lemuldiv2 9212 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( y  e.  RR  /\  ( P  -  1
)  e.  RR  /\  ( 2  e.  RR  /\  0  <  2 ) )  ->  ( (
2  x.  y )  <_  ( P  - 
1 )  <->  y  <_  ( ( P  -  1 )  /  2 ) ) )
256195, 206, 252, 254, 255syl112anc 1282 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 2  x.  y )  <_  ( P  -  1 )  <-> 
y  <_  ( ( P  -  1 )  /  2 ) ) )
257202, 256mpbird 167 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  y
)  <_  ( P  -  1 ) )
258 zltlem1 9702 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( 2  x.  y
)  e.  ZZ  /\  P  e.  ZZ )  ->  ( ( 2  x.  y )  <  P  <->  ( 2  x.  y )  <_  ( P  - 
1 ) ) )
25972, 148, 258syl2anc 415 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 2  x.  y )  <  P  <->  ( 2  x.  y )  <_  ( P  - 
1 ) ) )
260257, 259mpbird 167 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  y
)  <  P )
261 modqid 10786 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( 2  x.  y )  e.  QQ  /\  P  e.  QQ )  /\  ( 0  <_ 
( 2  x.  y
)  /\  ( 2  x.  y )  < 
P ) )  -> 
( ( 2  x.  y )  mod  P
)  =  ( 2  x.  y ) )
262246, 110, 250, 260, 261syl22anc 1279 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 2  x.  y )  mod  P
)  =  ( 2  x.  y ) )
263244, 262eqtrd 2271 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 1  x.  ( 2  x.  y
) )  mod  P
)  =  ( 2  x.  y ) )
264 nnq 10033 . . . . . . . . . . . . . . . . . . 19  |-  ( ( 2  x.  x )  e.  NN  ->  (
2  x.  x )  e.  QQ )
26547, 264syl 14 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  x
)  e.  QQ )
266 nnmulcl 9325 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( 2  e.  NN  /\  x  e.  NN )  ->  ( 2  x.  x
)  e.  NN )
26722, 46, 266sylancr 418 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  x
)  e.  NN )
268267nnnn0d 9620 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  x
)  e.  NN0 )
269268nn0ge0d 9623 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
0  <_  ( 2  x.  x ) )
270 lemuldiv2 9212 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( x  e.  RR  /\  ( P  -  1
)  e.  RR  /\  ( 2  e.  RR  /\  0  <  2 ) )  ->  ( (
2  x.  x )  <_  ( P  - 
1 )  <->  x  <_  ( ( P  -  1 )  /  2 ) ) )
271194, 206, 252, 254, 270syl112anc 1282 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 2  x.  x )  <_  ( P  -  1 )  <-> 
x  <_  ( ( P  -  1 )  /  2 ) ) )
272200, 271mpbird 167 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  x
)  <_  ( P  -  1 ) )
273 zltlem1 9702 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( 2  x.  x
)  e.  ZZ  /\  P  e.  ZZ )  ->  ( ( 2  x.  x )  <  P  <->  ( 2  x.  x )  <_  ( P  - 
1 ) ) )
27488, 148, 273syl2anc 415 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 2  x.  x )  <  P  <->  ( 2  x.  x )  <_  ( P  - 
1 ) ) )
275272, 274mpbird 167 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( 2  x.  x
)  <  P )
276 modqid 10786 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( 2  x.  x )  e.  QQ  /\  P  e.  QQ )  /\  ( 0  <_ 
( 2  x.  x
)  /\  ( 2  x.  x )  < 
P ) )  -> 
( ( 2  x.  x )  mod  P
)  =  ( 2  x.  x ) )
277265, 110, 269, 275, 276syl22anc 1279 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 2  x.  x )  mod  P
)  =  ( 2  x.  x ) )
278263, 277eqeq12d 2253 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( 1  x.  ( 2  x.  y ) )  mod 
P )  =  ( ( 2  x.  x
)  mod  P )  <->  ( 2  x.  y )  =  ( 2  x.  x ) ) )
279278biimpd 144 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( 1  x.  ( 2  x.  y ) )  mod 
P )  =  ( ( 2  x.  x
)  mod  P )  ->  ( 2  x.  y
)  =  ( 2  x.  x ) ) )
280 oveq1 6092 . . . . . . . . . . . . . . . . . 18  |-  ( (
-u 1 ^ ( R  +  S )
)  =  1  -> 
( ( -u 1 ^ ( R  +  S ) )  x.  ( 2  x.  y
) )  =  ( 1  x.  ( 2  x.  y ) ) )
281280oveq1d 6100 . . . . . . . . . . . . . . . . 17  |-  ( (
-u 1 ^ ( R  +  S )
)  =  1  -> 
( ( ( -u
1 ^ ( R  +  S ) )  x.  ( 2  x.  y ) )  mod 
P )  =  ( ( 1  x.  (
2  x.  y ) )  mod  P ) )
282281eqeq1d 2247 . . . . . . . . . . . . . . . 16  |-  ( (
-u 1 ^ ( R  +  S )
)  =  1  -> 
( ( ( (
-u 1 ^ ( R  +  S )
)  x.  ( 2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod  P
)  <->  ( ( 1  x.  ( 2  x.  y ) )  mod 
P )  =  ( ( 2  x.  x
)  mod  P )
) )
283282imbi1d 231 . . . . . . . . . . . . . . 15  |-  ( (
-u 1 ^ ( R  +  S )
)  =  1  -> 
( ( ( ( ( -u 1 ^ ( R  +  S
) )  x.  (
2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod 
P )  ->  (
2  x.  y )  =  ( 2  x.  x ) )  <->  ( (
( 1  x.  (
2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod 
P )  ->  (
2  x.  y )  =  ( 2  x.  x ) ) ) )
284279, 283syl5ibrcom 157 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ ( R  +  S ) )  =  1  ->  ( (
( ( -u 1 ^ ( R  +  S ) )  x.  ( 2  x.  y
) )  mod  P
)  =  ( ( 2  x.  x )  mod  P )  -> 
( 2  x.  y
)  =  ( 2  x.  x ) ) ) )
28591, 78nn0addcld 9624 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( R  +  S
)  e.  NN0 )
286285nn0zd 9766 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( R  +  S
)  e.  ZZ )
287 m1expcl2 10998 . . . . . . . . . . . . . . 15  |-  ( ( R  +  S )  e.  ZZ  ->  ( -u 1 ^ ( R  +  S ) )  e.  { -u 1 ,  1 } )
288 elpri 3732 . . . . . . . . . . . . . . 15  |-  ( (
-u 1 ^ ( R  +  S )
)  e.  { -u
1 ,  1 }  ->  ( ( -u
1 ^ ( R  +  S ) )  =  -u 1  \/  ( -u 1 ^ ( R  +  S ) )  =  1 ) )
289286, 287, 2883syl 17 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ ( R  +  S ) )  = 
-u 1  \/  ( -u 1 ^ ( R  +  S ) )  =  1 ) )
290242, 284, 289mpjaod 730 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( (
-u 1 ^ ( R  +  S )
)  x.  ( 2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod  P
)  ->  ( 2  x.  y )  =  ( 2  x.  x
) ) )
291 zexpcl 10991 . . . . . . . . . . . . . . . 16  |-  ( (
-u 1  e.  ZZ  /\  ( R  +  S
)  e.  NN0 )  ->  ( -u 1 ^ ( R  +  S
) )  e.  ZZ )
29217, 285, 291sylancr 418 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( -u 1 ^ ( R  +  S )
)  e.  ZZ )
293292, 72zmulcld 9774 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( -u 1 ^ ( R  +  S ) )  x.  ( 2  x.  y
) )  e.  ZZ )
294 moddvds 12566 . . . . . . . . . . . . . 14  |-  ( ( P  e.  NN  /\  ( ( -u 1 ^ ( R  +  S ) )  x.  ( 2  x.  y
) )  e.  ZZ  /\  ( 2  x.  x
)  e.  ZZ )  ->  ( ( ( ( -u 1 ^ ( R  +  S
) )  x.  (
2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod 
P )  <->  P  ||  (
( ( -u 1 ^ ( R  +  S ) )  x.  ( 2  x.  y
) )  -  (
2  x.  x ) ) ) )
29576, 293, 88, 294syl3anc 1278 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( (
-u 1 ^ ( R  +  S )
)  x.  ( 2  x.  y ) )  mod  P )  =  ( ( 2  x.  x )  mod  P
)  <->  P  ||  ( ( ( -u 1 ^ ( R  +  S
) )  x.  (
2  x.  y ) )  -  ( 2  x.  x ) ) ) )
296230, 229, 98, 99mulcanapd 8989 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( 2  x.  y )  =  ( 2  x.  x )  <-> 
y  =  x ) )
297290, 295, 2963imtr3d 202 . . . . . . . . . . . 12  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  ||  (
( ( -u 1 ^ ( R  +  S ) )  x.  ( 2  x.  y
) )  -  (
2  x.  x ) )  ->  y  =  x ) )
298184, 297sylbid 150 . . . . . . . . . . 11  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  ||  (
( -u 1 ^ R
)  x.  ( ( ( -u 1 ^ S )  x.  (
2  x.  y ) )  -  ( (
-u 1 ^ R
)  x.  ( 2  x.  x ) ) ) )  ->  y  =  x ) )
299152, 154, 2983syld 57 . . . . . . . . . 10  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  ||  ( Q  x.  ( (
( -u 1 ^ S
)  x.  ( 2  x.  y ) )  -  ( ( -u
1 ^ R )  x.  ( 2  x.  x ) ) ) )  ->  y  =  x ) )
300142, 299sylbird 170 . . . . . . . . 9  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( P  ||  (
( ( -u 1 ^ S )  x.  ( Q  x.  ( 2  x.  y ) ) )  -  ( (
-u 1 ^ R
)  x.  ( Q  x.  ( 2  x.  x ) ) ) )  ->  y  =  x ) )
301127, 300sylbid 150 . . . . . . . 8  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( (
-u 1 ^ S
)  x.  ( Q  x.  ( 2  x.  y ) ) )  mod  P )  =  ( ( ( -u
1 ^ R )  x.  ( Q  x.  ( 2  x.  x
) ) )  mod 
P )  ->  y  =  x ) )
302123, 301sylbid 150 . . . . . . 7  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( (
-u 1 ^ S
)  x.  S )  mod  P )  =  ( ( ( -u
1 ^ R )  x.  R )  mod 
P )  ->  y  =  x ) )
303101, 302sylbid 150 . . . . . 6  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( ( ( ( -u 1 ^ S )  x.  S
)  mod  P )  /  2 )  =  ( ( ( (
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 )  ->  y  =  x ) )
30463, 303sylbid 150 . . . . 5  |-  ( (
ph  /\  ( y  e.  ( 1 ... (
( P  -  1 )  /  2 ) )  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) ) )  -> 
( ( M `  y )  =  ( M `  x )  ->  y  =  x ) )
305304ralrimivva 2632 . . . 4  |-  ( ph  ->  A. y  e.  ( 1 ... ( ( P  -  1 )  /  2 ) ) A. x  e.  ( 1 ... ( ( P  -  1 )  /  2 ) ) ( ( M `  y )  =  ( M `  x )  ->  y  =  x ) )
306 nfmpt1 4224 . . . . . . . . . 10  |-  F/_ x
( x  e.  ( 1 ... ( ( P  -  1 )  /  2 ) ) 
|->  ( ( ( (
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 ) )
3075, 306nfcxfr 2389 . . . . . . . . 9  |-  F/_ x M
308 nfcv 2392 . . . . . . . . 9  |-  F/_ x
y
309307, 308nffv 5705 . . . . . . . 8  |-  F/_ x
( M `  y
)
310 nfcv 2392 . . . . . . . . 9  |-  F/_ x
z
311307, 310nffv 5705 . . . . . . . 8  |-  F/_ x
( M `  z
)
312309, 311nfeq 2400 . . . . . . 7  |-  F/ x
( M `  y
)  =  ( M `
 z )
313 nfv 1581 . . . . . . 7  |-  F/ x  y  =  z
314312, 313nfim 1625 . . . . . 6  |-  F/ x
( ( M `  y )  =  ( M `  z )  ->  y  =  z )
315 nfv 1581 . . . . . 6  |-  F/ z ( ( M `  y )  =  ( M `  x )  ->  y  =  x )
316 fveq2 5695 . . . . . . . 8  |-  ( z  =  x  ->  ( M `  z )  =  ( M `  x ) )
317316eqeq2d 2250 . . . . . . 7  |-  ( z  =  x  ->  (
( M `  y
)  =  ( M `
 z )  <->  ( M `  y )  =  ( M `  x ) ) )
318 equequ2 1765 . . . . . . 7  |-  ( z  =  x  ->  (
y  =  z  <->  y  =  x ) )
319317, 318imbi12d 234 . . . . . 6  |-  ( z  =  x  ->  (
( ( M `  y )  =  ( M `  z )  ->  y  =  z )  <->  ( ( M `
 y )  =  ( M `  x
)  ->  y  =  x ) ) )
320314, 315, 319cbvralw 2779 . . . . 5  |-  ( A. z  e.  ( 1 ... ( ( P  -  1 )  / 
2 ) ) ( ( M `  y
)  =  ( M `
 z )  -> 
y  =  z )  <->  A. x  e.  (
1 ... ( ( P  -  1 )  / 
2 ) ) ( ( M `  y
)  =  ( M `
 x )  -> 
y  =  x ) )
321320ralbii 2556 . . . 4  |-  ( A. y  e.  ( 1 ... ( ( P  -  1 )  / 
2 ) ) A. z  e.  ( 1 ... ( ( P  -  1 )  / 
2 ) ) ( ( M `  y
)  =  ( M `
 z )  -> 
y  =  z )  <->  A. y  e.  (
1 ... ( ( P  -  1 )  / 
2 ) ) A. x  e.  ( 1 ... ( ( P  -  1 )  / 
2 ) ) ( ( M `  y
)  =  ( M `
 x )  -> 
y  =  x ) )
322305, 321sylibr 134 . . 3  |-  ( ph  ->  A. y  e.  ( 1 ... ( ( P  -  1 )  /  2 ) ) A. z  e.  ( 1 ... ( ( P  -  1 )  /  2 ) ) ( ( M `  y )  =  ( M `  z )  ->  y  =  z ) )
323 dff13 5974 . . 3  |-  ( M : ( 1 ... ( ( P  - 
1 )  /  2
) ) -1-1-> ( 1 ... ( ( P  -  1 )  / 
2 ) )  <->  ( M : ( 1 ... ( ( P  - 
1 )  /  2
) ) --> ( 1 ... ( ( P  -  1 )  / 
2 ) )  /\  A. y  e.  ( 1 ... ( ( P  -  1 )  / 
2 ) ) A. z  e.  ( 1 ... ( ( P  -  1 )  / 
2 ) ) ( ( M `  y
)  =  ( M `
 z )  -> 
y  =  z ) ) )
3246, 322, 323sylanbrc 421 . 2  |-  ( ph  ->  M : ( 1 ... ( ( P  -  1 )  / 
2 ) ) -1-1-> ( 1 ... ( ( P  -  1 )  /  2 ) ) )
325 1zzd 9671 . . . . 5  |-  ( ph  ->  1  e.  ZZ )
3261, 196syl 14 . . . . . 6  |-  ( ph  ->  ( ( P  - 
1 )  /  2
)  e.  NN )
327326nnzd 9767 . . . . 5  |-  ( ph  ->  ( ( P  - 
1 )  /  2
)  e.  ZZ )
328325, 327fzfigd 10868 . . . 4  |-  ( ph  ->  ( 1 ... (
( P  -  1 )  /  2 ) )  e.  Fin )
329 enrefg 7050 . . . 4  |-  ( ( 1 ... ( ( P  -  1 )  /  2 ) )  e.  Fin  ->  (
1 ... ( ( P  -  1 )  / 
2 ) )  ~~  ( 1 ... (
( P  -  1 )  /  2 ) ) )
330328, 329syl 14 . . 3  |-  ( ph  ->  ( 1 ... (
( P  -  1 )  /  2 ) )  ~~  ( 1 ... ( ( P  -  1 )  / 
2 ) ) )
331 f1finf1o 7264 . . 3  |-  ( ( ( 1 ... (
( P  -  1 )  /  2 ) )  ~~  ( 1 ... ( ( P  -  1 )  / 
2 ) )  /\  ( 1 ... (
( P  -  1 )  /  2 ) )  e.  Fin )  ->  ( M : ( 1 ... ( ( P  -  1 )  /  2 ) )
-1-1-> ( 1 ... (
( P  -  1 )  /  2 ) )  <->  M : ( 1 ... ( ( P  -  1 )  / 
2 ) ) -1-1-onto-> ( 1 ... ( ( P  -  1 )  / 
2 ) ) ) )
332330, 328, 331syl2anc 415 . 2  |-  ( ph  ->  ( M : ( 1 ... ( ( P  -  1 )  /  2 ) )
-1-1-> ( 1 ... (
( P  -  1 )  /  2 ) )  <->  M : ( 1 ... ( ( P  -  1 )  / 
2 ) ) -1-1-onto-> ( 1 ... ( ( P  -  1 )  / 
2 ) ) ) )
333324, 332mpbid 147 1  |-  ( ph  ->  M : ( 1 ... ( ( P  -  1 )  / 
2 ) ) -1-1-onto-> ( 1 ... ( ( P  -  1 )  / 
2 ) ) )
Colors of variables:    wff set class
This proof depends on syntax axioms:   -. wn 3    -> wi 4    /\ wa 104    <-> wb 105    \/ wo 720    = wceq 1402    e. wcel 2209    =/= wne 2420   A.wral 2528   _Vcvv 2821    \ cdif 3217   {csn 3709   {cpr 3710   class class class wbr 4130    |-> cmpt 4192   -->wf 5373   -1-1->wf1 5374   -1-1-onto->wf1o 5376   ` cfv 5377  (class class class)co 6085    ~~ cen 7020   Fincfn 7022   CCcc 8177   RRcr 8178   0cc0 8179   1c1 8180    + caddc 8182    x. cmul 8184    < clt 8360    <_ cle 8361    - cmin 8497   -ucneg 8498   # cap 8909    / cdiv 9002   NNcn 9304   2c2 9355   NN0cn0 9563   ZZcz 9644   QQcq 10019   ...cfz 10411    mod cmo 10759   ^cexp 10975    || cdvds 12554    gcd cgcd 12730   Primecprime 12885
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 623  ax-in2 624  ax-io 721  ax-5 1500  ax-7 1501  ax-gen 1502  ax-ie1 1546  ax-ie2 1547  ax-8 1557  ax-10 1558  ax-11 1559  ax-i12 1560  ax-bndl 1562  ax-4 1563  ax-17 1579  ax-i9 1583  ax-ial 1587  ax-i5r 1588  ax-14 2212  ax-ext 2220  ax-coll 4246  ax-sep 4249  ax-nul 4259  ax-pow 4311  ax-pr 4346  ax-un 4578  ax-setind 4684  ax-iinf 4735  ax-cnex 8270  ax-resscn 8271  ax-1cn 8272  ax-1re 8273  ax-icn 8274  ax-addcl 8275  ax-addrcl 8276  ax-mulcl 8277  ax-mulrcl 8278  ax-addcom 8279  ax-mulcom 8280  ax-addass 8281  ax-mulass 8282  ax-distr 8283  ax-i2m1 8284  ax-0lt1 8285  ax-1rid 8286  ax-0id 8287  ax-rnegex 8288  ax-precex 8289  ax-cnre 8290  ax-pre-ltirr 8291  ax-pre-ltwlin 8292  ax-pre-lttrn 8293  ax-pre-apti 8294  ax-pre-ltadd 8295  ax-pre-mulgt0 8296  ax-pre-mulext 8297  ax-arch 8298  ax-caucvg 8299
This proof depends on definitions:  df-bi 117  df-stab 843  df-dc 847  df-3or 1010  df-3an 1011  df-tru 1405  df-fal 1408  df-xor 1425  df-nf 1514  df-sb 1816  df-eu 2089  df-mo 2090  df-clab 2225  df-cleq 2231  df-clel 2234  df-nfc 2381  df-ne 2421  df-nel 2516  df-ral 2533  df-rex 2534  df-reu 2535  df-rmo 2536  df-rab 2537  df-v 2823  df-sbc 3052  df-csb 3148  df-dif 3222  df-un 3224  df-in 3226  df-ss 3233  df-nul 3521  df-if 3639  df-pw 3690  df-sn 3715  df-pr 3716  df-op 3718  df-uni 3936  df-int 3971  df-iun 4014  df-br 4131  df-opab 4193  df-mpt 4194  df-tr 4230  df-id 4438  df-po 4441  df-iso 4442  df-iord 4511  df-on 4513  df-ilim 4514  df-suc 4516  df-iom 4738  df-xp 4780  df-rel 4781  df-cnv 4782  df-co 4783  df-dm 4784  df-rn 4785  df-res 4786  df-ima 4787  df-iota 5337  df-fun 5379  df-fn 5380  df-f 5381  df-f1 5382  df-fo 5383  df-f1o 5384  df-fv 5385  df-riota 6038  df-ov 6088  df-oprab 6089  df-mpo 6090  df-1st 6374  df-2nd 6375  df-recs 6576  df-frec 6662  df-1o 6687  df-2o 6688  df-er 6807  df-en 7023  df-fin 7025  df-sup 7324  df-pnf 8362  df-mnf 8363  df-xr 8364  df-ltxr 8365  df-le 8366  df-sub 8499  df-neg 8500  df-reap 8903  df-ap 8910  df-div 9003  df-inn 9305  df-2 9363  df-3 9364  df-4 9365  df-n0 9564  df-z 9645  df-uz 9922  df-q 10020  df-rp 10055  df-fz 10412  df-fzo 10550  df-fl 10705  df-mod 10760  df-seqfrec 10885  df-exp 10976  df-cj 11607  df-re 11608  df-im 11609  df-rsqrt 11764  df-abs 11765  df-dvds 12555  df-gcd 12731  df-prm 12886
This theorem is used by:  lgseisenlem3  16191
  Copyright terms: Public domain W3C validator