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

Theorem lgseisenlem1 16394
Description: Lemma for lgseisen 16398. If  R ( u )  =  ( Q  x.  u )  mod  P and  M ( u )  =  (  -u
1 ^ R ( u ) )  x.  R ( u ), then for any even  1  <_  u  <_  P  -  1,  M ( u ) is also an even integer  1  <_  M
( u )  <_  P  -  1. To simplify these statements, we divide all the even numbers by  2, so that it becomes the statement that  M ( x  /  2 )  =  (  -u 1 ^ R
( x  /  2
) )  x.  R
( x  /  2
)  /  2 is an integer between  1 and  ( P  -  1 )  / 
2. (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 ) )
Assertion
Ref Expression
lgseisenlem1  |-  ( ph  ->  M : ( 1 ... ( ( P  -  1 )  / 
2 ) ) --> ( 1 ... ( ( P  -  1 )  /  2 ) ) )
Distinct variable groups:    x, P    ph, x    x, Q
Allowed substitution hints:    R( x)    M( x)

Proof of Theorem lgseisenlem1
StepHypRef Expression
1 1zzd 9682 . . 3  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  1  e.  ZZ )
2 lgseisen.1 . . . . . 6  |-  ( ph  ->  P  e.  ( Prime  \  { 2 } ) )
32adantr 276 . . . . 5  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  P  e.  ( Prime  \  { 2 } ) )
4 oddprm 13067 . . . . 5  |-  ( P  e.  ( Prime  \  {
2 } )  -> 
( ( P  - 
1 )  /  2
)  e.  NN )
53, 4syl 14 . . . 4  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( P  -  1 )  /  2 )  e.  NN )
65nnzd 9778 . . 3  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( P  -  1 )  /  2 )  e.  ZZ )
7 neg1cn 9418 . . . . . . . . . . . . 13  |-  -u 1  e.  CC
87a1i 9 . . . . . . . . . . . 12  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  -u 1  e.  CC )
9 neg1ap0 9422 . . . . . . . . . . . . 13  |-  -u 1 #  0
109a1i 9 . . . . . . . . . . . 12  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  -u 1 #  0 )
11 2z 9683 . . . . . . . . . . . . 13  |-  2  e.  ZZ
1211a1i 9 . . . . . . . . . . . 12  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  2  e.  ZZ )
13 simpr 110 . . . . . . . . . . . 12  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  ( R  /  2 )  e.  ZZ )
14 expmulzap 11043 . . . . . . . . . . . 12  |-  ( ( (  -u 1  e.  CC  /\  -u 1 #  0 )  /\  ( 2  e.  ZZ  /\  ( R  /  2 )  e.  ZZ ) )  -> 
(  -u 1 ^ (
2  x.  ( R  /  2 ) ) )  =  ( ( 
-u 1 ^ 2 ) ^ ( R  /  2 ) ) )
158, 10, 12, 13, 14syl22anc 1279 . . . . . . . . . . 11  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (  -u 1 ^ ( 2  x.  ( R  / 
2 ) ) )  =  ( (  -u
1 ^ 2 ) ^ ( R  / 
2 ) ) )
16 lgseisen.4 . . . . . . . . . . . . . . . . . 18  |-  R  =  ( ( Q  x.  ( 2  x.  x
) )  mod  P
)
17 lgseisen.2 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ph  ->  Q  e.  ( Prime  \  { 2 } ) )
1817adantr 276 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  Q  e.  ( Prime  \  { 2 } ) )
1918eldifad 3231 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  Q  e.  Prime )
20 prmz 12914 . . . . . . . . . . . . . . . . . . . . 21  |-  ( Q  e.  Prime  ->  Q  e.  ZZ )
2119, 20syl 14 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  Q  e.  ZZ )
22 elfzelz 10445 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( x  e.  ( 1 ... ( ( P  - 
1 )  /  2
) )  ->  x  e.  ZZ )
2322adantl 277 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  x  e.  ZZ )
24 zmulcl 9709 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( 2  e.  ZZ  /\  x  e.  ZZ )  ->  ( 2  x.  x
)  e.  ZZ )
2511, 23, 24sylancr 418 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
2  x.  x )  e.  ZZ )
2621, 25zmulcld 9785 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( Q  x.  ( 2  x.  x ) )  e.  ZZ )
273eldifad 3231 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  P  e.  Prime )
28 prmnn 12913 . . . . . . . . . . . . . . . . . . . 20  |-  ( P  e.  Prime  ->  P  e.  NN )
2927, 28syl 14 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  P  e.  NN )
30 zmodfz 10804 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( Q  x.  (
2  x.  x ) )  e.  ZZ  /\  P  e.  NN )  ->  ( ( Q  x.  ( 2  x.  x
) )  mod  P
)  e.  ( 0 ... ( P  - 
1 ) ) )
3126, 29, 30syl2anc 415 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( Q  x.  (
2  x.  x ) )  mod  P )  e.  ( 0 ... ( P  -  1 ) ) )
3216, 31eqeltrid 2325 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  e.  ( 0 ... ( P  -  1 ) ) )
33 elfznn0 10538 . . . . . . . . . . . . . . . . 17  |-  ( R  e.  ( 0 ... ( P  -  1 ) )  ->  R  e.  NN0 )
3432, 33syl 14 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  e.  NN0 )
3534nn0zd 9777 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  e.  ZZ )
3635zcnd 9780 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  e.  CC )
3736adantr 276 . . . . . . . . . . . . 13  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  R  e.  CC )
38 2cnd 9386 . . . . . . . . . . . . 13  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  2  e.  CC )
39 2ap0 9406 . . . . . . . . . . . . . 14  |-  2 #  0
4039a1i 9 . . . . . . . . . . . . 13  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  2 #  0 )
4137, 38, 40divcanap2d 9130 . . . . . . . . . . . 12  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (
2  x.  ( R  /  2 ) )  =  R )
4241oveq2d 6104 . . . . . . . . . . 11  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (  -u 1 ^ ( 2  x.  ( R  / 
2 ) ) )  =  (  -u 1 ^ R ) )
43 neg1sqe1 11092 . . . . . . . . . . . . 13  |-  (  -u
1 ^ 2 )  =  1
4443oveq1i 6098 . . . . . . . . . . . 12  |-  ( ( 
-u 1 ^ 2 ) ^ ( R  /  2 ) )  =  ( 1 ^ ( R  /  2
) )
45 1exp 11026 . . . . . . . . . . . . 13  |-  ( ( R  /  2 )  e.  ZZ  ->  (
1 ^ ( R  /  2 ) )  =  1 )
4645adantl 277 . . . . . . . . . . . 12  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (
1 ^ ( R  /  2 ) )  =  1 )
4744, 46eqtrid 2283 . . . . . . . . . . 11  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (
(  -u 1 ^ 2 ) ^ ( R  /  2 ) )  =  1 )
4815, 42, 473eqtr3d 2279 . . . . . . . . . 10  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (  -u 1 ^ R )  =  1 )
4948oveq1d 6103 . . . . . . . . 9  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (
(  -u 1 ^ R
)  x.  R )  =  ( 1  x.  R ) )
5037mullidd 8350 . . . . . . . . 9  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (
1  x.  R )  =  R )
5149, 50eqtrd 2271 . . . . . . . 8  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (
(  -u 1 ^ R
)  x.  R )  =  R )
5251oveq1d 6103 . . . . . . 7  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (
( (  -u 1 ^ R )  x.  R
)  mod  P )  =  ( R  mod  P ) )
53 zq 10042 . . . . . . . . . 10  |-  ( R  e.  ZZ  ->  R  e.  QQ )
5435, 53syl 14 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  e.  QQ )
55 nnq 10049 . . . . . . . . . 10  |-  ( P  e.  NN  ->  P  e.  QQ )
5629, 55syl 14 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  P  e.  QQ )
5734nn0ge0d 9634 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  0  <_  R )
58 zq 10042 . . . . . . . . . . . 12  |-  ( ( Q  x.  ( 2  x.  x ) )  e.  ZZ  ->  ( Q  x.  ( 2  x.  x ) )  e.  QQ )
5926, 58syl 14 . . . . . . . . . . 11  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( Q  x.  ( 2  x.  x ) )  e.  QQ )
6029nngt0d 9357 . . . . . . . . . . 11  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  0  <  P )
61 modqlt 10791 . . . . . . . . . . 11  |-  ( ( ( Q  x.  (
2  x.  x ) )  e.  QQ  /\  P  e.  QQ  /\  0  <  P )  ->  (
( Q  x.  (
2  x.  x ) )  mod  P )  <  P )
6259, 56, 60, 61syl3anc 1278 . . . . . . . . . 10  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( Q  x.  (
2  x.  x ) )  mod  P )  <  P )
6316, 62eqbrtrid 4166 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  <  P )
64 modqid 10807 . . . . . . . . 9  |-  ( ( ( R  e.  QQ  /\  P  e.  QQ )  /\  ( 0  <_  R  /\  R  <  P
) )  ->  ( R  mod  P )  =  R )
6554, 56, 57, 63, 64syl22anc 1279 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( R  mod  P )  =  R )
6665adantr 276 . . . . . . 7  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  ( R  mod  P )  =  R )
6752, 66eqtrd 2271 . . . . . 6  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (
( (  -u 1 ^ R )  x.  R
)  mod  P )  =  R )
6867oveq1d 6103 . . . . 5  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (
( ( (  -u
1 ^ R )  x.  R )  mod 
P )  /  2
)  =  ( R  /  2 ) )
6968, 13eqeltrd 2315 . . . 4  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  ( R  /  2 )  e.  ZZ )  ->  (
( ( (  -u
1 ^ R )  x.  R )  mod 
P )  /  2
)  e.  ZZ )
7029nncnd 9327 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  P  e.  CC )
7170mullidd 8350 . . . . . . . . . . . . 13  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
1  x.  P )  =  P )
7271oveq2d 6104 . . . . . . . . . . . 12  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (  -u R  +  ( 1  x.  P ) )  =  (  -u R  +  P ) )
7334nn0red 9632 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  e.  RR )
7473renegcld 8714 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -u R  e.  RR )
7574recnd 8360 . . . . . . . . . . . . 13  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -u R  e.  CC )
7670, 75addcomd 8484 . . . . . . . . . . . 12  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  +  -u R )  =  (  -u R  +  P ) )
7770, 36negsubd 8650 . . . . . . . . . . . 12  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  +  -u R )  =  ( P  -  R ) )
7872, 76, 773eqtr2d 2277 . . . . . . . . . . 11  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (  -u R  +  ( 1  x.  P ) )  =  ( P  -  R ) )
7978oveq1d 6103 . . . . . . . . . 10  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
(  -u R  +  ( 1  x.  P ) )  mod  P )  =  ( ( P  -  R )  mod 
P ) )
80 qnegcl 10052 . . . . . . . . . . . 12  |-  ( R  e.  QQ  ->  -u R  e.  QQ )
8154, 80syl 14 . . . . . . . . . . 11  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -u R  e.  QQ )
82 modqcyc 10817 . . . . . . . . . . 11  |-  ( ( (  -u R  e.  QQ  /\  1  e.  ZZ )  /\  ( P  e.  QQ  /\  0  < 
P ) )  -> 
( (  -u R  +  ( 1  x.  P ) )  mod 
P )  =  ( 
-u R  mod  P
) )
8381, 1, 56, 60, 82syl22anc 1279 . . . . . . . . . 10  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
(  -u R  +  ( 1  x.  P ) )  mod  P )  =  (  -u R  mod  P ) )
84 qsubcl 10054 . . . . . . . . . . . 12  |-  ( ( P  e.  QQ  /\  R  e.  QQ )  ->  ( P  -  R
)  e.  QQ )
8556, 54, 84syl2anc 415 . . . . . . . . . . 11  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  -  R )  e.  QQ )
8629nnred 9326 . . . . . . . . . . . . 13  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  P  e.  RR )
8773, 86, 63ltled 8452 . . . . . . . . . . . 12  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  <_  P )
8886, 73subge0d 8870 . . . . . . . . . . . 12  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
0  <_  ( P  -  R )  <->  R  <_  P ) )
8987, 88mpbird 167 . . . . . . . . . . 11  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  0  <_  ( P  -  R
) )
90 2nn 9477 . . . . . . . . . . . . . . . . . . . . . 22  |-  2  e.  NN
91 elfznn 10477 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( x  e.  ( 1 ... ( ( P  - 
1 )  /  2
) )  ->  x  e.  NN )
9291adantl 277 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  x  e.  NN )
93 nnmulcl 9334 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( 2  e.  NN  /\  x  e.  NN )  ->  ( 2  x.  x
)  e.  NN )
9490, 92, 93sylancr 418 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
2  x.  x )  e.  NN )
95 elfzle2 10449 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( x  e.  ( 1 ... ( ( P  - 
1 )  /  2
) )  ->  x  <_  ( ( P  - 
1 )  /  2
) )
9695adantl 277 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  x  <_  ( ( P  - 
1 )  /  2
) )
9792nnred 9326 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  x  e.  RR )
98 prmuz2 12935 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( P  e.  Prime  ->  P  e.  ( ZZ>= `  2 )
)
99 uz2m1nn 10021 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( P  e.  ( ZZ>= `  2
)  ->  ( P  -  1 )  e.  NN )
10027, 98, 993syl 17 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  -  1 )  e.  NN )
101100nnred 9326 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  -  1 )  e.  RR )
102 2re 9383 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  2  e.  RR
103102a1i 9 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  2  e.  RR )
104 2pos 9404 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  0  <  2
105104a1i 9 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  0  <  2 )
106 lemuldiv2 9220 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( x  e.  RR  /\  ( P  -  1
)  e.  RR  /\  ( 2  e.  RR  /\  0  <  2 ) )  ->  ( (
2  x.  x )  <_  ( P  - 
1 )  <->  x  <_  ( ( P  -  1 )  /  2 ) ) )
10797, 101, 103, 105, 106syl112anc 1282 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( 2  x.  x
)  <_  ( P  -  1 )  <->  x  <_  ( ( P  -  1 )  /  2 ) ) )
10896, 107mpbird 167 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
2  x.  x )  <_  ( P  - 
1 ) )
109 prmz 12914 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( P  e.  Prime  ->  P  e.  ZZ )
11027, 109syl 14 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  P  e.  ZZ )
111 peano2zm 9693 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( P  e.  ZZ  ->  ( P  -  1 )  e.  ZZ )
112 fznn 10513 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( P  -  1 )  e.  ZZ  ->  (
( 2  x.  x
)  e.  ( 1 ... ( P  - 
1 ) )  <->  ( (
2  x.  x )  e.  NN  /\  (
2  x.  x )  <_  ( P  - 
1 ) ) ) )
113110, 111, 1123syl 17 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( 2  x.  x
)  e.  ( 1 ... ( P  - 
1 ) )  <->  ( (
2  x.  x )  e.  NN  /\  (
2  x.  x )  <_  ( P  - 
1 ) ) ) )
11494, 108, 113mpbir2and 957 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
2  x.  x )  e.  ( 1 ... ( P  -  1 ) ) )
115 fzm1ndvds 12648 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( P  e.  NN  /\  ( 2  x.  x
)  e.  ( 1 ... ( P  - 
1 ) ) )  ->  -.  P  ||  (
2  x.  x ) )
11629, 114, 115syl2anc 415 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -.  P  ||  ( 2  x.  x ) )
117 lgseisen.3 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ph  ->  P  =/=  Q )
118117adantr 276 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  P  =/=  Q )
119 prmrp 12949 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( P  e.  Prime  /\  Q  e.  Prime )  ->  (
( P  gcd  Q
)  =  1  <->  P  =/=  Q ) )
12027, 19, 119syl2anc 415 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( P  gcd  Q
)  =  1  <->  P  =/=  Q ) )
121118, 120mpbird 167 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  gcd  Q )  =  1 )
122 coprmdvds 12895 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( P  e.  ZZ  /\  Q  e.  ZZ  /\  (
2  x.  x )  e.  ZZ )  -> 
( ( P  ||  ( Q  x.  (
2  x.  x ) )  /\  ( P  gcd  Q )  =  1 )  ->  P  ||  ( 2  x.  x
) ) )
123110, 21, 25, 122syl3anc 1278 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( P  ||  ( Q  x.  ( 2  x.  x ) )  /\  ( P  gcd  Q )  =  1 )  ->  P  ||  (
2  x.  x ) ) )
124121, 123mpan2d 432 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  ||  ( Q  x.  ( 2  x.  x
) )  ->  P  ||  ( 2  x.  x
) ) )
125116, 124mtod 673 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -.  P  ||  ( Q  x.  ( 2  x.  x
) ) )
126 dvdsval3 12583 . . . . . . . . . . . . . . . . . . 19  |-  ( ( P  e.  NN  /\  ( Q  x.  (
2  x.  x ) )  e.  ZZ )  ->  ( P  ||  ( Q  x.  (
2  x.  x ) )  <->  ( ( Q  x.  ( 2  x.  x ) )  mod 
P )  =  0 ) )
12729, 26, 126syl2anc 415 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  ||  ( Q  x.  ( 2  x.  x
) )  <->  ( ( Q  x.  ( 2  x.  x ) )  mod  P )  =  0 ) )
128125, 127mtbid 683 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -.  ( ( Q  x.  ( 2  x.  x
) )  mod  P
)  =  0 )
12916eqeq1i 2246 . . . . . . . . . . . . . . . . 17  |-  ( R  =  0  <->  ( ( Q  x.  ( 2  x.  x ) )  mod  P )  =  0 )
130128, 129sylnibr 688 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -.  R  =  0 )
131100nnnn0d 9631 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  -  1 )  e.  NN0 )
132 nn0uz 9973 . . . . . . . . . . . . . . . . . . . 20  |-  NN0  =  ( ZZ>= `  0 )
133131, 132eleqtrdi 2331 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  -  1 )  e.  ( ZZ>= `  0
) )
134 elfzp12 10523 . . . . . . . . . . . . . . . . . . 19  |-  ( ( P  -  1 )  e.  ( ZZ>= `  0
)  ->  ( R  e.  ( 0 ... ( P  -  1 ) )  <->  ( R  =  0  \/  R  e.  ( ( 0  +  1 ) ... ( P  -  1 ) ) ) ) )
135133, 134syl 14 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( R  e.  ( 0 ... ( P  - 
1 ) )  <->  ( R  =  0  \/  R  e.  ( ( 0  +  1 ) ... ( P  -  1 ) ) ) ) )
13632, 135mpbid 147 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( R  =  0  \/  R  e.  ( (
0  +  1 ) ... ( P  - 
1 ) ) ) )
137136ord 736 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( -.  R  =  0  ->  R  e.  ( ( 0  +  1 ) ... ( P  - 
1 ) ) ) )
138130, 137mpd 13 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  e.  ( ( 0  +  1 ) ... ( P  -  1 ) ) )
139 1e0p1 9834 . . . . . . . . . . . . . . . 16  |-  1  =  ( 0  +  1 )
140139oveq1i 6098 . . . . . . . . . . . . . . 15  |-  ( 1 ... ( P  - 
1 ) )  =  ( ( 0  +  1 ) ... ( P  -  1 ) )
141138, 140eleqtrrdi 2332 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  e.  ( 1 ... ( P  -  1 ) ) )
142 elfznn 10477 . . . . . . . . . . . . . 14  |-  ( R  e.  ( 1 ... ( P  -  1 ) )  ->  R  e.  NN )
143141, 142syl 14 . . . . . . . . . . . . 13  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  e.  NN )
144143nnrpd 10112 . . . . . . . . . . . 12  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  R  e.  RR+ )
14586, 144ltsubrpd 10147 . . . . . . . . . . 11  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  -  R )  <  P )
146 modqid 10807 . . . . . . . . . . 11  |-  ( ( ( ( P  -  R )  e.  QQ  /\  P  e.  QQ )  /\  ( 0  <_ 
( P  -  R
)  /\  ( P  -  R )  <  P
) )  ->  (
( P  -  R
)  mod  P )  =  ( P  -  R ) )
14785, 56, 89, 145, 146syl22anc 1279 . . . . . . . . . 10  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( P  -  R
)  mod  P )  =  ( P  -  R ) )
14879, 83, 1473eqtr3d 2279 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (  -u R  mod  P )  =  ( P  -  R ) )
149148adantr 276 . . . . . . . 8  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
(  -u R  mod  P
)  =  ( P  -  R ) )
150 ax-1cn 8278 . . . . . . . . . . . . . 14  |-  1  e.  CC
151150a1i 9 . . . . . . . . . . . . 13  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
1  e.  CC )
152143adantr 276 . . . . . . . . . . . . 13  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  ->  R  e.  NN )
153 2ne0 9405 . . . . . . . . . . . . . . . 16  |-  2  =/=  0
15435peano2zd 9782 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( R  +  1 )  e.  ZZ )
155 dvdsval2 12582 . . . . . . . . . . . . . . . 16  |-  ( ( 2  e.  ZZ  /\  2  =/=  0  /\  ( R  +  1 )  e.  ZZ )  -> 
( 2  ||  ( R  +  1 )  <-> 
( ( R  + 
1 )  /  2
)  e.  ZZ ) )
15611, 153, 154, 155mp3an12i 1382 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
2  ||  ( R  +  1 )  <->  ( ( R  +  1 )  /  2 )  e.  ZZ ) )
157156biimpar 297 . . . . . . . . . . . . . 14  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
2  ||  ( R  +  1 ) )
15835adantr 276 . . . . . . . . . . . . . . 15  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  ->  R  e.  ZZ )
15990a1i 9 . . . . . . . . . . . . . . 15  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
2  e.  NN )
160 1lt2 9485 . . . . . . . . . . . . . . . 16  |-  1  <  2
161160a1i 9 . . . . . . . . . . . . . . 15  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
1  <  2 )
162 ndvdsp1 12724 . . . . . . . . . . . . . . 15  |-  ( ( R  e.  ZZ  /\  2  e.  NN  /\  1  <  2 )  ->  (
2  ||  R  ->  -.  2  ||  ( R  +  1 ) ) )
163158, 159, 161, 162syl3anc 1278 . . . . . . . . . . . . . 14  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( 2  ||  R  ->  -.  2  ||  ( R  +  1 ) ) )
164157, 163mt2d 634 . . . . . . . . . . . . 13  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  ->  -.  2  ||  R )
165 oexpneg 12669 . . . . . . . . . . . . 13  |-  ( ( 1  e.  CC  /\  R  e.  NN  /\  -.  2  ||  R )  -> 
(  -u 1 ^ R
)  =  -u (
1 ^ R ) )
166151, 152, 164, 165syl3anc 1278 . . . . . . . . . . . 12  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
(  -u 1 ^ R
)  =  -u (
1 ^ R ) )
167 1exp 11026 . . . . . . . . . . . . . 14  |-  ( R  e.  ZZ  ->  (
1 ^ R )  =  1 )
168158, 167syl 14 . . . . . . . . . . . . 13  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( 1 ^ R
)  =  1 )
169168negeqd 8528 . . . . . . . . . . . 12  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  ->  -u ( 1 ^ R
)  =  -u 1
)
170166, 169eqtrd 2271 . . . . . . . . . . 11  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
(  -u 1 ^ R
)  =  -u 1
)
171170oveq1d 6103 . . . . . . . . . 10  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( (  -u 1 ^ R )  x.  R
)  =  (  -u
1  x.  R ) )
17236adantr 276 . . . . . . . . . . 11  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  ->  R  e.  CC )
173172mulm1d 8744 . . . . . . . . . 10  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
(  -u 1  x.  R
)  =  -u R
)
174171, 173eqtrd 2271 . . . . . . . . 9  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( (  -u 1 ^ R )  x.  R
)  =  -u R
)
175174oveq1d 6103 . . . . . . . 8  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( (  -u
1 ^ R )  x.  R )  mod 
P )  =  ( 
-u R  mod  P
) )
17670adantr 276 . . . . . . . . 9  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  ->  P  e.  CC )
177176, 172, 151pnpcan2d 8682 . . . . . . . 8  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( P  + 
1 )  -  ( R  +  1 ) )  =  ( P  -  R ) )
178149, 175, 1773eqtr4d 2281 . . . . . . 7  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( (  -u
1 ^ R )  x.  R )  mod 
P )  =  ( ( P  +  1 )  -  ( R  +  1 ) ) )
179178oveq1d 6103 . . . . . 6  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( ( ( 
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 )  =  ( ( ( P  + 
1 )  -  ( R  +  1 ) )  /  2 ) )
180 peano2cn 8468 . . . . . . . 8  |-  ( P  e.  CC  ->  ( P  +  1 )  e.  CC )
181176, 180syl 14 . . . . . . 7  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( P  +  1 )  e.  CC )
182 peano2cn 8468 . . . . . . . 8  |-  ( R  e.  CC  ->  ( R  +  1 )  e.  CC )
183172, 182syl 14 . . . . . . 7  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( R  +  1 )  e.  CC )
184 2cnd 9386 . . . . . . 7  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
2  e.  CC )
18539a1i 9 . . . . . . 7  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
2 #  0 )
186181, 183, 184, 185divsubdirapd 9168 . . . . . 6  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( ( P  +  1 )  -  ( R  +  1
) )  /  2
)  =  ( ( ( P  +  1 )  /  2 )  -  ( ( R  +  1 )  / 
2 ) ) )
187179, 186eqtrd 2271 . . . . 5  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( ( ( 
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 )  =  ( ( ( P  + 
1 )  /  2
)  -  ( ( R  +  1 )  /  2 ) ) )
188176, 151, 184subadd23d 8666 . . . . . . . . . 10  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( P  - 
1 )  +  2 )  =  ( P  +  ( 2  -  1 ) ) )
189 2m1e1 9431 . . . . . . . . . . 11  |-  ( 2  -  1 )  =  1
190189oveq2i 6099 . . . . . . . . . 10  |-  ( P  +  ( 2  -  1 ) )  =  ( P  +  1 )
191188, 190eqtr2di 2288 . . . . . . . . 9  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( P  +  1 )  =  ( ( P  -  1 )  +  2 ) )
192191oveq1d 6103 . . . . . . . 8  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( P  + 
1 )  /  2
)  =  ( ( ( P  -  1 )  +  2 )  /  2 ) )
193100nncnd 9327 . . . . . . . . . . 11  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  -  1 )  e.  CC )
194193adantr 276 . . . . . . . . . 10  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( P  -  1 )  e.  CC )
195194, 184, 184, 185divdirapd 9167 . . . . . . . . 9  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( ( P  -  1 )  +  2 )  /  2
)  =  ( ( ( P  -  1 )  /  2 )  +  ( 2  / 
2 ) ) )
196 2div2e1 9446 . . . . . . . . . 10  |-  ( 2  /  2 )  =  1
197196oveq2i 6099 . . . . . . . . 9  |-  ( ( ( P  -  1 )  /  2 )  +  ( 2  / 
2 ) )  =  ( ( ( P  -  1 )  / 
2 )  +  1 )
198195, 197eqtrdi 2287 . . . . . . . 8  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( ( P  -  1 )  +  2 )  /  2
)  =  ( ( ( P  -  1 )  /  2 )  +  1 ) )
199192, 198eqtrd 2271 . . . . . . 7  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( P  + 
1 )  /  2
)  =  ( ( ( P  -  1 )  /  2 )  +  1 ) )
2006adantr 276 . . . . . . . 8  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( P  - 
1 )  /  2
)  e.  ZZ )
201200peano2zd 9782 . . . . . . 7  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( ( P  -  1 )  / 
2 )  +  1 )  e.  ZZ )
202199, 201eqeltrd 2315 . . . . . 6  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( P  + 
1 )  /  2
)  e.  ZZ )
203 simpr 110 . . . . . 6  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( R  + 
1 )  /  2
)  e.  ZZ )
204202, 203zsubcld 9784 . . . . 5  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( ( P  +  1 )  / 
2 )  -  (
( R  +  1 )  /  2 ) )  e.  ZZ )
205187, 204eqeltrd 2315 . . . 4  |-  ( ( ( ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  /\  (
( R  +  1 )  /  2 )  e.  ZZ )  -> 
( ( ( ( 
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 )  e.  ZZ )
206 zeo 9762 . . . . 5  |-  ( R  e.  ZZ  ->  (
( R  /  2
)  e.  ZZ  \/  ( ( R  + 
1 )  /  2
)  e.  ZZ ) )
20735, 206syl 14 . . . 4  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( R  /  2
)  e.  ZZ  \/  ( ( R  + 
1 )  /  2
)  e.  ZZ ) )
20869, 205, 207mpjaodan 810 . . 3  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( ( (  -u
1 ^ R )  x.  R )  mod 
P )  /  2
)  e.  ZZ )
209 m1expcl 11020 . . . . . . . . . 10  |-  ( R  e.  ZZ  ->  (  -u 1 ^ R )  e.  ZZ )
21035, 209syl 14 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (  -u 1 ^ R )  e.  ZZ )
211210, 35zmulcld 9785 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
(  -u 1 ^ R
)  x.  R )  e.  ZZ )
212211, 29zmodcld 10803 . . . . . . 7  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( (  -u 1 ^ R )  x.  R
)  mod  P )  e.  NN0 )
213212nn0red 9632 . . . . . 6  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( (  -u 1 ^ R )  x.  R
)  mod  P )  e.  RR )
214 fzm1ndvds 12648 . . . . . . . . . . . 12  |-  ( ( P  e.  NN  /\  R  e.  ( 1 ... ( P  - 
1 ) ) )  ->  -.  P  ||  R
)
21529, 141, 214syl2anc 415 . . . . . . . . . . 11  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -.  P  ||  R )
216 1ap0 8926 . . . . . . . . . . . . . . . . . . . 20  |-  1 #  0
217 divneg2ap 9074 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( 1  e.  CC  /\  1  e.  CC  /\  1 #  0 )  ->  -u (
1  /  1 )  =  ( 1  /  -u 1 ) )
218150, 150, 216, 217mp3an 1378 . . . . . . . . . . . . . . . . . . 19  |-  -u (
1  /  1 )  =  ( 1  /  -u 1 )
219 1div1e1 9042 . . . . . . . . . . . . . . . . . . . 20  |-  ( 1  /  1 )  =  1
220219negeqi 8527 . . . . . . . . . . . . . . . . . . 19  |-  -u (
1  /  1 )  =  -u 1
221218, 220eqtr3i 2261 . . . . . . . . . . . . . . . . . 18  |-  ( 1  /  -u 1 )  = 
-u 1
222221oveq1i 6098 . . . . . . . . . . . . . . . . 17  |-  ( ( 1  /  -u 1
) ^ R )  =  (  -u 1 ^ R )
2237a1i 9 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -u 1  e.  CC )
2249a1i 9 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -u 1 #  0 )
225223, 224, 35exprecapd 11140 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( 1  /  -u 1
) ^ R )  =  ( 1  / 
(  -u 1 ^ R
) ) )
226222, 225eqtr3id 2285 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (  -u 1 ^ R )  =  ( 1  / 
(  -u 1 ^ R
) ) )
227226oveq2d 6104 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
(  -u 1 ^ R
)  x.  (  -u
1 ^ R ) )  =  ( ( 
-u 1 ^ R
)  x.  ( 1  /  (  -u 1 ^ R ) ) ) )
228210zcnd 9780 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (  -u 1 ^ R )  e.  CC )
229223, 224, 35expap0d 11138 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (  -u 1 ^ R ) #  0 )
230228, 229recidapd 9121 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
(  -u 1 ^ R
)  x.  ( 1  /  (  -u 1 ^ R ) ) )  =  1 )
231227, 230eqtrd 2271 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
(  -u 1 ^ R
)  x.  (  -u
1 ^ R ) )  =  1 )
232231oveq1d 6103 . . . . . . . . . . . . 13  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( (  -u 1 ^ R )  x.  (  -u 1 ^ R ) )  x.  R )  =  ( 1  x.  R ) )
233228, 228, 36mulassd 8355 . . . . . . . . . . . . 13  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( (  -u 1 ^ R )  x.  (  -u 1 ^ R ) )  x.  R )  =  ( (  -u
1 ^ R )  x.  ( (  -u
1 ^ R )  x.  R ) ) )
23436mullidd 8350 . . . . . . . . . . . . 13  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
1  x.  R )  =  R )
235232, 233, 2343eqtr3d 2279 . . . . . . . . . . . 12  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
(  -u 1 ^ R
)  x.  ( ( 
-u 1 ^ R
)  x.  R ) )  =  R )
236235breq2d 4143 . . . . . . . . . . 11  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  ||  ( (  -u
1 ^ R )  x.  ( (  -u
1 ^ R )  x.  R ) )  <-> 
P  ||  R )
)
237215, 236mtbird 684 . . . . . . . . . 10  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -.  P  ||  ( (  -u
1 ^ R )  x.  ( (  -u
1 ^ R )  x.  R ) ) )
238 dvdsmultr2 12625 . . . . . . . . . . 11  |-  ( ( P  e.  ZZ  /\  (  -u 1 ^ R
)  e.  ZZ  /\  ( (  -u 1 ^ R )  x.  R
)  e.  ZZ )  ->  ( P  ||  ( (  -u 1 ^ R )  x.  R
)  ->  P  ||  (
(  -u 1 ^ R
)  x.  ( ( 
-u 1 ^ R
)  x.  R ) ) ) )
239110, 210, 211, 238syl3anc 1278 . . . . . . . . . 10  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  ||  ( (  -u
1 ^ R )  x.  R )  ->  P  ||  ( (  -u
1 ^ R )  x.  ( (  -u
1 ^ R )  x.  R ) ) ) )
240237, 239mtod 673 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -.  P  ||  ( (  -u
1 ^ R )  x.  R ) )
241 dvdsval3 12583 . . . . . . . . . 10  |-  ( ( P  e.  NN  /\  ( (  -u 1 ^ R )  x.  R
)  e.  ZZ )  ->  ( P  ||  ( (  -u 1 ^ R )  x.  R
)  <->  ( ( ( 
-u 1 ^ R
)  x.  R )  mod  P )  =  0 ) )
24229, 211, 241syl2anc 415 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  ( P  ||  ( (  -u
1 ^ R )  x.  R )  <->  ( (
(  -u 1 ^ R
)  x.  R )  mod  P )  =  0 ) )
243240, 242mtbid 683 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  -.  ( ( (  -u
1 ^ R )  x.  R )  mod 
P )  =  0 )
244 elnn0 9576 . . . . . . . . 9  |-  ( ( ( (  -u 1 ^ R )  x.  R
)  mod  P )  e.  NN0  <->  ( ( ( (  -u 1 ^ R
)  x.  R )  mod  P )  e.  NN  \/  ( ( (  -u 1 ^ R
)  x.  R )  mod  P )  =  0 ) )
245212, 244sylib 122 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( ( (  -u
1 ^ R )  x.  R )  mod 
P )  e.  NN  \/  ( ( (  -u
1 ^ R )  x.  R )  mod 
P )  =  0 ) )
246243, 245ecased 1390 . . . . . . 7  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( (  -u 1 ^ R )  x.  R
)  mod  P )  e.  NN )
247246nngt0d 9357 . . . . . 6  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  0  <  ( ( (  -u
1 ^ R )  x.  R )  mod 
P ) )
248213, 103, 247, 105divgt0d 9273 . . . . 5  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  0  <  ( ( ( ( 
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 ) )
249 elnnz 9665 . . . . 5  |-  ( ( ( ( (  -u
1 ^ R )  x.  R )  mod 
P )  /  2
)  e.  NN  <->  ( (
( ( (  -u
1 ^ R )  x.  R )  mod 
P )  /  2
)  e.  ZZ  /\  0  <  ( ( ( (  -u 1 ^ R
)  x.  R )  mod  P )  / 
2 ) ) )
250208, 248, 249sylanbrc 421 . . . 4  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( ( (  -u
1 ^ R )  x.  R )  mod 
P )  /  2
)  e.  NN )
251250nnge1d 9356 . . 3  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  1  <_  ( ( ( ( 
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 ) )
252 zmodfz 10804 . . . . . 6  |-  ( ( ( (  -u 1 ^ R )  x.  R
)  e.  ZZ  /\  P  e.  NN )  ->  ( ( (  -u
1 ^ R )  x.  R )  mod 
P )  e.  ( 0 ... ( P  -  1 ) ) )
253211, 29, 252syl2anc 415 . . . . 5  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( (  -u 1 ^ R )  x.  R
)  mod  P )  e.  ( 0 ... ( P  -  1 ) ) )
254 elfzle2 10449 . . . . 5  |-  ( ( ( (  -u 1 ^ R )  x.  R
)  mod  P )  e.  ( 0 ... ( P  -  1 ) )  ->  ( (
(  -u 1 ^ R
)  x.  R )  mod  P )  <_ 
( P  -  1 ) )
255253, 254syl 14 . . . 4  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( (  -u 1 ^ R )  x.  R
)  mod  P )  <_  ( P  -  1 ) )
256 lediv1 9207 . . . . 5  |-  ( ( ( ( (  -u
1 ^ R )  x.  R )  mod 
P )  e.  RR  /\  ( P  -  1 )  e.  RR  /\  ( 2  e.  RR  /\  0  <  2 ) )  ->  ( (
( (  -u 1 ^ R )  x.  R
)  mod  P )  <_  ( P  -  1 )  <->  ( ( ( (  -u 1 ^ R
)  x.  R )  mod  P )  / 
2 )  <_  (
( P  -  1 )  /  2 ) ) )
257213, 101, 103, 105, 256syl112anc 1282 . . . 4  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( ( (  -u
1 ^ R )  x.  R )  mod 
P )  <_  ( P  -  1 )  <-> 
( ( ( ( 
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 )  <_  (
( P  -  1 )  /  2 ) ) )
258255, 257mpbid 147 . . 3  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( ( (  -u
1 ^ R )  x.  R )  mod 
P )  /  2
)  <_  ( ( P  -  1 )  /  2 ) )
2591, 6, 208, 251, 258elfzd 10436 . 2  |-  ( (
ph  /\  x  e.  ( 1 ... (
( P  -  1 )  /  2 ) ) )  ->  (
( ( (  -u
1 ^ R )  x.  R )  mod 
P )  /  2
)  e.  ( 1 ... ( ( P  -  1 )  / 
2 ) ) )
260 lgseisen.5 . 2  |-  M  =  ( x  e.  ( 1 ... ( ( P  -  1 )  /  2 ) ) 
|->  ( ( ( ( 
-u 1 ^ R
)  x.  R )  mod  P )  / 
2 ) )
261259, 260fmptd 5865 1  |-  ( ph  ->  M : ( 1 ... ( ( P  -  1 )  / 
2 ) ) --> ( 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    \ cdif 3217   {csn 3709   class class class wbr 4131    |-> cmpt 4193   -->wf 5376   ` cfv 5380  (class class class)co 6088   CCcc 8183   RRcr 8184   0cc0 8185   1c1 8186    + caddc 8188    x. cmul 8190    < clt 8366    <_ cle 8367    - cmin 8504    -ucneg 8505   # cap 8917    / cdiv 9010   NNcn 9313   2c2 9364   NN0cn0 9574   ZZcz 9655   ZZ>=cuz 9937   QQcq 10035   ...cfz 10428    mod cmo 10780   ^cexp 10996    || cdvds 12579    gcd cgcd 12755   Primecprime 12910
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 4248  ax-sep 4251  ax-nul 4261  ax-pow 4313  ax-pr 4348  ax-un 4580  ax-setind 4686  ax-iinf 4737  ax-cnex 8276  ax-resscn 8277  ax-1cn 8278  ax-1re 8279  ax-icn 8280  ax-addcl 8281  ax-addrcl 8282  ax-mulcl 8283  ax-mulrcl 8284  ax-addcom 8285  ax-mulcom 8286  ax-addass 8287  ax-mulass 8288  ax-distr 8289  ax-i2m1 8290  ax-0lt1 8291  ax-1rid 8292  ax-0id 8293  ax-rnegex 8294  ax-precex 8295  ax-cnre 8296  ax-pre-ltirr 8297  ax-pre-ltwlin 8298  ax-pre-lttrn 8299  ax-pre-apti 8300  ax-pre-ltadd 8301  ax-pre-mulgt0 8302  ax-pre-mulext 8303  ax-arch 8304  ax-caucvg 8305
This proof depends on definitions:  df-bi 117  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 4132  df-opab 4194  df-mpt 4195  df-tr 4232  df-id 4440  df-po 4443  df-iso 4444  df-iord 4513  df-on 4515  df-ilim 4516  df-suc 4518  df-iom 4740  df-xp 4782  df-rel 4783  df-cnv 4784  df-co 4785  df-dm 4786  df-rn 4787  df-res 4788  df-ima 4789  df-iota 5340  df-fun 5382  df-fn 5383  df-f 5384  df-f1 5385  df-fo 5386  df-f1o 5387  df-fv 5388  df-riota 6041  df-ov 6091  df-oprab 6092  df-mpo 6093  df-1st 6378  df-2nd 6379  df-recs 6580  df-frec 6666  df-1o 6691  df-2o 6692  df-er 6811  df-en 7027  df-sup 7330  df-pnf 8368  df-mnf 8369  df-xr 8370  df-ltxr 8371  df-le 8372  df-sub 8506  df-neg 8507  df-reap 8911  df-ap 8918  df-div 9011  df-inn 9314  df-2 9372  df-3 9373  df-4 9374  df-n0 9575  df-z 9656  df-uz 9938  df-q 10036  df-rp 10072  df-fz 10429  df-fzo 10567  df-fl 10722  df-mod 10781  df-seqfrec 10906  df-exp 10997  df-cj 11629  df-re 11630  df-im 11631  df-rsqrt 11786  df-abs 11787  df-dvds 12580  df-gcd 12756  df-prm 12911
This theorem is used by:  lgseisenlem2  16395  lgseisenlem3  16396
  Copyright terms: Public domain W3C validator